백엔드 어디부터 개발할까?
- "백엔드로 새로운 프로젝트를 시작하면 어디부터 개발해야 할까?" 에 대한 고민으로 이 글을 써본다.
- 나는 보통 스프링 부트 환경에서 개발하기 때문에 그 기준이다.
1. 분석 및 설계 단계 (Analysis and Design Phase)
- 요구사항을 이해한다.
- 아키텍처를 정의하고 중요한 기술적 결정을 한다.
- 프로젝트 구조, DB 선택, 엔티티 정의, 비즈니스 도메인 이해 등이 이 단계에 포함된다.
2. 도메인 모델 (엔티티) 과 함께 시작한다.
- 엔티티를 코딩하며 시작한다.
- 엔티티는 비즈니스 로직의 핵심을 담당하게 되며, 시스템 내의 실제 개체와 관계를 나타낸다.
- 애플리케이션을 위한 강력한 기반을 구축한다.
3. 리포지토리 레이어
- 엔티티 정의 후에는 DB 와 상호작용하는데 필요한 CRUD 작업을 수행하는 리포지토리 계층을 생성한다.
- Spring Boot 에서는 spring-data-jpa 를 통해 쉽게 구성할 수 있다.
4. 서비스 레이어
- 비즈니스 로직과 트랜잭션 관리가 구현되는 서비스 계층을 구현한다.
- 리포지토리를 호출하고 데이터에 필요한 변환, 유효성 검사 혹은 기타 작업을 수행한다.
보통 컨트롤러부터 개발하는 경우가 많은데, 그 경우 컨트롤러에 비즈니스 로직이 있는 경우를 많이 봤다.
우리의 진짜 목적에 집중하는데 노력하자.
5. 컨트롤러 레이어
- 클라이언트와 상호작용할 RESTful 엔드포인트 혹은 기타 인터페이스를 구현한다.
- HTTP 요청과 응답을 처리하고 서비스 계층에 작업을 위임하는 역할이 있다.
공통 관심사 1. 테스팅
- 위의 레이어들을 작업하는 동시에 단위 테스트와 통합 테스트를 작성하여 코드가 올바르게 동작하는지 확인한다.
- 조기에 자주 테스트할수록 나중에 생긴 버그나 에러를 처리하는데 드는 비용이 감소한다.
공통 관심사 2. 구성정보와 인프라 셋업
- 이는 개발 전반에 걸쳐서 신경써야 한다.
- DB 연결, 보안, 캐싱 및 기타 공통 관심사 문제를 해결하는데 주의를 기울여야 한다.
반응형