Readable Code Intro 강의소개 강의구성 강의에서 사용할 용어들 예시 프로젝트 소개 추상(抽象) 우리가 클린 코드를 추구하는 이유 프로그램의 정의 추상과 구체 이름 짓기 메서드와 추상화 메서드 선언부 추상화 레벨 매직 넘버, 매직 스트링 키워드 정리 논리, 사고의 흐름 뇌 메모리 적게 쓰기 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) - 관점의 차이로 달라지는 추상화 키워드 정리 가억하면 좋은 조언들 능동적 읽기 오버 엔지니어링 은탄환은 없다 키워드 정리 Outro 마무리하며