bellringstar/keepham (github.com)
GitHub - bellringstar/keepham
Contribute to bellringstar/keepham development by creating an account on GitHub.
github.com
이 프로젝트는 제가 처음으로 진행한 팀 프로젝트였습니다. 사실 그 전까지는 개인 프로젝트조차 해본 적이 없었으니, 말 그대로 저에게는 첫 프로젝트였습니다. 개발자로 진로를 바꾼 지 반년 동안 파이썬과 알고리즘을 공부해 왔는데, 이 프로젝트에서는 갑작스레 자바 백엔드를 맡게 되었습니다. 자바도 스프링도 모르는데! 그런 상황 속에서 어떻게든 프로젝트를 완성해냈습니다. 하지만 구현에만 급급했던 탓에, 코드의 상태는 처참할 수밖에 없었습니다.
이제는 현재의 내가 그때의 나를 되돌아보며 반성하는 시간을 가져보려 합니다. 당시에 내가 왜 그렇게 구현했는지 그 이유를 생각해 보고, 지금의 내가 그 부분을 어떻게 리팩토링할 수 있을지 고민해 보려 합니다.
우선은 제가 직접 맡았던 파트를 중심으로 리팩토링을 진행할 계획입니다. 그리고 더 나아가, 시간이 된다면 다른 팀원들이 맡았던 부분도 내 관점에서 리팩토링해 보고자 합니다. 팀의 결과물인데 팀원들이 작성한 코드를 내 맘대로 수정하는 거 같아 미안한 마음이 듭니다. 하지만 이는 단순히 그들의 코드를 비판하려는 것이 아닙니다. 그들이 왜 그런 방식으로 구현했는지 이해해 보고, 내가 그 부분을 어떻게 구현할 수 있을지 나의 관점을 제시해 보는 것이 이 작업의 목적입니다.
우선은 제가 담당한 업무들을 나열해보고 이거를 목차로 삼아 진행해 보겠습니다.
* 채팅방API 서버 구현
* Stomp Over WebSocket을 이용한 실시간 채팅 시스템 개발
* Kafka를 활용한 메시징 시스템 구축
* MongoDB를 이용한 채팅 내역 관리 시스템 개발
지금 봐도 그냥 어처구니가 없습니다. 백엔드 개발이 처음인 아니 스프링 아니 더 나아가 자바가 처음인 사람이 담당해서 구현한 기능들이 WebSocket, Kafka, MongoDB ? 일단은 동작하는 기능을 구현한 과거의 저를 칭찬해주고 싶습니다.
아예 처음부터 설계해서 그냥 바닥부터 코드를 다시 작성하는 게 빠를 수도 있겠다는 생각이 듭니다. 하지만 레거시를 리팩토링 한다는 생각으로 최대한 기존의 코드를 기반으로 해보겠습니다.
인프라, 아키텍처, api는 변경하지 않습니다. 인프라는 가정을 한 뒤 확장성 있는 서버를 고려해 비즈니스 로직위주의 리팩토링이 될 것입니다.
'PROJECT > Keepham' 카테고리의 다른 글
채팅방 API 서버 - ChatRoomService 개선(2) (2) | 2024.10.07 |
---|---|
채팅방 API 서버 - ChatRoomService 개선(1) (1) | 2024.09.30 |
채팅방 API 서버 - 엔티티 개선(2) (0) | 2024.09.28 |
채팅방 API 서버 - 엔티티 개선(1) (0) | 2024.09.28 |