GitHub

https://github.com/Choidongjun0830

우테코

우테코에서의 5주차 WIL

gogi masidda 2025. 3. 17. 00:27

[Facts]

  1. 템플릿 메서드 패턴과 전략 패턴
  2. 동적 메서드 탐색

[Feelings+Finding]

  1. 템플릿 메서드 패턴과 전략 패턴

템플릿 메서드 패턴 (상속 활용)

  • 상위 클래스에서 공통 구조(알고리즘)를 정의하고, 하위 클래스에서 세부 동작을 구현하는 패턴.

  Hook 메서드를 활용하면 알고리즘의 흐름을 제어 가능.

  장점: 코드 중복 제거, 유지보수 용이

  단점: 부모 클래스 변경 시 영향이 큼

 

전략 패턴 (합성 활용)

  • 알고리즘을 독립적인 Strategy 인터페이스로 분리하고, 필요할 때 동적으로 변경하는 패턴.

  • 클라이언트가 원하는 전략을 직접 선택해야 함.

  장점: 유연성과 확장성 증가, 코드 중복 제거

  단점: 클라이언트가 각 전략의 차이를 이해해야 함

 

Dealer와 Player가 더 드로우할지 말지 결정하는 방식을 어떻게 구현할지 고민하면서 학습했다.

  템플릿 메서드 패턴: Participant 클래스를 만들고, Dealer와 Player가 shouldDrawMore()을 다르게 구현하는 방식.

  전략 패턴: DrawingStrategy 인터페이스를 정의하고, Dealer와 Player가 각각의 전략을 가질 수 있도록 구성

 

 2. 동적 메서드 탐색 

 

  메서드 탐색은 호출한 객체(self)를 기준으로 시작하여, 자식 클래스에서 부모 클래스 방향으로 진행된다.

  • 그래서 자식 클래스에서 메서드를 오버라이딩하면 부모 클래스보다 우선 실행되는 것이다.

  • 자식 클래스에 없다면 부모 클래스에서 그 메서드를 찾고, 제일 위의 조상에서도 그 메서드를 찾지 못한다면 예외를 던진다.

 

이번주는 새로운 것을 학습하기 보다는 내가 하는 것이 맞는지 생각하고, 내가 작성한 코드에 대한 근거를 생각하는데 더 많은 시간을 보낸거 같습니다. 

728x90

'우테코' 카테고리의 다른 글

우테코에서의 6주차 WIL  (0) 2025.03.25
우테코에서의 4주차 WIL  (0) 2025.03.09
우테코에서의 3주차 WIL  (0) 2025.03.06
우테코에서의 2주차 WIL  (1) 2025.02.23