도전과 성장, 그리고 배움으로 가득 찬 2024년 회고

조회수 ...

도전, 성장, 배움: 2024년 회고


1분기 (1~3월): 변화의 시작, 역할의 확장

Keep

2024년 초, 팀 내부적으로 큰 변화가 있었습니다. 예상치 못한 시점에 중요한 동료들이 떠나며 공백이 발생했고, 이에 따라 저에게 더 많은 책임과 역할이 주어졌습니다. 이러한 변화 속에서도 팀의 안정성을 회복하기 위해 최선을 다했습니다.
특히, 앱의 안정성이 낮은 상태에서 TypeScript로 전환해 코드의 안정성을 크게 개선했고, 비효율적인 배포 시스템을 리팩터링하며 기술 환경을 더 나은 방향으로 바꿀 수 있었습니다. 이 과정에서 어려움도 많았지만, 그 결과 팀의 신뢰를 얻고 스스로도 자부심을 느낄 수 있었습니다.
또한, 사이드 프로젝트를 통해 자신감을 회복하고, 이력서를 업데이트하며 새로운 기회를 모색할 수 있었습니다. 도전을 통해 저 자신을 되돌아보고 앞으로의 방향성을 정리할 수 있었던 소중한 시기였습니다.

Problem

하지만 모든 것이 순탄하지는 않았습니다. 팀 내 의사소통의 부재로 인해 제가 다른 팀원들에게 퇴사를 권유했다는 오해가 발생했습니다. 이는 조직 내에서 큰 불편함을 초래했고, 신뢰를 회복하는 데 시간이 걸렸습니다.
기술적으로도 데이터 레이어를 상속 중심으로 설계하려다 유연하지 못한 구조를 만들어, 이후 확장성과 유지보수에 어려움을 겪었습니다. 이러한 실수들은 제가 문제를 해결하는 데 있어 더 깊이 고민해야 할 필요성을 느끼게 해주었습니다.

Try

앞으로는 이런 문제를 개선하기 위해 명확하고 투명한 커뮤니케이션을 통해 신뢰를 회복하고, 오해를 방지하는 데 중점을 두려고 합니다. 또한, 기술적으로는 상속 대신 의존성 주입(DI) 패턴을 더 적극적으로 연구하고 적용해 더 유연한 설계를 만들어 나갈 계획입니다.


2분기 (4~6월): 새로운 도전, 팀의 재정비

Keep

4월에는 새로운 직장인 뮤즈라이브에 입사하며 많은 것을 배우고 도전할 수 있는 기회를 얻었습니다. 가장 큰 과제는 기존 서비스를 Next.js로 점진적으로 마이그레이션하는 작업이었습니다. 각 서비스가 서로 다른 컨벤션으로 운영되고 있었던 상황에서, Prettier와 ESLint를 공통화해 코드 품질을 높이고 협업 효율성을 개선하는 데 성공했습니다.
또한, 디자인 시스템을 구축하며 디자이너와의 협업을 강화하고, 앞으로의 협업 과정에서 발생할 수 있는 소통 비용을 줄이는 초석을 다질 수 있었습니다. 부족한 기획과 일정 속에서도 팀원들과 협력하며 목표를 달성했을 때의 성취감은 잊을 수 없을 것입니다.

Problem

하지만 도전에는 언제나 문제점이 따릅니다. 미국에서 발생한 API 데드락 문제로 인해 프론트엔드에서도 긴급 대응이 필요했지만, 디버깅에 충분한 시간을 확보하지 못해 어려움을 겪었습니다. 모노레포 도입 논의 과정에서도 기술적 부담과 앞으로의 관리 포인트 증가에 대한 우려로 인해 진행이 지연되었습니다.
새로운 기술 스택을 빠르게 익히는 과정에서 오는 부담감도 컸으며, 이는 작업 중 스트레스를 증가시키는 원인이 되기도 했습니다.

Try

앞으로는 일정 산정 시 구체적인 데이터와 논리를 바탕으로 상위 조직을 설득해 디버깅과 같은 필수 작업에 필요한 일정을 확보하겠습니다. 새로운 기술 스택 도입 시에는 작은 성공 사례를 먼저 만들어 이를 기반으로 점진적으로 확장해 나가는 방식을 적극적으로 활용할 계획입니다.
또한, 기획 단계에서부터 적극적으로 참여해 초기부터 방향성을 명확히 잡아야 한다는 점을 다시 한번 깨달았습니다.


3분기 (7~9월): 협업과 구조 개선

Keep

7월부터는 Low-Fi 단계에서 High-Fi 단계로 프로토타입 작업을 전환하며 서비스를 본격적으로 만들어 갔습니다. 이 과정에서 디자인 시스템을 구축하며 디자이너와의 협업이 이전보다 훨씬 긴밀해졌고, 팀 전체의 통합된 작업 분위기를 형성하는 데 기여했습니다.
또한, Repository와 Service 레이어를 분리하고 Clean Architecture의 원칙을 일부 도입하며 더 나은 코드 구조를 고민하고, 이를 팀 내에 공유해 컨벤션으로 자리 잡을 수 있었습니다. 인증 로직을 Layout에서 미들웨어로 옮기며 사용자 경험(UX)을 크게 개선했고, 데이터 캐싱을 추가해 페이지 전환 속도를 향상시키는 데도 성공했습니다.

