유동적인 일정과 개인 목표를 달성할 수 있는 리팩토링
팀 내에서 리팩토링 진행에 대한 공감대가 형성되어 있던 상황에서, 일정 계획을 수립하던 중 팀원 두 명이 인턴십에 합격하게 되었습니다. 이에 따라 저희는 유연한 방식으로 리팩토링을 진행하기로 결정했습니다.
현재는 평일에는 공식 참여가 가능한 두 명이 CS 리팩토링을 진행하고, 주말에는 인턴십 혹은 외부 활동에 참여 중인 세 명의 팀원들과 함께 작업을 이어가고 있습니다. 특히 각 팀원들이 그룹 프로젝트 진행 당시 추가로 구현하고 싶었던 기능들을 반영하면서, 상황에 맞게 유연하게 일정을 조율하며 진행하고 있습니다.
확장성을 고려한 아키텍처 및 코드 개선
그룹 프로젝트 진행 시에 프로젝트를 진행하며 매주 점진적인 개선을 목표로 수행했고, 당시 프로젝트의 규모와 목적에 맞춰 모놀리식 아키텍처로 구현했습니다.
이후 리팩토링을 위한 코드 검토 과정에서 확장성 개선이 필요하다고 판단했고, 특히 향후 인공지능 기능을 추가할 때 상당한 변경이 필요할 것으로 예상되었습니다. 이에 저희는 확장성을 고려한 아키텍처로 전환하고, 이에 적합한 코드로 개선하는 것을 목표로 선정했습니다.
리팩토링에 앞서 기존 코드를 분석한 결과 아래와 같은 문제들을 발견할 수 있었습니다.
퀴즈의 정보와 진행을 모두 포함하고 있는 QuizZone 데이터 모델