티스토리 뷰

회고

오브젝트 스터디 회고🎵💫

JeongeunChoi 2024. 2. 13. 10:07

이전 포스팅에서는 HTTP 완벽 가이드 스터디 회고를 남겼었는데 

스터디를 통해 꾸준하게 책을 읽고 매주 모여서 이야기를 하며 도움이 많이 되어

팀원들과 계속해서 스터디를 진행하게 되었습니다.

 

이번에는 "객체지향"스러운 코드를 짜보자! 라는 목표로 스터디를 진행하였습니다!

매번 객체지향 객체지향~ 중요성을 강조해왔지만

막상 객체지향적으로 코드를 짜고 있는지는 의문이었습니다🤔 기능 개발하느라 급급했던 ;;

 

책을 완독하고, 객체지향적으로 개발하고 있을 모습을 기대하며 스터디에 참여했습니다!

스터디 책, 진행방법과 함께 회고를 공유해보고자 합니다👣

 


책 선정📖

오브젝트

 

객체지향 책하면 떠오르는 책이 "객체지향의 사실과 오해" 그리고 "오브젝트" 이렇게 두개가 후보였습니다.

객사오를 이미 완독한 팀원들이 있어, "오브젝트" 책을 선정하게 되었습니다. 

 

 


스터디 진행 방식🎤

스터디 진행 인원: 백엔드 학습 인원 7명

 

백엔드 팀원 6명과 서브멘토님 1명으로 구성되었습니다.

 

스터디 일정과 진행 방법

 

주 2회(화, 목) 아침 9시에 스터디를 진행하였습니다. 보통 1시간 정도하면 끝났습니다.

화요일의 경우 두 장을, 목요일의 경우 한 장을 분량으로 정했습니다! 목요일은 화요일 스터디 후에 읽을 시간이 충분하지 않아 한장으로 정했습니다.

 

✏️ 책 내용을 읽고, 읽으면서 기억에 남는 부분이나 궁금했던 부분들에 대해 알아본 후 공유하기

 

오브젝트 책의 경우, 코드 예시를 통해 객체지향적인 설계를 이해하도록 구성되어 있다보니, 코드를 직접 예시로 만들어오면 도움은 많이 되겠지만, 책을 읽고 바로 떠올리기엔 무리가 있었습니다. 문제 출제 방식은 적합하지 않다고 생각되어, 책을 읽고 "기억에 남는 부분" 이나 "추가로 궁금한 부분" 또는 "추가로 알아온 부분" 등을 공유하기로 하였습니다.

 

예시로, 저는 5장을 읽으면서 주석이 많아지면 응집도가 낮아지진 않을까 의심하면서 개발해야 함을 깨달았고 

168pg

주석을 추가하는 대신 메서드를 작게 분해해서 각 메서드의 응집도를 높여라. 주석이 많을수록 응집도가 낮은 것이다. 메서드 단위에서의 응집도 또한 중요함을 알게 해줌.

169pg

뽑아내는 것이 코드를 더욱 명확하게 하면 새로 만든 메서드의 이름이 원래 코드의 길이보다 길어져도 뽑아낸다.

 

이와 관련하여 좋은 주석과 나쁜 주석에 대해 찾아본 후 공유하였습니다.

서브멘토님께서 현업에서 주석을 어디에 어느 정도로 사용하는지도 알려주셔서 유익했습니다👍

 

✏️ 마지막 스터디 날에는, 본인이 작성한 코드를 객체지향적으로 바꿔오기로 하였습니다.

 

저는 졸업작품으로 했던 프로젝트 코드를 객체지향적으로 리팩토링 해보았습니다. 다시 보니 코드가 굉장히 지저분했습니다🫠 ㅎㅎ.. 오브젝트 책 완독한 기념으로 리팩토링을 시작해봐야겠습니다🔨

 

크롤링 후 알림 전송 구현하는 부분을 수정하였습니다!

  • 학교 홈페이지별 크롤링 → 사용자가 설정한 키워드나 홈페이지인 경우 알림 전송
  • 수정 전:
    • 홈페이지 별로 크롤링하는 코드를 다른 백엔드 팀원이랑 각각 따로 구현해서, 전체적인 로직은 비슷한데 코드 중복이 많고, 각자 작성해서 일관성이 없는 코드였습니다.
  • 수정
    • 공지사항 내용을 가져오기 전 후에 이루어지는 Connection 연결, 어디서부터 공지사항 가져올지, 키워드 필터링, 알림 전송하는거 과정은 똑같아서 추상클래스를 만들어 공통 로직을 추출했습니다.
  • 수정 후:
    • 각 홈페이지를 크롤링하는 클래스가 해당 홈페이지 html 구조에 맞게 데이터만 가져오는 부분만 구현할 수 있도록 하여, 다른 크롤링 페이지를 추가하게 될때 해당 부분만 구현하면 되도록 하였습니다.


회고🎶

코드를 통해, 잘못된 코드를 객체지향적으로 고쳐나가는 것을 확인하며 유지보수 및 확장에 있어 객체지향의 중요성을 깨달았습니다. 인터페이스, 추상클래스, 오버로딩, 오버라이딩, 캡슐화, 추상화, 의존성 등등 객체지향적인 설계를 위한 여러 용어들을 정리할 수 있었습니다. 처음보는 용어들도 있었고, 많이 들어봤지만 머릿속으로 정리가 되지 않았던 용어들도 있었습니다. 사실 용어들이 계속 반복되어, 이 내용 또나오네~ 싶었지만 글로 풀어둔 것을 읽으며 다시 한번 정리할 수 있었습니다.

 

초반에는 책을 읽으며, 잘못된 설계의 코드를 보며 "이것도 잘짰는데?" 싶었습니다.  ㅋㅋ 객체지향적으로 고쳐나가는 과정을 보며 기존 설계의 문제점을 알 수 있었습니다. 계속 읽다보니 과연 " 내가 이렇게 짤 수 있을까"라는 생각도 많이 들었습니다. 그래도 책을 다 읽고 이전에 작성한 코드를 보며, 객체지향적인 설계와 코드로 수정해볼 수 있었습니다. 책 완독에 그치지 않고, 학습한 내용을 바탕으로 본인의 코드를 고쳐나가면 도움이 많이 될 것 같습니다~! 

 

오브젝트를 완독한 만큼.. 앞으로는 객체지향적인 코드를 야무지게 짜보겠습니다👊

'회고' 카테고리의 다른 글

데브코스 최종 플젝 회고🎉  (1) 2024.03.28
HTTP 완벽 가이드 스터디 회고  (0) 2023.12.12