코드를 짜다가 에러를 마주칠 때마다 이걸 꾸준히 해보세요! (feat. 에러 일기)
코딩하다 보면 에러를 정말 많이 만나잖아? 프로젝트 할 때마다 "왜 안 되지?", "이거 뭐 때문에 안 되는 거야?" 이런 생각 수도 없이 하게 될 거야. 코드를 짜는 시간보다 에러를 고치는 데 시간을 훨씬 많이 쓰게 되거든.
근데 웃긴 건, 전에 겪었던 에러를 또 만나게 된다는 거지. "어? 이거 저번에 봤던 에러인데? 어떻게 고쳤더라?" 이렇게 말이야.
여기서 중요한 차이가 생겨. 어떤 사람은 에러를 엄청 빨리 잡는데, 어떤 사람은 한참 걸린단 말이지. 이게 왜 그럴까? 에러 잡는 데 시간을 많이 쓴다고 했잖아? 그럼 에러를 빨리 잡는 사람은 당연히 다른 사람보다 훨씬 빨리 일을 끝낼 수 있다는 뜻이야.
이런 차이가 나는 이유는 크게 세 가지야.
- 에러 경험 부족: 다양한 에러 상황을 많이 겪어보지 못해서 대처하는 게 느릴 수 있어.
- 해결 방법 까먹음: 전에 해결했던 에러라도 어떻게 고쳤는지 기억이 안 나서 그럴 수 있어.
- 문제 해결 능력 부족: 에러를 어떻게 풀어가야 할지 방법을 모르는 거지.
그래서 이걸 해결할 방법을 하나 알려줄게. 바로 '에러 일기'야!
에러 일기 쓰는 법
에러 일기는 말 그대로 에러가 발생했을 때 기록하는 일기장 같은 거야. 노션 같은 곳에 기록하면 좋아.
기록할 내용:
- 에러 메시지/상황: 어떤 에러가 났는지, 어떤 상황이었는지 자세히 적어.
- 문제점/원인: 왜 에러가 났는지, 원인이 뭐라고 생각하는지 적어.
- 해결 방법: 어떻게 고쳤는지, 해결책이 뭔지 적어.
예시:
- 제목:
애너테이션이 붙지 않음
(에러 메시지나 핵심 키워드를 제목으로!) - 에러 상황: 스프링 프로젝트에서 특정 애너테이션이 없어서 에러가 발생함.
- 원인:
@Entity
애너테이션을 붙이지 않아서 발생한 문제. - 해결 방법:
@Entity
애너테이션을 해당 클래스에 추가함.
또 다른 예시:
- 제목:
HikariPool-1 - Connection leak detected
- 에러 상황: 데이터베이스 연결 풀에서 커넥션 누수가 감지됨.
- 원인 분석: 여러 가지 시도를 해봤는데, 처음에는 커넥션 관련 설정을 잘못 건드린 것 같았음. 디버깅도 해보고 로깅도 확인해봤지만 바로 해결되지 않음. 이론적으로도 정리해보고 이것저것 시도하다 보니...
- 해결 방법: 커넥션이 될 때 특정 로직을 추가해서 처리함. (구체적인 해결 코드를 적어두면 더 좋겠지?)
왜 에러 일기를 써야 할까?
- 논리적 사고력 향상: 에러 원인을 조사하고 해결 방법을 적는 과정에서 자연스럽게 논리적으로 생각하는 힘이 길러져.
- 에러 원인 지식 쌓기: 프로그래밍에서 에러가 발생하는 다양한 원인들을 계속 배우고 머릿속에 쌓을 수 있어.
- 장기 기억으로 전환: 단순히 눈으로 읽는 것보다 직접 글로 쓰면 단기 기억이 장기 기억으로 바뀌어서 더 오래 기억할 수 있어.
- 빠른 검색 및 해결: 나중에 똑같은 에러를 만나면, 제목에 에러 메시지를 적어놨기 때문에 검색해서 바로 찾을 수 있어. 남들이 고생할 때 너는 금방 해결할 수 있지!
팁: 제목을 에러 메시지 내용으로 적어두면 나중에 똑같은 에러가 발생했을 때 검색해서 바로 찾기 쉬워.
에러 일기를 꾸준히 쓰면서 경험을 쌓으면 문제 해결 능력이 계속 늘어나고, 디버깅 실력도 좋아질 거야. 어떤 게 문제인지 스스로 파악하는 능력(메타인지)도 좋아져서 다른 사람들보다 훨씬 빠르게 에러를 해결할 수 있게 될 거야.
꼭 한번 실천해 보길 바라!