Side Project | 1. 프로젝트 고도화 및 리뉴얼 시작

사이드 프로젝트 시작

사이드 프로젝트를 개선해 봅니다.

시작하며

기존에 진행했었던 프로젝트인 MoCo를 리뉴얼하고자 합니다. 백엔드 개발자로 근무한 지 7개월이 되가고 있는 이 기간동안 배운 지식들을 활용하여 기존 코드를 개선하고 더 나은 아키텍처를 새롭게 구축하고자 합니다.


기존 프로젝트를 고도화하는 이유는 “좋은 코드와 설계를 가진 프로덕트”를 만들고 만족스러운 서비스를 제공하는 것이 주요 이유입니다. 많은 사용자에게 찾아주는 웹 서비스 경험을 제공해 주는 서비스를 만들고 싶습니다. 이것 저것 만들어 보고 싶은 것도 많고, 해보고 싶은 것도 많습니다.

그렇게 첫 서비스인 MoCo를 개발하게 되고, 개발 과정 중 많은 경험과 인사이트를 얻었습니다. 그중 특히 개발과 비즈니스의 관계를 조금이나마 알게 된 것 같습니다. 개발자로서 좋은 제품을 만든다는 것은 여러 철학이 녹아집니다.

초창기 제품을 만들 때는 탄탄함보다 속도를 우선하는 경우가 더욱 좋을수도 있고, 언젠간 이후에 생길 문제를 대비하기 위해 탄탄함을 우선시하는 경우도 존재할 수도 있습니다. 그 사이의 밸런스를 잡는 것은 조직과 팀의 존재 이유가 아닐까 싶습니다.



기술의 중요성

모든 프로덕트에 맞는 기술이란 존재하지 않습니다. 어떤 프로덕트를 만드느냐에 따라서 기술도 바뀔 수 있어야 하고 그 환경안에서 최선의 선택에 맞는 기술스택은 미리 알기란 어렵습니다. 처한 상황에서 적절한 기술을 고를수 있어야 합니다.

주니어가 특정 상황에서 해결책이 2가지의 방법이 존재한다면 시니어의 경우 5가지, 10가지가 될 것이고 그 중에 최선의 선택을 고르는 폭이 주니어와 시니어의 차이가 아닐까 싶습니다.



Goal

이번 고도화의 목표는 좋은 설계와 코드의 프로덕트입니다. 하나의 서비스를 처음부터 끝까지 만드는 경험은 큰 성장을 할 수 있습니다. 실제로 서비스를 해보면서 수정사항이 생기면 유지보수가 가능한 코드를 작성해야 했음을 알게되고, 어렴풋이 알던 지식으로 작성했던 코드는 추후에 큰 발목을 잡습니다.

이를 위해 다음과 같은 조건들을 수립했습니다.

  • 시퀀스 다이어그램을 활용할 것
  • Best Practice를 찾아보고 적용할 것
  • 사용자가 만족할 수 있는 서비스에 고민할 것
  • 사용자 경험이 긍정적으로 이어지는 서비스 이용 경로



목표

고도화 및 리뉴얼을 통해 달성하고자 하는 목표는 크게 5가지 입니다.

  • 기존 코드와 아키텍처의 문제점을 개선
  • 새로운 기술 적용
  • 기능 및 백엔드 시스템 고도화
  • UI/UX 개선
  • 프론트와 백엔드 나누어 독립적으로 개발



상세 목표

  1. Java 버전 업그레이드
    • 기존의 자바 버전은 11을 사용하고 있었고 17로 변경해 봅니다.
  2. Spring boot 버전 업그레이드
    • Spring boot 2.7.2 버전에서 3.1.2 버전으로 변경해 봅니다.
  3. ERD 개선
    • 기능 추가 및 기존 기능 수정에 따른 ERD 구조 변경을 진행합니다.
  4. 템플릿 엔진 제거 REST API 서버로 전환
    • 현재 사용 중인 타임리프 템플릿 엔진을 제거하고, 프론트 서버와 분리하여 REST API 서버로 변경합니다.
  5. 프론트 프레임워크 도입
    • Spring Boot REST API 와 연동할 프레임워크를 도입합니다.