라떼군 이야기


변경에 강한 코드를 만드는 설계패턴

입문 / Python 3 / 13강

설계 패턴은 자주 반복되는 코드 설계 문제에 이름을 붙인 해결 방법입니다. 그대로 복사해 쓰는 완성 코드가 아니라, 어떤 책임을 어디에 둘지 생각하는 도구입니다.

작은 함수를 쓰면 충분한 곳에 억지로 클래스를 늘리지 않습니다. 예제에서는 출력보다 객체 사이의 호출 관계와 바뀌는 부분을 눈여겨보세요.

강좌 목차

  1. 01 객체의 역할과 약속 나누기상속과 구성을 구분하고 필요한 기능을 밖에서 전달합니다.
  2. 02 전략: 계산 방법을 갈아 끼우기변하는 계산을 함수로 분리해 사용하는 쪽과 연결합니다.
  3. 03 옵서버: 바뀐 내용을 구독자에게 알리기알림을 보내는 객체와 받는 객체를 느슨하게 연결합니다.
  4. 04 데코레이터: 기능을 감싸서 더하기같은 인터페이스를 유지하면서 앞뒤에 동작을 더합니다.
  5. 05 팩토리: 만드는 책임을 분리하기팩토리 메서드와 추상 팩토리가 바꾸는 부분을 구분합니다.
  6. 06 싱글턴: 하나라는 범위부터 정하기공유 객체의 수명과 전역 상태의 비용을 살펴봅니다.
  7. 07 커맨드: 요청을 객체로 만들기실행할 작업과 되돌리기에 필요한 정보를 함께 보관합니다.
  8. 08 어댑터와 퍼사드: 연결과 단순화인터페이스를 맞추는 일과 복잡한 절차를 감추는 일을 구분합니다.
  9. 09 템플릿 메서드: 절차는 고정하고 단계는 바꾸기공통 알고리즘의 순서를 두고 일부 단계를 확장합니다.
  10. 10 이터레이터: 저장 방식과 순회를 분리하기컨테이너와 순회 상태의 차이를 살펴봅니다.
  11. 11 컴포지트: 하나와 묶음을 같은 방식으로 다루기트리의 잎과 묶음에 공통 연산을 제공합니다.
  12. 12 상태: 현재 단계에 맞는 동작 맡기기허용되는 동작과 상태 전이를 한곳에 모읍니다.
  13. 13 MVC와 패턴 선택 연습모델, 뷰, 컨트롤러의 역할을 나누고 필요한 패턴만 고릅니다.
제품 기획, 개발 파트너 찾으시나요? 개인, 팀, 기업 모두 환영. 문제 정의부터 출시까지 함께합니다.