- 강의소개
- 강의구성
- 강의에서 사용할 용어들
- 예시 프로젝트 소개
- 우리가 클린 코드를 추구하는 이유
- 프로그램의 정의
- 추상과 구체
- 이름 짓기
- 메서드와 추상화
- 메서드 선언부
- 추상화 레벨
- 매직 넘버, 매직 스트링
- 키워드 정리
- 뇌 메모리 적게 쓰기
- Early return
- 사고의 depth 줄이기
- 공백 라인을 대하는 자세
- 부정어를 대하는 자세
- 해피 케이스와 예외 처리
- 키워드 정리
- 추상의 관점으로 바라보는 객체 지향
- 객체 설계하기 (1)
- 객체 설계하기 (2)
- SOLID
- SRP: Single Responsibility Principle
- OCP: Open-Closed Principle
- LSP: Liskov Substitution Principle
- ISP: Interface Segregation Principle
- DIP: Dependency Inversion Principle
- 키워드 정리
- 상속과 조합
- Value Object
- 일급 컬렉션
- Enum의 특성과 활용
- 다형성 활용하기
- 숨겨져 있는 도메인 개념 도출하기
- 키워드 정리
- 주석의 양면성
- 변수와 메서드의 나열 순서
- 패키지 나누기
- 기능 유지보수하기 (1) - 버그 잡기
- 기능 유지보수하기 (2) - 알고리즘 교체하기
- IDE의 도움 받기
- 키워드 정리
- 연습 프로젝트 소개
- 리팩토링 (1) - 추상화 레벨
- 리팩토링 (2) - 객체의 책임과 응집도
- 리팩토링 (3) - 관점의 차이로 달라지는 추상화
- 키워드 정리
- 능동적 읽기
- 오버 엔지니어링
- 은탄환은 없다
- 키워드 정리
- 마무리하며