좋은 코드란 무엇인가 — 나만의 코드 철학
클린 코드, 가독성, 유지보수성에 대한 고민과 실무에서 체득한 코드 작성 원칙을 정리합니다.
코드는 대화다
코드는 컴퓨터에게 명령을 내리는 도구이기 이전에, 팀원과 미래의 나에게 보내는 메시지입니다. 좋은 코드는 읽는 사람이 “왜 이렇게 작성했는지” 자연스럽게 이해할 수 있어야 합니다.
세 가지 원칙
1. 이름은 의도를 담아야 한다
// ❌ 의도가 불분명한 이름
const d = new Date();
const fn = (x: number) => x * 0.9;
// ✅ 의도가 명확한 이름
const createdAt = new Date();
const applyDiscount = (price: number) => price * 0.9;
변수명 하나가 주석 열 줄보다 강력합니다. 이름 자체가 문서가 되어야 합니다.
2. 함수는 한 가지 일만 해야 한다
하나의 함수가 여러 가지 일을 하면, 버그가 발생했을 때 원인을 찾기 어렵습니다. 마치 스위스 아미 나이프처럼 다재다능하지만, 실제 공사 현장에서는 전문 도구가 필요한 것과 같습니다.
// ❌ 여러 가지 일을 하는 함수
function processUser(user: User) {
validateEmail(user.email);
hashPassword(user.password);
saveToDatabase(user);
sendWelcomeEmail(user);
}
// ✅ 각각의 책임이 분리된 함수들
function registerUser(user: User) {
const validated = validateUser(user);
const secured = secureCredentials(validated);
const saved = await persistUser(secured);
await notifyUser(saved);
}
3. 복잡한 것은 단순하게, 단순한 것은 그대로
“Simple can be harder than complex. You have to work hard to get your thinking clean to make it simple.” — Steve Jobs
복잡한 비즈니스 로직을 작은 단위로 분해하고, 각 단위를 의미 있는 이름으로 추상화하면 전체 흐름이 자연스러운 산문처럼 읽힙니다.
완벽한 코드는 없다
코드 품질에 대한 집착이 과도해지면 오히려 생산성이 떨어집니다. **“지금 이 팀에서, 이 맥락에서 충분히 좋은 코드”**를 작성하는 것이 실용적인 목표입니다.
결국 좋은 코드란, 읽는 사람의 인지 부하를 최소화하는 코드입니다.