/
https://42jerrykim.github.io/ _index.md
나쁜 코드가 낳는 기술 부채와 개발 속도 저하를 짚고, Stroustrup·Booch 등 소프트웨어 거장들의 정의로 Clean Code의 본질과 프로그래머의 전문가 윤리를 설명한다. 23개 챕터로 구성된 시리즈 전체 커리큘럼도 함께 소개한다.
학생 성적 처리 코드를 예제로 나쁜 코드의 다섯 가지 증상(매직 넘버, 모호한 이름, 다중 책임 함수 등)을 진단하고 단계적으로 리팩토링하는 실습을 진행한다. 01장에서 배운 Clean Code 판단 기준을 실제 코드에 적용해 보는 연습이다.
변수·함수·클래스 이름이 왜 코드의 첫 번째 문서 역할을 하는지 설명하고, 그릇된 정보 피하기·발음 가능성·검색 가능성·헝가리안 표기법 지양 등 구체적 네이밍 원칙을 실전 예제와 판단 기준·비판적 시각으로 상세히 다룬다.
한 글자 변수와 줄임말로 뒤덮인 주문 처리 코드를 03장의 네이밍 원칙에 따라 단계적으로 리팩토링하며, 이름 변경만으로 코드 이해 속도가 얼마나 달라지는지 Before/After 표와 코드 리뷰 우선순위 기준으로 직접 확인하는 실습이다.
함수를 작게 만들고 한 가지 일만 하도록 설계하는 원칙을 추상화 수준, 인수 개수, 부수 효과, 명령-조회 분리라는 네 가지 관점에서 다룬다. switch 문을 다형성으로 대체하는 방법과 과도한 분해의 한계도 함께 살펴본다.
80줄짜리 긴 주문 처리 함수를 파싱·검증·계산·저장 네 단계로 분해하는 실습을 통해 05장의 함수 설계 원칙을 직접 적용하고, 분해 전후의 테스트 용이성 차이와 분해를 어디서 멈춰야 하는지 판단 기준을 함께 살펴본다.
주석이 코드 표현력 부족을 감추는 임시방편일 수 있다는 관점에서 좋은 주석과 나쁜 주석을 구분하고, 주석 대신 코드로 의도를 표현하는 방법과 공개 API 문서화 도구의 역할을 실전 예제와 판단 기준으로 함께 다룬다.
중복 주석과 이력 기록 주석, 주석 처리된 죽은 코드로 뒤덮인 주문 서비스 코드를 07장의 기준에 따라 정리하며, 지운다·옮긴다·유지한다는 3단계 판단 절차를 실제 리뷰 상황처럼 적용해 어떤 주석을 남길지 직접 확인하는 실습이다.
코드 형식이 왜 미학이 아니라 의사소통의 일부인지 세로 밀집도·수직 거리·가로 정렬 원칙으로 설명하고, 개인 취향에 좌우되던 형식 논쟁을 자동 포매터와 팀 컨벤션으로 해소하는 방법을 우선순위 판단 기준과 함께 다룬다.
한 줄에 여러 문장이 압축된 사용자 관리 코드를 정리하고, Prettier·ESLint 같은 포매터·린터를 pre-commit 훅과 CI 파이프라인에 연결해 형식 논쟁을 팀 차원에서 자동으로 없애는 방법을 단계별로 실습한다.