디자인 패턴 스터디 후기

seungwon·2023년 8월 28일
3

후기 및 리뷰

목록 보기
2/2

디자인 패턴 스터디를 진행한 경험을 공유하고자 포스팅을 작성하게 되었습니다. 같은 책으로 스터디를 진행하시거나 디자인 패턴에 관한 스터디를 진행하실 분들께 도움이 되었으면 좋겠습니다.

스터디는 이렇게 진행했습니다!

  1. 기간 : 2023.7.6 ~ 2023.7.30 (약 1개월), 주 1-2회 진행

  2. 도서 : 헤드퍼스트 디자인패턴
    https://m.hanbit.co.kr/store/books/book_view.html?p_code=B6113501223

  3. 스터디 진행 방식

  • 스터디 전까지 각자 정해진 분량의 책 내용을 학습합니다.
  • 스터디 시간에는 발표자가 발표 후 질문 사항이나 토의해 볼 법한 내용을 나눕니다.
    • 발표는 순서를 정하여 스터디원이 한 명씩 돌아가면서 진행했습니다.
    • 참고로 스터디 인원은 5명이었습니다.
  • 예제를 변형한 문제를 코드로 작성하고 Github에 올려 서로 리뷰를 진행합니다.
    • 구체적으로는 아래의 방법들로 코드 작성할 내용을 결정했습니다
      (1) 책의 예제를 활용
      (2) 스터디원들이 직접 문제상황을 제시하여 구현
      (3) Refactoring Guru 의 예제 활용

헤드퍼스트 디자인패턴

해당 도서의 구성을 옵저버 패턴을 설명한 챕터 기준으로 적어보자면 다음과 같습니다.

  1. 패턴의 제목과 함께 아주 간략한 설명이 있습니다.

1 . 상황을 제시합니다.
옵저버 패턴을 설명하는 챕터에서 독자는 '기상 스테이션 구축 프로젝트'를 진행하며 애플리케이션을 개발합니다.

그 과정에서 생기는 문제를 설명합니다.

그리고 그에 대한 해결을 위해 해당챕터에서 설명하고자 하는 디자인 패턴이 등장합니다.

2 . 디자인 패턴 설명
다양한 비유와 그림이 포함되어 있습니다. 옵저버 패턴에서는 신문 구독소프트웨어 개발자-헤드헌터관계로 비유하여 설명합니다.

또, 단순히 느슨한 결합을 설명하기에 앞서
이러한 대화문을 통해 예고 하며 단단하게 짠 바구니와 유연한 바구니에 비유해 주기도 합니다.

그리고 책의 반 이상이 그림이라고 해도 과언이 아닐 만큼 그림도 많습니다.

3 . 그 외에는 무엇이든 물어보세요. Q&A , 쓰면서 제대로 공부하기, 뇌 단련, 코드 자석등으로 독자가 적극적인 학습을 할 수 있도록 북돋아 준다는 느낌의 도서였습니다.

이런 점은 좋습니다
위의 3번에서 언급한 내용들 덕에 책에서 권하는 방법들만 따라가더라도 단순히 읽기만 하는 것 이상으로 기억에 남을 것 같다고 느꼈습니다.

책이 딱딱한 어투가 아닌 구어체로 적힌 부분들이 많아 개인적으로는 훨씬 쉽게 읽혔습니다.

각각의 디자인 패턴을 특정 상황과 연결 지어 설명하기에 기억에도 오래 남고 단순 지식이 아닌 활용할 수 있는 도구로서 디자인 패턴을 가져가는 데에 좋을 것 같습니다.

강조가 필요한 부분을 별도로 표시되어 있어 초보자 입장에서도 무엇이 중요하고 무엇이 부연 설명을 구분하기 어렵지 않습니다.

아쉬운 점은
구어체인 점은 좋았지만, 재미를 위한 농담들이 가끔은 전체 맥락을 빠르게 파악하는 데에 방해가 될 수도 있겠다는 우려가 들었습니다.

디자인 패턴 스터디 진행 방식

위에 언급한 스터디 진행 방식에 대해 좀 더 자세히 적어 보자면 아래와 같습니다.

  • 스터디 전까지 각자 정해진 분량의 책 내용을 학습합니다.
  • 스터디 시간에는 발표자가 발표 후 질문 사항이나 토의해 볼 법한 내용을 나눕니다.

더불어 발표자가 발표한 내용을 노션(Notion)으로 따로 정리해 공유했습니다.
(예)

그래서 스터디 이후에 정리된 내용을 읽고 생긴 추가적인 질문과 답변을 공유하기도 했습니다.
(예)
데코레이터 패턴에 대한 질문과 답변

예제를 변형한 문제를 코드로 작성하고 Github에 올려 서로 리뷰를 진행했습니다.

예를 들어, 추상팩토리 패턴의 경우 Refactoring GURU의 예시인 크로스 플랫폼 사용자 인터페이스(UI) 요소들을 생성하는 방법에 대해 코드를 작성했습니다.

회고 요약

처음 작성했던 디자인 패턴 스터디의 필요성과 목표와 그에 대한 KPT 회고를 공유해 보고자 합니다.

  • Keep
    • 책을 읽는데에 그치지 않고 발표와 토의를 한 점, 그리고 디자인 패턴을 활용해 코드를 작성해 적용하고 이를 서로 리뷰한 점이 좋았습니다.
      • 스터디 목표였던 근본적인 이해에 조금 더 다가갔다고 생각합니다.
  • Problem
    • 처음에는 '작성한 코드에 대해 서로 리뷰해 주고 이를 리팩토링 해보자'고 목표를 세웠었습니다만 시간이 지날수록 진도를 나가는 것에 더 초점을 뒀던 것 같습니다.
    • 스터디 일정의 변동이 잦아졌습니다.
  • Try
    • 스터디를 시작할 때부터 책 학습과 코드 작성 및 리뷰를 하나의 루틴으로 묶어서 하지 못했을 때 어떻게 할지를 합의하면 좋을 것 같습니다.
    • 저희는 각 주마다 서로의 일정을 공유하여 스터디 일정 조율 하는 방식으로 일정을 결정하다 보니 개개인의 우선순위에 따라 스터디 일정이 변경되는 일이 종종 있었습니다. 개인적으로는 고정된 일정을 정하고 부득이한 사정이 아닌 이상 스터디 일정은 변경하지 않는 것이 좋을 것 같습니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 28일

스터디 경험을 공유해주셔서 감사합니다~
추후에 스터디를 진행하게 될 때 큰 도움이 될 것 같아요~~!

답글 달기