Inflearn brand logo image

인프런 커뮤니티 질문&답변

ultimates님의 프로필 이미지
ultimates

작성한 질문수

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

0장. 작전1: 시스템 처형 전 무기 점검💀

각파일들의 디렉토리 위치가 없는데 임의적으로 해야하나요?

작성

·

51

1

각파일들의 디렉토리 위치가 없는데 임의적으로 해야하나요?

예를들어 BatchConfig파일을 어디에 생성해야하는지 안보이는거 같아요

답변 2

1

KILL-9님의 프로필 이미지
KILL-9
지식공유자

BatchConfig 파일? 당장은 Application 클래스와 같은 디렉토리에 두어도 좋고, 
챕터별로 나누어도 좋다. 돌아가기만 하면 된다.

하지만 진짜 실무에서는 다르다.
이 땐 배치 잡의 목적에 맞게 디렉토리를 구성하는 것을 권장한다.

지금은 학습중이므로 개념 설명 순서에 맞게 가도 좋다. 그러나 실제로는 위의 방법을 많이 사용한다.
(다소 불친절할수있찌만, 우리 강의가 별도의 directory를 안내하지 않는 이유도 이러한 이유 때문이다.)
💀💀💀

 

0

안녕하세요, 인프런 AI 인턴입니다.

ultimates님, Spring Batch 강의를 수강하시면서 각 파일의 디렉토리 위치에 대한 궁금증이 생기셨군요. Spring Boot 및 Spring Batch 프로젝트에서 디렉토리 구조는 프로젝트의 복잡성, 개발팀의 컨벤션, 개인 취향 등에 따라 다를 수 있습니다. 일반적으로 Spring 프로젝트에서 자주 사용하는 디렉토리 구조에 대해 간략히 설명해 드리겠습니다.

일반적인 Spring Batch 디렉토리 구조

  1. config: 이 디렉토리에는 BatchConfig와 같은 설정 관련 클래스를 두시면 좋습니다. 이 클래스들은 전역 설정이나 공통으로 사용하는 Bean들을 설정하는 곳입니다.

  2. job: Job에 관련된 configuration을 이곳에 두는 것이 일반적입니다. 각 Job에 대한 설정 파일을 구분해서 관리하기 때문에 유지보수에 용이합니다.

  3. step: Step 관련 설정 및 로직은 별도로 step 디렉토리에 두어 관리합니다.

  4. domain: 사용되는 엔티티 클래스나 데이터 전송 객체(DTOs)를 여기서 관리합니다.

  5. repository: 데이터베이스와 관련된 작업을 수행하는 곳입니다. JpaRepository 인터페이스 등을 확장하는 곳입니다.

  6. service: 비즈니스 로직들이 포함되며, 복잡한 로직이나 여러 Step을 연결하는 작업을 여기서 처리합니다.

예시

src/
└── main/
    ├── java/
    │   ├── com/yourcompany/yourproject/
    │   │   ├── config/       <-- BatchConfig 위치
    │   │   ├── job/          <-- Job 관련 파일들
    │   │   ├── step/         <-- Step 관련 파일들
    │   │   ├── domain/       <-- 도메인 클래스
    │   │   ├── repository/   <-- 레포지토리 클래스
    │   │   └── service/      <-- 서비스 클래스

위와 같은 구조는 하나의 예시일 뿐, 프로젝트의 요구사항이나 팀의 스타일에 따라 달라질 수 있습니다. 따라서 실제로 적용할 때는 팀 내에서 상의하여 일관된 디렉토리 구조를 유지하는 것이 좋습니다.

관련한 더 자세한 설명을 원하신다면 배치 애플리케이션 패키지 구조 논의를 참고하시면 유사한 고민과 해결 방안을 보실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ultimates님의 프로필 이미지
ultimates

작성한 질문수

질문하기