Problem

작업량이 증가함에 따라 일정이 지연되는 상황이 발생했습니다. 이로 인해 팀원들, 그리고 저 자신도 멘탈적으로 힘든 시기를 겪었습니다. 디자인 시스템을 도입했지만, 팀원 모두가 이를 완전히 이해하고 활용하지 못한 점도 아쉬움으로 남았습니다.

Try

작업량이 많을 때 우선순위를 명확히 설정하고, 작업을 더 작은 단위로 나눠 진행해야 한다는 교훈을 얻었습니다. 인증 로직은 더욱 구조화하고, 캐싱 전략도 명확히 설계해야 할 필요성을 느꼈습니다.
또한, 디자인 시스템 도입 시 문서화를 통해 팀원들과의 이해도를 높이고 활용도를 증진하기 위한 노력을 더해 나갈 계획입니다.


4분기 (10~12월): 안정화와 마무리

Keep

10월에는 테스트 서버를 배포하며 Docker, PM2, Nginx, ECS, ECR을 활용한 새로운 배포 방식을 도입했습니다. 초기에는 낯설고 어렵게 느껴졌지만, 꾸준히 학습하고 익히며 안정성을 확보할 수 있었습니다.
운영 배포 과정에서는 i18n 캐시 문제를 해결하기 위해 노력하며 사용자 불편을 줄이는 데 초점을 맞췄습니다. 12월에는 QA를 통해 안정화 작업에 집중하며 한 해 동안 쌓아온 노력을 결실로 마무리할 수 있었습니다.

Problem

i18n 캐시 문제로 인해 언어 변환 직후 UX가 저하되는 문제가 발생했고, 이를 해결하는 데 예상보다 많은 시간이 소요되었습니다. 새로운 배포 방식을 도입하면서 초기 설정과 학습 곡선에서의 어려움도 있었습니다. QA 과정에서는 모든 세부적인 버그를 잡아내지 못할 가능성이 있어 리스크가 존재했습니다.

Try

이러한 문제를 해결하기 위해 i18n 캐시 로직을 더 세부적으로 설계하고, 배포 및 설정 관련 프로세스를 문서화해 팀 내 공유와 학습 효율성을 높이겠습니다. QA 과정에서는 체크리스트 기반의 체계적인 테스트 환경을 구축하여 품질을 더욱 향상시키겠습니다.


기억에 남는 사건

1. 기술 스택 선택

Next.js, React Query, TypeScript 등 주요 기술을 도입하기 전에 POC(Proof of Concept) 단계를 거치며 적합성을 철저히 검토했습니다. 장기적인 유지보수와 팀의 기술 숙련도를 고려해 TypeScript의 안정성과 Next.js의 유연성을 결합함으로써 기존 코드베이스의 문제를 해결할 수 있었습니다.

2. 새로운 아키텍처 구상 및 적용

Clean Architecture 원칙을 가볍게 도입하여 기존의 유지보수 어려움을 해결했습니다. Repository와 Service 레이어를 구분하고 비즈니스 로직과 데이터 처리를 분리함으로써 코드 가독성을 개선하고, 새로운 기능 도입 시 유연성을 높였습니다.

3. 기존 테스트 서버 교체

Docker, Nginx, AWS ECS/ECR을 활용해 테스트 서버를 새롭게 구성하며 배포 환경을 체계적으로 정비했습니다. 이를 통해 디버깅에 소요되는 시간과 노력을 줄이고, 서비스 전반의 동작 원리를 깊이 이해할 수 있었습니다.

4. 디자인 시스템 구축

Storybook디자인 토큰을 활용해 디자인 시스템을 구축하며 디자이너와의 협업을 강화했습니다. 이를 통해 UI/UX 품질과 개발 효율성을 모두 높였습니다.

5. i18n 캐시 문제 해결

글로벌 서비스로 확장하기 위해 i18n을 도입했으나 언어 변경 시 캐시 문제가 발생했습니다. React Query와 클라이언트-서버 동기화 로직을 개선하며 즉각적인 언어 변환을 가능하게 했습니다.


총평 (KPT 기반)

2024년은 도전과 변화로 가득 찬 한 해였습니다. 어려움을 극복하고, 새로운 기술과 협업 방식을 통해 개인과 팀 모두 한 단계 성장할 수 있었습니다.

  • Keep: TypeScript 전환, 디자인 시스템 구축, 모노레포 도입 등 기술적 성장을 이루고 팀 내 기여를 확대했습니다.
  • Problem: 일정 조율과 기술 도입 과정에서 상위 조직 및 팀원들과의 공감대 형성이 부족했던 점, 작업량 증가로 인한 멘탈 부담이 주요 과제였습니다.
  • Try: 데이터를 기반으로 설득력을 높이고, 점진적 기술 도입 방식을 유지하며 리스크를 줄이겠습니다. 협업 과정에서 소통과 교육을 통해 팀원들과 더 긴밀히 협력하겠습니다.

배움과 성장은 결코 쉽지 않았지만, 그 과정에서 얻은 성취감과 자신감이 앞으로의 도전을 더 가치 있게 만들어 줄 것입니다.