자바스크립트 + 리액트 디자인 패턴 스터디 - 중간 회고

Eamon·2024년 10월 13일
0

지난 9월 7일 토요일 스터디 킥오프부터 매주 자바스크립트 + 리액트 디자인 패턴이라는 책으로 스터디를 진행하고 있는 중입니다. 아직 스터디가 끝나지 않았지만 1달 정도 지남 & 책의 중반을 다 읽음의 진행 상황에서 회고를 가져보는 게 좋을 것 같아서 글로 정리해보았습니다.

스터디를 진행한 이유

먼저, 스터디 공고를 보고 진행한 이유는 현업에서 컴포넌트나 기능 등을 설계할 때 디자인 패턴들에 대해서 알고 있었다면 현재 설계의 장점과 단점을 더 분명히 알 수 있고 더 좋은 방향성으로 설계할 수 있을 것이라는 아쉬움이 항상 있었습니다. 그렇기에 디자인 패턴을 공부해야겠다라는 생각은 항상 있었지만 내용이 방대하고 너무 추상적인 내용이어서 어떻게 접근하여 공부해야 하는지 막막하기만 해서 선뜻 공부하기 어려운 부분이었습니다.

그 때, 마침 제가 서점에서 사두고 안 읽고 있었던 책으로 하는 스터디 모집 글을 발견하여 "이건 안 할 수 없지!"라는 생각으로 진행하게 되었습니다.

스터디 방식

스터디는 총 7명에서 진행 중이고, 매주 일요일 밤에 모여 책의 내용을 함께 공부하고 있습니다. 각 주차마다 사다리타기를 이용해서 "발제자"를 선별하여 한 주 동안 읽었던 내용들을 소개하고 나머지 멤버들은 자유롭게 해당 내용에 대해 질문하고 토론하는 방식으로 진행됩니다.(이 순간이 항상 심장이 쫄깃합니다.) 예시 코드가 많은 곳은 예시 코드를 같이 보기도 하고 1~2시간 동안 같이 책을 넘기면서 중요한 부분을 다시 읽어보는 시간이 많아서 책의 내용을 다시 읽어보거나 이해 안 가는 부분을 서로 토론하는 경우가 많아서 좋았습니다.

랜덤으로 발제자를 뽑는 방식은 한 사람만 책을 읽거나 발표를 준비하지 않는 좋은 방법이 된 것 같습니다. 또, 진행하다가 발제자 분께서 지치시거나 어려우시면 언제든지 HELP 를 외칠 수 있는 분위기 또한 좋았습니다.

진행 상황

현재 14장 중에 10장까지 읽었으며, 다양한 디자인 패턴을 공부할 수 있었습니다.
특히, 7장에서는 유명한 디자인 패턴 책인 GoF(Gang of Four) 디자인 패턴들을 공부할 수 있는 시간이었습니다. 이 책에서는 생성 패턴, 구조 패턴, 행위 패턴으로 패턴의 유형을 나누어 설명하여 패턴의 목적이나 장단점을 잘 비교할 수 있었습니다.

좋았던 점 (얻어 가고 있는 점)

좋았던 점 중 가장 큰 것은 패턴에 대한 거부감이 해소된 것입니다. 처음에는 디자인 패턴이 복잡하고 어렵게 느껴졌지만, 스터디를 통해 이미 우리가 무의식적으로 사용하고 있던 패턴들을 인식하게 되었고, 그런 것들을 조금 더 공식화한 게 패턴이라는 것을 알게 되었습니다. 실제로 스터디를 하면서 라이브러리나 구현체를 볼 때 "아 이건 싱글톤으로 구현하려 했구나~", "이건 중재자 패턴 같은데?" 라는 감각이 생겼음을 느꼈습니다.
또한, 패턴들을 카테고리화하면서 좀 더 섬세하게 이런 설계를 했을 때 어떤 장점과 단점이 있는지 생각해볼 수 있는 시간을 가지는 것이 좋았습니다.
마지막으로, 다양한 연차의 팀원 분들과 함께 스터디를 하다 보니 더 풍성한 의견과 경험을 공유할 수 있다는 것이 좋았습니다. 혼자서 책을 읽었다면 그냥 맞나 보다 혹은, 지나쳐갈 부분도 서로 토의하거나 더 공부해 보면서 책을 비판적으로 읽어보는 훈련을 해볼 수 있는 계기가 되었습니다.

아쉬운 점

아쉬운 점은 두 가지 방면으로 생각해볼 수 있을 것 같습니다. 첫 번째로는 책 자체에 대한 아쉬운 점인데 책은 자바스크립트, 리액트 디자인 패턴이라고 되어있지만 아직까진 리액트 디자인 패턴은 없고, 자바스크립트로 포워딩한 느낌이 크고, 잘못된 예시와 용어(번역의 문제인지... 의도의 문제인지는 모르겠지만)들이 종종 있었습니다. 대표적으로 믹스인 패턴에서 저자가 사용했던 예시가 실제로 자바스크립트로 믹스인 패턴을 구현한다고 했을 때 그렇게 구현하지 않는 다른 모양이어서 혼란을 겪었던 사례가 있었습니다.

두 번째는 내가 좀 더 이 스터디를 진행하면서 책에 있는 지식을 실무에 적용해보는 훈련을 하지 못했다는 것입니다. 물론, 초반에 다루었던 패턴들이 추상적이고 적용하기 어려웠지만 실제 어떤 상황에서 쓰면 좋을지에 대한 고민을 좀 더 깊게 해보면 더 유익한 스터디가 될 수 있지 않을까 싶습니다.

마무리

이 스터디를 통해 디자인 패턴에 대한 이해도를 높이고, 더 나은 코드 설계 능력을 갖추는 것이 궁극적인 목표입니다. 앞으로 남은 기간 동안 더욱 열심히 참여하여 실력 향상에 도움이 되는 시간으로 만들어 가겠습니다.

profile
Steadily , Daily, Academically, Socially semi-nerd Front Engineer.

0개의 댓글