| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- URL
- Refactoring
- container
- golang
- method
- todo-list
- channel
- cli
- goroutines
- websocket
- reactivity
- go
- PROPS
- App.vue
- SFC
- graceful shutdown
- Vue.js
- toggle
- map
- TODO
- Matrix
- component
- Dictionary
- CDN
- Vue
- localStorage
- emit
- goroutine
- Server
- 행렬
- Today
- Total
ksundev 님의 블로그
멍청한 코딩법: 개발이 막힐 때 구원받는 방법 본문
왜 "멍청한" 코딩법인가?
개발자라면 누구나 경험해봤을 것이다. 복잡한 기능을 구현하려다가 머리가 꽈배기처럼 꼬이는 순간을. 코드가 스파게티처럼 엉키고, 디버깅은 미로 찾기가 되고, 결국 "이게 왜 안 되지?"라며 모니터를 멍하니 바라보게 되는 그 순간 말이다.
그럴 때 필요한 게 바로 멍청한 코딩법이다. 멍청하다고 부르는 이유는 단순하기 때문이다. 너무나 당연하고 기본적이어서 오히려 간과하기 쉬운 방법이기도 하다.
핵심 원리: 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 |
|---|