
본 기록은 CoreERP 백엔드 환경 구성 이후, 실제 도메인 설계에 진입하기 전 수행한 계층 구조 정비 과정을 정리하기 위한 문서이다.
이 단계의 핵심은 기능 구현이 아니라, ERP 시스템으로 확장 가능한 구조를 먼저 고정하는 것이었다.
Spring Boot 프로젝트 생성 직후에는 기본 테스트용 Controller 및 임시 API 코드가 포함되어 있다. 그러나 CoreERP는 장기 설계를 전제로 하므로, 실제 도메인과 무관한 코드는 제거하였다.
초기 단계에서 구조를 단순화하지 않으면, 도메인 설계 시 책임 경계가 흐려질 수 있기 때문이다.
ERP 시스템은 계층 분리가 명확해야 유지보수가 가능하다. 다음과 같은 기본 구조를 고정하였다.
com.coreerp
├─ controller
├─ service
├─ repository
├─ domain
└─ config
Controller → Service → Repository → Database 흐름을 명확히 분리함으로써, 각 계층의 책임을 고정하였다.
백엔드의 실행 진입점은 다음과 같이 구성되어 있다.
package com.coreerp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CoreerpBackendApplication {
public static void main(String[] args) {
SpringApplication.run(CoreerpBackendApplication.class, args);
}
}
이 클래스는 Spring Boot 애플리케이션의 시작점이며, 전체 프로젝트 실행 기준을 고정하는 역할을 한다.
계층 구조의 출발점을 명확히 하기 위해, 최소한의 REST Controller 골격을 구성하였다.
package com.coreerp.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class BaseController {
}
실제 기능은 구현하지 않았지만, 향후 모든 API가 /api 기준으로 확장될 수 있도록 URI 구조의 시작점을 고정하였다.
이 단계는 외형적으로 눈에 띄는 기능 추가는 없지만, 프로젝트의 안정성을 결정하는 핵심 전환점이다.
ERP 시스템은 단순 CRUD 프로젝트와 달리, 재고·입출고·발주 등 복잡한 트랜잭션 흐름이 존재한다. 따라서 계층이 무너지면 데이터 무결성 역시 쉽게 훼손될 수 있다.
기능 구현보다 구조를 먼저 고정한 이유는, 향후 설계 단계에서 흔들리지 않는 기반을 만들기 위함이다.
구조가 안정적으로 정리된 이후, CoreERP의 핵심이 되는 ERD 확정 및 JPA 엔티티 설계 단계로 진입한다.