• 절차적 프로그래밍 (프로시저 중심, 공유하는 데이터) vs 객체지향적 프로그래밍 (클래스 즉 객체 중심, 캡슐화 혹은 은닉된 데이터)
  • 명령형 vs 선언형
  • Responsibility
    • 특정 유저를 만족하기 위한 일련의 행위를 책임이라 한다.
  • 1.소개 및 OOP의 29:45 Floor Controller 메서드 정의 (초기) > 다른 역할임을 판단하고 클래스로 뺀 후 메시지를 전달하도록 설계한다
  • 결국 OOP의 핵심은 클래스가 불필요한 정보를 은닉하고 노출된 인터페이스를 통해 상세 구현에 대해 알 필요 없이 기능을 사용할 수 있도록 하는 것. 이로 인해 결합도가 낮고, 응집도가 높게 유지하며 기능이 변화해야 하는 경우에도 변경 범위가 적도록 (한곳에 모아 두었으니) 하는 것이라고 생각된다. 결국 이런 것이 서비스를 유지보수하기 좋은/읽기 좋은 코드가 된다.
  • Tell, Don’t ask
  • Law of Demeter..? (나중에 설명)
  • CQRS
  • 다형성
    • 여기 있는 예시가 좀 어렵게 느껴짐
    • 내가 생각하는 다형성은 하나의 인터페이스로 여러 형태의 동작을 가능하게 하는 것.