grep

Engineering

리팩토링 여정, 더 나은 코드로의 항해 part 3. 함께한 여정, 함께한 성과

Teemo Lee여기어때

2025년 1월 23일

원문에서 보기 ↗

안녕하세요! 전시개발팀 티모입니다!

오늘은 리팩토링 여정 시리즈의 마지막으로, 우리가 어떻게 이 항해를 헤쳐나갔는지와 팀원들의 후기를 공유드리려고 해요.

그 전에 저희 팀이 리팩토링을 결심하게 된 이유와 과정이 궁금하시다면, “리팩토링 여정, 더 나은 코드로의 항해 part 1. 리팩토링 계기와 문제 진단"과 “리팩토링 여정, 더 나은 코드로의 항해 part 2. 새로운 구조로 나아가는 길"을 먼저 봐주세요. ️️☺️

전시 파트는 약 1년 전부터 지금의 체제로 운영되고 있어요. 구성원들마다 전시 업무 경험이 다 달라 처음에는 팀워크를 맞추는 데 조금 어려움이 있었지만, 지금은 서로의 강점과 특징을 잘 이해하며 함께 성장해 나가고 있습니다. 이번 리팩토링도 그런 팀워크 덕분에 가능했던 작업이었어요.

데일리 미팅: 서로의 발맞춤 👣

리팩토링은 단기간에 끝나는 작업이 아니죠. 특히 저희는 운영 업무와 프로젝트 업무가 동시에 쏟아지는 환경에서 일하고 있어요. 그래서 팀원 간의 이해도를 높이고, 꾸준히 발맞춰 나가기 위해 데일리 미팅을 시작했답니다.

매일 오전 10시 10분, 텐텐미팅이라는 이름으로 각자 오늘 할 일을 간단히 공유하는 시간을 가지기 시작했어요. 처음엔 다들 조금 어색하고 딱딱한 분위기였지만, 금방 팀 고유의 색깔을 찾았습니다. 😊

특히 기분점수를 도입한 것이 데일리를 더 특별하게 만들어줬어요. 기분 점수는 0~10점 사이로 본인의 기분을 숫자로 표현하고, 그 이유를 간단히 공유하는 건데요. “오늘 기분은 4점이에요! 어제 잠을 설쳤거든요.”라든지, “10점입니다! 이유는 없어요!” 같은 이야기들이 자연스럽게 오가며 팀원들 간의 이해도가 높아졌습니다.

이 점수는 단순히 분위기를 부드럽게 만드는 것뿐만 아니라, 서로의 업무 스타일을 파악하는 데도 큰 도움이 됐어요. 아침에 집중력이 높은 사람, 오후에 더 능률이 오르는 사람, 혹은 꾸준히 “10점”을 외치는 팀원 덕분에 웃음이 끊이지 않았답니다. 😆

스터디: 함께 배우며 성장하기 📖

데일리 미팅으로 분위기가 한층 부드러워졌다면 리팩토링 스터디 는 팀의 기술적 이해도를 맞추는 데 중요한 역할을 했어요. 저희는 마틴 파울러의 《리팩터링 2판》을 함께 읽으며 전시 파트의 특성에 맞는 실질적인 방안을 논의했어요.

매일 30페이지씩 읽고, 정해진 시간에 모여 “우리 프로젝트에 어떻게 적용할 수 있을까?”를 고민했죠. 책 속의 예제 코드와 원칙들은 저희의 상황과 꼭 맞지는 않았지만, 그런 한계를 인정하면서도 “우리가 가져갈 것”과 “그냥 참고만 할 것”을 명확히 구분할 수 있었어요. 스터디를 진행하며 나온 아이디어들은 리팩토링 설계의 기반이 되었고, 팀원 간의 기술적 이해도 차이를 줄이는 데 큰 도움이 되었답니다.

Mob Programming: 모두가 하나로 🤲

