ksundev 님의 블로그

멍청한 코딩법: 개발이 막힐 때 구원받는 방법 본문

[개발] 개발지식+CS

멍청한 코딩법: 개발이 막힐 때 구원받는 방법

ksundev 2025. 9. 5. 09:24

왜 "멍청한" 코딩법인가?

개발자라면 누구나 경험해봤을 것이다. 복잡한 기능을 구현하려다가 머리가 꽈배기처럼 꼬이는 순간을. 코드가 스파게티처럼 엉키고, 디버깅은 미로 찾기가 되고, 결국 "이게 왜 안 되지?"라며 모니터를 멍하니 바라보게 되는 그 순간 말이다.

그럴 때 필요한 게 바로 멍청한 코딩법이다. 멍청하다고 부르는 이유는 단순하기 때문이다. 너무나 당연하고 기본적이어서 오히려 간과하기 쉬운 방법이기도 하다.

핵심 원리: Divide and Conquer

인간의 뇌는 한계가 있다. 동시에 처리할 수 있는 정보의 양에는 분명한 제약이 존재한다. 심리학에서 말하는 "인지 부하(Cognitive Load)" 때문이다.

복잡한 문제를 한 번에 해결하려고 하면:

  • 머리가 복잡해진다
  • 실수가 늘어난다
  • 디버깅이 어려워진다
  • 스트레스가 증가한다

그래서 쪼개는 것이다. 작은 단위로, 더 작은 단위로.

멍청한 코딩법의 실전 적용

1단계: 무자비하게 쪼개기

// ❌ 복잡한 함수 (머리 아픔 주의)
function processUserDataAndSendNotification(userData) {
  // 데이터 검증
  // 데이터 변환  
  // 외부 API 호출
  // 알림 전송
  // 로그 기록
  // 에러 처리
  // ... 100줄의 코드
}

// ✅ 멍청하게 쪼갠 함수들
function validateUserData(userData) { /* 검증만 */ }
function transformUserData(userData) { /* 변환만 */ }
function callExternalAPI(data) { /* API 호출만 */ }
function sendNotification(message) { /* 알림만 */ }
function logActivity(activity) { /* 로그만 */ }

2단계: Unit별 테스팅

각 작은 단위가 제대로 동작하는지 하나씩 확인한다.

// 각 함수를 개별적으로 테스트
console.log(validateUserData(testData)); // 이것만 먼저
console.log(transformUserData(validData)); // 그 다음 이것만
console.log(callExternalAPI(transformedData)); // 또 그 다음 이것만

3단계: 조립하기

모든 부품이 제대로 동작하는 걸 확인했다면, 이제 조립한다.

function processUserDataAndSendNotification(userData) {
  const validData = validateUserData(userData);
  const transformedData = transformUserData(validData);
  const apiResult = callExternalAPI(transformedData);
  const notification = sendNotification(apiResult);
  logActivity(notification);
  return notification;
}

왜 이 방법이 효과적인가?

1. 디버깅이 쉬워진다

문제가 생기면 어느 부분에서 발생했는지 금방 찾을 수 있다. 각 unit을 개별적으로 테스트했기 때문이다.

2. 재사용성이 높아진다

작은 함수들은 다른 곳에서도 사용할 수 있다. validateUserData는 다른 기능에서도 쓸 수 있다.

3. 테스트 작성이 편해진다

작은 함수는 테스트하기 쉽다. 입력과 출력이 명확하기 때문이다.

4. 멘탈이 건강해진다 (진짜 중요)

복잡한 문제가 여러 개의 간단한 문제로 바뀐다. 스트레스가 줄어든다.

마무리: 멍청함의 지혜

"멍청한 코딩법"이라고 부르지만, 사실 이게 가장 현명한 방법같이 느껴진다.

  • 복잡한 걸 간단하게 만드는 건 지혜다
  • 한 번에 하나씩 처리하는 건 효율이다
  • 작은 성공을 쌓아가는 건 성장이다

최근에 스스로를 "멍청이"라 생각하며 하나의 단위기능들을 최대한 단순하게 만드려는 노력들이
오히려 도움이 많이 되었기 때문이다.


"Simplicity is the ultimate sophistication."
— Leonardo da Vinci

"Make everything as simple as possible, but not simpler."
— Albert Einstein

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
— Martin Fowler

'[개발] 개발지식+CS' 카테고리의 다른 글

[실무] Graceful Shutdown  (0) 2025.10.19