Featured image of post [Clean Code] 11. 객체와 자료구조의 비대칭

[Clean Code] 11. 객체와 자료구조의 비대칭

객체는 동작을 노출하고 자료를 감추며, 자료구조는 자료를 노출하고 동작이 없다는 근본적 비대칭을 설명한다. 디미터 법칙, 기차 충돌 코드, DTO 설계 원칙을 실전 예제와 새 타입·새 연산 추가 트레이드오프 표로 다룬다.

Featured image of post [Clean Code] 12. 디미터 법칙 리팩토링 실습

[Clean Code] 12. 디미터 법칙 리팩토링 실습

정수 타입 코드로 도형 종류를 분기하는 절차적 계산기 코드를 다형성 객체로 변환하고, 여러 단계를 파고드는 기차 충돌 코드를 디미터 법칙에 따라 정리하는 두 가지 리팩토링 실습을 변경 시나리오 검증과 함께 진행한다.

Featured image of post [Clean Code] 13. 오류 코드 대신 예외를 써라

[Clean Code] 13. 오류 코드 대신 예외를 써라

오류 코드가 호출자 코드를 어떻게 오염시키는지 보이고, 예외에 의미 있는 컨텍스트를 담는 방법과 null 반환·전달을 피하는 기법을 다룬다. Optional·Result 타입 같은 현대적 오류 처리도 함께 비교한다.

Featured image of post [Clean Code] 14. 오류 처리 리팩토링 실습

[Clean Code] 14. 오류 처리 리팩토링 실습

정수 오류 코드로 뒤덮인 파일 처리 코드를 의미 있는 예외 계층과 Optional로 재설계하는 실습을 통해 13장에서 배운 오류 처리 원칙을 직접 적용하고, 예외 계층을 얼마나 세분화해야 하는지 실무 판단 기준으로 함께 검증한다.

Featured image of post [Clean Code] 15. 경계 — 외부 라이브러리 사용법

[Clean Code] 15. 경계 — 외부 라이브러리 사용법

외부 라이브러리 제공자와 사용자의 상반된 요구가 만드는 긴장을 짚고, 학습 테스트로 경계를 검증하는 방법과 어댑터 패턴으로 서드파티 API를 감싸 변경에 대비하는 전략을 판단 기준과 과잉 설계 비판까지 함께 다룬다.

Featured image of post [Clean Code] 16. TDD 법칙과 F.I.R.S.T 원칙

[Clean Code] 16. TDD 법칙과 F.I.R.S.T 원칙

테스트 코드를 먼저 작성하도록 강제하는 TDD 세 가지 법칙과 Red-Green-Refactor 사이클을 설명하고, 좋은 테스트가 갖춰야 할 F.I.R.S.T 원칙을 예제로 다룬다. 2014년 TDD 논쟁도 함께 짚는다.

Featured image of post [Clean Code] 17. 단위 테스트 리팩토링 실습

[Clean Code] 17. 단위 테스트 리팩토링 실습

간단한 계산기를 Red-Green-Refactor 사이클로 직접 구현하고, 실제 DB에 의존하는 F.I.R.S.T 원칙 위반 테스트 코드를 정리하며 16장에서 배운 테스트 설계 원칙을 실제 코드로 손에 익히는 실습이다.

Featured image of post [Clean Code] 18. 클래스는 작아야 한다

[Clean Code] 18. 클래스는 작아야 한다

클래스 크기를 책임의 개수로 측정하는 이유를 설명하고, 단일 책임 원칙과 응집도를 중심으로 SOLID 5원칙 전체를 개괄한다. God Class를 작은 클래스들로 분해하는 실전 예제와 과잉 설계 판단 기준을 포함한다.

Featured image of post [Clean Code] 19. SOLID 원칙 리팩토링 실습

[Clean Code] 19. SOLID 원칙 리팩토링 실습

DB 연결, 검증, 이메일 발송, 캐시 관리를 모두 떠맡은 God Class UserManager를 SRP와 DIP에 따라 네 개의 협력 클래스로 분해하는 실습을 통해 18장의 SOLID 원칙을 실제 코드와 조립 지점 설계에 적용한다.

Featured image of post [Clean Code] 20. 시스템과 의존성 주입

[Clean Code] 20. 시스템과 의존성 주입

객체를 만드는 과정(제작)과 그 객체를 사용하는 로직(사용)을 분리해야 하는 이유를 설명하고, Composition Root와 의존성 주입 컨테이너를 이용한 시스템 조립 전략을 서비스 로케이터 안티패턴 비판과 함께 다룬다.