저희 팀은 기존에도 페어 프로그래밍을 자주 활용했지만, 이번 리팩토링에서는 팀 전체가 참여하는 Mob Programming 방식을 도입했어요. Mob Programming을 도입한 이유는 단순했습니다. 기존 프로젝트 구조가 복잡하고 리팩토링 범위가 넓다 보니 한두 명이 모든 걸 이해하기 어려운 상황이었어요. 팀 전체가 함께 참여하면서 문제를 빠르게 파악하고 설계 변경의 방향성을 정리할 필요가 있었죠.

Mob Programming의 장점

  1. 빠른 피드백 드라이버가 코드를 작성하는 동안 옵저버들이 바로 리뷰를 진행하면서 실시간으로 피드백을 주고받을 수 있었습니다. 덕분에 버그를 초기에 발견하거나 설계 방향을 조정하는 데 큰 도움이 됐어요.
  2. 팀 전체의 이해도 상승 전시 업무 경험이 적은 팀원도 Mob Programming 과정에 참여하면서 자연스럽게 프로젝트의 큰 그림을 이해할 수 있었습니다. 특히 복잡한 A/B 테스트 설계 변경에서는 팀원 전체가 내용을 공유하고 합의를 이끌어내는 것이 필수적이었어요.
  3. 코드 품질 향상 여러 명이 동시에 코드를 리뷰하고 의견을 나누면서, 코드 품질이 눈에 띄게 좋아졌습니다. 단순히 코드가 작동하는 데 그치지 않고, 더 깔끔하고 유지보수하기 쉬운 방향으로 개선할 수 있었죠. 코드 품질이 높아지니 서비스 퀄리티도 자연스럽게 향상되었습니다. 실제로 이 과정을 통해 디버깅 시간이 줄어들고, 새로운 기능을 추가하거나 변경할 때도 훨씬 효율적이라는 것을 느낄 수 있었습니다.

처음에는 “여러 사람이 한 번에 작업하면 시간이 더 오래 걸리지 않을까?”라는 우려가 있었습니다. 하지만 작업 시간을 더 길게 보았을 때 Mob Programming이 가진 장점들이 더 컸어요. 특히 리팩토링처럼 전체 구조를 바꾸는 작업에서는 팀원 모두의 합의와 이해가 중요하기 때문에 의사소통 시간을 절약하는 효과가 크게 작용했답니다. 😊

스프린트와 회고: 꾸준함의 힘 📈

리팩토링은 내부 과제라 외부 프로젝트와 우선순위를 조율하는 게 중요했어요. 그래서 저희는 스프린트를 도입해 일주일 단위로 작업 계획을 세우고 진행 상황을 점검했습니다.

그리고 한 달에 한 번씩 회고 를 진행하며 Keep, Problem, Try, Thanks to 네 가지 항목으로 서로의 피드백을 공유했어요. 특히 Thanks to 코너에서 팀원들 간의 고마움을 나누며 더 끈끈한 팀워크를 만들 수 있었습니다.

생생한 리팩토링 후기 🤓

왼쪽부터 티모, 웨이드, 필립, 에이버리, 시나몬

마지막으로 팀원들의 리팩토링 후기를 안 들어볼 수 없겠죠?

마무리하며

리팩토링은 단순히 코드를 고치는 작업이 아니라, 팀의 협업과 성장 그 자체를 보여주는 과정이었습니다. 이번 프로젝트를 통해 저희는 서로의 아이디어를 더 깊이 이해하고, 복잡한 문제를 함께 풀어가는 방법을 배울 수 있었어요. 비록 모든 과정을 순탄하게 넘긴 것은 아니지만, 그만큼 더 많은 것을 배우고 한 단계 성장했다고 느낍니다.

앞으로도 저희 팀은 더 나은 코드와 서비스를 만들기 위해 계속 새로운 방법을 고민하고 도전할 계획이에요. 이번 리팩토링에서 얻은 경험과 교훈을 바탕으로 앞으로는 더 효율적이고 유연한 개발 환경을 만들어갈 수 있을 거라 믿습니다. 저희 팀이 걸어가는 여정을 함께 지켜봐 주세요! 긴 글 읽어주셔서 감사합니다! 🙇‍♂️