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