/// <summary>
/// Nomad Coder - 클린코드 챌린지 - 12~13 / 21
/// @author : CloudD
/// @last update : 2025. 06. 04.
/// @update
/// - 2025. 06. 04 : 최초 작성. (7장. 오류 처리)
/// </summary>
어제와 오늘은 "7장 오류 처리" 를 읽었습니다.
/// Nomad Coder - 클린코드 챌린지 - 12~13 / 21
/// @author : CloudD
/// @last update : 2025. 06. 04.
/// @update
/// - 2025. 06. 04 : 최초 작성. (7장. 오류 처리)
/// </summary>
![]() |
Chat GPT 가 생성한 '개발자의 독서' 이미지 #7 |
어제와 오늘은 "7장 오류 처리" 를 읽었습니다.
작가가 제시하는 몇 가지 규칙을 살펴보고, 그 중 기억해 두고 싶은 부분들을 정리해 보았습니다.
서문
프로그램에는 뭔가 잘못될 가능성이 늘 존재 합니다.
그리고 그 문제를 바로잡는 책임은 바로 우리들에게 있습니다.
그래서 오류 처리는 매우 중요합니다.
하지만 오류 처리 코드 때문에 프로그램의 주요 흐름을 이해하기 어려워진다면, 그 코드를 “깨끗한 코드”라 부르기 어렵습니다.
작가가 말하는 규칙들
작가는 이 장에서 총 8개의 규칙을 이야기합니다.
- 오류 코드보다는 예외를 사용하라.
- try - catch - finally 문부터 작성하라.
- 미확인 예외를 사용하라.
- 예외에 의미를 제공하라.
- 호출자를 고려해 예외 클래스를 정의하라.
- 정상 흐름을 정의하라.
- null 을 반환하지 마라. (return null; 금지)
- null 을 전달하지 마라. (함수 인자로 null 전달 금지)
8가지 규칙을 읽으면서 몇 가지 문장이 눈에 들어왔습니다.
제 기억에 남은 몇 가지 문장을 나열해 봅니다.
“오류가 발생하면 예외를 던지는 편이 낫다. 함수의 논리와 오류 처리 코드가 섞이지 않기 때문에 호출자 코드가 더 깔끔해진다.”
저도 코드를 구현할 때, 예외 코드를 리턴하는 습관이 있었습니다.
예외 코드가 1~2개 정도일 때는 큰 문제가 없지만, 코드가 많아지고 switch - case 구문이 길어질수록 복잡도가 증가했습니다.
작가의 말 처럼 ‘함수의 논리와 오류 처리 코드가 섞이면 이해하기 매우 어렵다는 것’ 을 몸으로 경험하고 나서야 이 습관을 바꾸게 되었습니다.
“예외를 던질 때는 전후 상황을 충분히 덧붙인다. 그러면 오류가 발생한 원인과 위치를 찾기가 쉬워진다.”
예전에는 e.Message 만 로그로 남기는 방식으로 예외를 처리했습니다.
debug 모드에서는 괜찮았지만, release 모드에서는 어디에서 문제가 발생하는지 찾기 어려웠습니다.
이 또한 몸으로 경험하고 나서야, 로그에 상황을 자세히 작성하도록 습관을 바꾸었습니다.
“null 을 반환하는 코드는 일거리를 늘릴 뿐만 아니라 호출자에게 문제를 떠넘긴다. 누구 하나라도 null 확인을 빼먹는다면 애플리케이션이 통제 불능에 빠질지도 모른다.”
제 경험상, 작가가 예시로 든 코드처럼, 차라리 빈 리스트를 리턴하는 것이 낫습니다.
가독성도 좋아지고, 협업 과정에서 실수를 줄일 수도 있습니다.
결론 및 소감
작가가 내린 결론의 일부를 인용하면서 이 짧은 글을 마무리 합니다.
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아진다.
이번 장은 마치 제가 경험했던 실수들을 책 속에서 마주하는 듯한 기분이었습니다. 제가 했던 실수들과 팀원들이 했던 실수들을 모아서 글로 적은 것 같았습니다.
기억 속 어딘가에 묻어놨던 제 실수를 다시 만난 것 같아 조금 창피하기도 했지만, 한 편으로는 그때보다 성장한 지금의 제가 있어 아주 조금은 뿌듯한 마음이 들기도 했습니다.
기억 속 어딘가에 묻어놨던 제 실수를 다시 만난 것 같아 조금 창피하기도 했지만, 한 편으로는 그때보다 성장한 지금의 제가 있어 아주 조금은 뿌듯한 마음이 들기도 했습니다.
번외. 나의 공부법.
오늘의 챌린지에는 TIL 말고 공부법을 공유하는 과제가 있었습니다.
제가 공부하는 방법을 짧게 공유해봅니다.
저는 주로 인터넷 강의를 통해 학습합니다.
필요한 강의를 구입해 시간 여유가 있을 때 몰아서 듣곤 합니다.
여유가 많이 없을 때는 이동할 때나 일할 때 영상 없이 소리만 듣기도 합니다.
여유가 많이 없을 때는 이동할 때나 일할 때 영상 없이 소리만 듣기도 합니다.
강의의 내용을 내 것으로 만드는데 시간이 오래 걸리긴 하지만, 시행착오를 줄이고 이해를 깊게 할 수 있다는 점에서 만족하고 있습니다.
인터넷 강의 말고도 공식 블로그나 공식 e-book 도 자주 참고하며 제 실력을 향상시키기 위한 공부를 꾸준히 진행하고 있습니다.
제가 주로 참고하는 사이트는 다음과 같습니다 :
- Unity : Unity learn, Unity 공식 blog, Unity 에서 제공하는 e-book 등.
- Web 개발 : Nomad Coder
- 그 외 : 인프런, 패스트 캠퍼스 등의 강의 플랫폼