CoreERP Backend – 구조 정비 및 계층 설계 고정

최병현·2026년 2월 21일

coreerp project

목록 보기
5/44

1. 작성 목적

본 기록은 CoreERP 백엔드 환경 구성 이후, 실제 도메인 설계에 진입하기 전 수행한 계층 구조 정비 과정을 정리하기 위한 문서이다.

이 단계의 핵심은 기능 구현이 아니라, ERP 시스템으로 확장 가능한 구조를 먼저 고정하는 것이었다.


2. 불필요 코드 정리

Spring Boot 프로젝트 생성 직후에는 기본 테스트용 Controller 및 임시 API 코드가 포함되어 있다. 그러나 CoreERP는 장기 설계를 전제로 하므로, 실제 도메인과 무관한 코드는 제거하였다.

  • HelloController 삭제
  • DB Ping 테스트용 API 제거
  • 임시 엔드포인트 제거

초기 단계에서 구조를 단순화하지 않으면, 도메인 설계 시 책임 경계가 흐려질 수 있기 때문이다.


3. 패키지 구조 고정

ERP 시스템은 계층 분리가 명확해야 유지보수가 가능하다. 다음과 같은 기본 구조를 고정하였다.


com.coreerp 
├─ controller 
├─ service 
├─ repository 
├─ domain 
└─ config 
  • controller : HTTP 요청 처리
  • service : 비즈니스 로직 처리
  • repository : 데이터 접근 계층 (JPA)
  • domain : 엔티티 및 도메인 객체 정의
  • config : 공통 설정 관리

Controller → Service → Repository → Database 흐름을 명확히 분리함으로써, 각 계층의 책임을 고정하였다.


4. 애플리케이션 실행 기준

백엔드의 실행 진입점은 다음과 같이 구성되어 있다.

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 애플리케이션의 시작점이며, 전체 프로젝트 실행 기준을 고정하는 역할을 한다.


5. 기본 REST 구조 틀 구성

계층 구조의 출발점을 명확히 하기 위해, 최소한의 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 구조의 시작점을 고정하였다.


6. 구조 정비 단계의 의미

이 단계는 외형적으로 눈에 띄는 기능 추가는 없지만, 프로젝트의 안정성을 결정하는 핵심 전환점이다.

ERP 시스템은 단순 CRUD 프로젝트와 달리, 재고·입출고·발주 등 복잡한 트랜잭션 흐름이 존재한다. 따라서 계층이 무너지면 데이터 무결성 역시 쉽게 훼손될 수 있다.

기능 구현보다 구조를 먼저 고정한 이유는, 향후 설계 단계에서 흔들리지 않는 기반을 만들기 위함이다.


7. 다음 단계

구조가 안정적으로 정리된 이후, CoreERP의 핵심이 되는 ERD 확정 및 JPA 엔티티 설계 단계로 진입한다.

profile
Develop

0개의 댓글