Skip to content

Digging-Deep-Study/digging-deep-design-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

헤드퍼스트 디자인패턴

이 스터디는 헤드퍼스트 디자인패턴 책을 참고하여 진행한 스터디입니다.

image

  • ⏰ 스터디 일시: 격주 일요일 10시-12시 오프라인으로 진행 (온라인 병행)
  • 🏫 스터디 장소: 별일 없으면 부평 ^_^
  • 📚 스터디 자료:

스터디 방식

  • 각자 공부해온 내용을 바탕으로 오프라인에서 스터디 진행
  • 1시간동안 배운 내용을 발표하고, 남은 1시간동안 질문하는 형태로 진행
  • 매주 1챕터씩 진행, (2주마다 오프라인 진행)
  • 이전 모임에서 다음 챕터에 시나리오를 오프라인에서 정한다.
  • 시나리오(챕터별 2개)를 정해놓고 배운 디자인패턴을 적용하는 실습 진행
  • 오프라인에서는 책정리해온 내용 1명 발표 + 과제(실습) 시나리오들 리뷰

📝 내용 정리

  • 해당 저장소에 각자 공부한 내용을 작성하고 공유
  • 모두가 작성!

🖥️ 발표하기

  • 1명을 선정해서 스터디 당일 발표!
  • 스터디 하루 전날 저녁에 랜덤으로 선정합니다.

🙋‍♂️ 질문하기

  • 모르는 것을 서로 질문
  • 준비된 질문을 해도 된다!

👥 진행 일정

회차 날짜 챕터 상세 진행
1 04/27(일), 오전 10시 - -
2 05/11(일), 오전 10시 전략패턴 -
옵저버패턴 -
3 05/24(일), 오전 10시 데코레이터패턴 -
팩토리패턴 -

🗯️ 시나리오

전략 패턴 시나리오

  • 시나리오 1: 전자상거래 결제 수단
    • 컨텍스트: 글로벌 쇼핑몰에서 결제 수단을 신용카드, 페이팔, 계좌이체 등으로 확장
  • 시나리오 2: 이미지 압축 알고리즘
    • 컨텍스트: 웹 서비스에서 업로드 이미지 형식(JPEG, PNG, GIF)에 따라 압축 방식 선택

옵저버 패턴 시나리오

  • 시나리오 1: 재고 수량 변경 알림
    • 컨텍스트: 인기 상품 품절 직전에 고객과 물류팀에 자동 알림 전송
  • 시나리오 2: 시스템 로그 모니터링
    • 컨텍스트: 애플리케이션 이벤트(에러, 경고, 정보)를 여러 로그 저장소에 동시 기록

데코레이터 패턴 시나리오

  • 시나리오 1: 커피 주문 시스템
    • 컨텍스트: 기본 커피(에스프레소, 아메리카노 등)에 고객이 원하는 우유, 시럽, 휘핑크림 등의 옵션을 런타임에 조합하여 가격 계산
  • 시나리오 2: 웹 요청 핸들링 체인
    • 컨텍스트: 웹 애플리케이션에서 요청을 처리하는 기본 핸들러에 로깅, 인증, 캐싱 기능을 필요에 따라 동적으로 조합하여 부가 기능 적용

팩토리 메서드 패턴 시나리오

  • 시나리오 1: 문서 편집기 애플리케이션
    • 컨텍스트: 사용자가 선택한 문서 유형(Word, PDF, HTML 등)에 따라 해당 문서 객체를 생성하고 편집 기능 제공
  • 시나리오 2: 게임 아이템 생성기
    • 컨텍스트: 무기, 방어구, 소비 아이템 등 다양한 타입의 게임 아이템을 생성하는 상황에서 생성 로직을 하위 클래스에 위임하여 유연한 확장성 확보

추상 팩토리 패턴 시나리오

  • 시나리오 1: 크로스 플랫폼 GUI 툴킷
    • 컨텍스트: 운영체제(Windows, macOS, Linux)에 따라 서로 다른 스타일의 버튼, 체크박스, 메뉴를 하나의 인터페이스로 생성
  • 시나리오 2: 자동차 부품 생산 시스템
    • 컨텍스트: 승용차와 트럭처럼 서로 다른 차량군에 맞는 엔진, 차체, 휠 등 부품군을 팩토리에서 일괄 제공하여 제품군 일관성 유지

🏃‍♂️ 스터디원

정철희 양성빈 김찬우 최현식
이은지 신예림 김도훈
공석

About

헤드퍼스트 디자인패턴

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5