<aside>

</aside>


🌟 챕터 소개

안녕하세요, 여러분! 😊 오늘은 '요청' 또는 '작업' 그 자체를 객체로 만드는 흥미로운 **커맨드 패턴(Command Pattern)**에 대해 알아보겠습니다.

식당에서 웨이터에게 주문하면, 웨이터는 주문서(Command)를 작성해서 주방장에게 전달하죠. 🍽️ 웨이터는 요리법을, 주방장은 손님을 몰라도 됩니다. 중요한 것은 '파스타 만들기'라는 요청이 객체(주문서)로 캡슐화되어 전달된다는 점입니다.

이렇게 요청을 객체로 만들면 요청을 큐에 쌓아두거나, 로그로 기록하거나, 심지어 방금 실행한 작업을 **취소(Undo)**하는 마법 같은 일도 가능해집니다! ✨ 함께 자세히 알아봅시다.


🎯 챕터 목표

이번 강의의 목표입니다.

  1. 커맨드 패턴의도(요청을 객체로 캡슐화)를 설명할 수 있습니다.
  2. 이 패턴이 해결하는 문제(요청자와 수신자 분리, 작업 큐잉/로깅/실행 취소)를 식별할 수 있습니다.
  3. 주요 참여자(Command, ConcreteCommand, Invoker, Receiver 등)와 각자의 역할을 이해합니다.
  4. 호출자(Invoker)와 수신자(Receiver)를 분리하는 방법을 설명할 수 있습니다.
  5. Python에서 실행 취소(Undo) 기능을 지원하는 커맨드 패턴을 구현할 수 있습니다.
  6. 커맨드 패턴의 이점(결합도 감소, 유연한 요청 처리)을 이해합니다.

💻 강의에서 사용되는 전체 코드 및 프로젝트 구조

간단한 텍스트 에디터 예제를 통해 텍스트 삽입/삭제 명령을 커맨드 객체로 만들고, **실행 취소(Undo)**하는 과정을 보여드립니다. 모든 코드는 command_example.py 파일 하나에 담겠습니다.