한 레포에서 여러 프로젝트를 구성 할때, DB 엔티티(entity) 공유 방법이 궁금합니다.
922
작성한 질문수 2
안녕하세요, 프로젝트 폴더&파일 구조에 대해 문의드리고자 글을 남기게 되었습니다.
1개 레포지토리에
2개(A, B) 프로젝트가 있습니다
각각 스프링부트 프로젝트 입니다
A 는 API Rest 서버 이고
B 는 크론 서비스로 구성된 서버 입니다
A와 B 간 통신은 없습니다
A 에서 요청을 받으면, DB 에 요청을 저장하고
B 가 주기적으로 DB 를 탐색하여 미 처리된 요청을 실제 수행하고자 합니다
예를 들어, 메일 발송 또는 영수증 (pdf) 생성 요청을 A 서버가 받아서 DB 에 저장하면,
해당 테이블을 B 가 주기적으로 확인하여 작업을 실제 수행하고자 합니다.
B 서비스에서 db 엔티티를 어떻게 이용하는게 좋은 구성인지 궁금합니다.
제가 생각해본 바는 3가지 입니다
1. entity 만 독립된 레포로 구성하고, submodule 로 각각 참조하도록한다.
- 1개 레포 쓰려고 구성했는데 entity 만 독립 레포로 분리한다는 점이 불편하게 다가옵니다, 그리고 submodule 구성 자체도 거부감이 들었습니다
2. A 에 주로 entity 를 작성하고, 필요한 부분만 B 에 일부 복사하여 사용한다.
- 구성하기는 편하지만 관리가 잘 될까, 변경점을 잘 따라갈 수 있을까 걱정됩니다
3. 프로젝트 A 와 B 를 합치고, 실행을 각각한다.
Repo
|___ A
|___ src / main / kotlin / com / test / api / entity
|___ src / main / kotlin / com / test / api / service
|___ src / main / kotlin / com / test / cron / service
- api 서버와 cron 서버 jar 자체를 분리하고 싶엇는데, 제가 찾아본 바로는 gradle 관련 포럼에서 이렇게 구성하는 것을 비추천 한다는 글들을 보았습니다, 구체적으로 찾아보진 못한 상태입니다
*현재구성)
Repo
|___ A
|___ src / main / kotlin / com / test / api / entity
|___ src / main / kotlin / com / test / api / service
| ...
|___ B
|___ src / main / kotlin / com / test / cron / service
위와 같은 환경에서 권장되는 방법이 어떤 것인지 궁금합니다.
읽어주셔서 감사합니다!
답변 1
1
안녕하세요. 에헤라디야님
이 부분에서 정답은 없지만, gradle 멀티모듈 프로젝트를 활용해서 다음과 같이 적용할 수 있습니다.
멀티모듈 프로젝트에 다음과 같이 구성합니다.
공통 모듈(공통 엔티티와 함께 사용하는 모듈)
프로젝트 A(공통 모듈 의존)
프로젝트 B(공통 모듈 의존)
이렇게 하면 빌드 시점에 프로젝트 A, 프로젝트 B 각각 다른 모양으로 빌드 할 수 있고, 공통으로 사용할 수 있는 공통 모듈도 하나로 관리할 수 있습니다.
물론 하나의 리포지토리로 관리합니다.
gradle 멀티 모듈을 구성하는 방법은 검색을 통해서 찾아보시면 많은 자료들을 보실 수 있을거에요.
구조 관련해서 다음 내용도 참고해보시면 도움이 되실거에요.
https://www.inflearn.com/questions/16046
감사합니다.
보안이 엄격한 데이터
0
75
1
MyProperties 자체를 클라이언트 코드에서 사용
1
47
1
http://localhost:8080/actuator/prometheus
0
90
3
jar 추가에대한 질문드려도될까요?
0
70
1
build.gradle bom link 변경
0
70
2
@Counted 초기화
0
49
1
@Validated를 적용해도 빈 검증이 안되는 경우에 대한 조치 공유..
0
104
2
springboot에서 actuator없이 micrometer를 사용할수 있나요?
0
68
1
@Configuration 질문드립니다.
0
87
2
[공유] 터미널 말고 IDE 에서 jar 실행하기
0
104
1
localhost:8080/hello-servlet 404오류
0
125
2
내장톰캣2 서블릿 톰켓 실행이 안됩니다
1
155
2
최대 Tomcat 스레드 수를 확인하는 지표
0
163
1
mac m2에서 startup.sh 실행후 아무 반응이 없습니다.
0
96
2
내장 톰캣 실행 오류 관련 질문드립니다.
0
164
1
스프링 발전 과정들도 자세히 알아둬야하나요??
1
131
1
스프링부트 ioc 컨테이너 갯수
0
90
1
404 페이지
0
135
3
actuator 호출시 타임스탬프 질문
0
91
1
순수 라이브러리 사용하기 2 - memory-v1
0
127
1
외부설정 @ConfigurationProperties의 내부 클래스에서 static을 사용하는 이유를 알고 싶습니다.
0
105
1
서블릿 컨테이너 초기화1 강의 관련 질문입니다~
0
95
1
Thread Config Max 패널 설정 변경 질문
0
130
1
스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.
0
111
1





