프론트엔드와 백엔드의 레포구성 등을 어떻게 할지 정하려고 한다.
아키텍쳐 구성방법에 대해 알아보고 회의를 통해 결정하기로 하였다.
예시를 들기위해
스프링 + JSP 로 구성된 프로젝트 A 가 있다고 가정하자.
스프링 + React.js 로 구성된 백엔드 및 프론트엔드로 분리된 프로젝트 B 가 있다고 가정하자.
백엔드와 프론트엔드를 분리함으로써 각각의 코드 베이스는 독립적으로 관리될수 있다.
개발자가 자신의 업무에 집중할수 있게 해주며 백엔드 팀은 API 및 비지니스 로직을 개발, 관리하고
프론트엔드는 사용자 인터페이스 및 사용자 경험에 집중할수 있다.
각각의 코드 변경 사항을 독립적으로 배포할수 있다. 이는 개발 주기를 가속화 하고 더 자주 배포할수 있게 해주며 독립적인 배포를 통해 변경사항이 있을경우 유연하게 대응할수 있다.
분리된 레포지토리로 인해 코드 변경사항 이력 추적 및 리뷰를 하기에 용이하다.
백엔드와 프론트엔드를 분리함으로써 각각 원하는 기술 스택을 선택할수 있다.
각 팀의 선호도와 요구사항에 맞는 최적의 도구와 기술을 선택할수 있도록 해준다.
( 우리는 기술 스택의 경우 이미 정해져 있다 )
관심사를 분리하여 각각의 할일에 더 집중할수 있고 요구사항 변경 또는 코드 수정 등에 유연하게 대응하며 레포지토리를 분리함으로써 코드 변경이력 추적이나 리뷰를 하기에 좋으므로
프론트엔드와 백엔드 레포지토리는 분리하여 작업하는게 좋다.