작성
·
200
0
한프로젝트에 Member라는 하나의 entity를 한국,미국에서 같은 소스를 사용하고 환경만 다르게 해서 사용을 하고 있다고 할때,
부득이하게 분기처리가 되어질수 있는 부분이 생기는데요,
예를 들어 미국에서만 쓰여지는 특정컬럼을 추가한 경우 한국에서는 사용여부와 상관없이 db에 필드를 추가해줘야
정상적으로 사용할수 있는 상황이 생겨버리는데, 혹시 이럴경우에는 유연하게 가져갈수 있는 방법이 있을까요?
(상황에 맞게 @Trasient를 붙여준다던가...)
아에 소스를 분리하는게 맞을까요?.. 조언 부탁드려요 :)
답변 2
1
0
안녕하세요. beans9님^^
우선 같은 소스를 사용해야 한다면 딱 좋은 방안이 떠오르지는 않습니다.
그래도 문제를 해결해야 한다면, 멀티모듈을 활용해서 소스코드를 분리하는 방법을 선택할 것 같아요.
방법은 멀티모듈 프로젝트를 만들고, 한국 엔티티 전용 모듈과 미국 엔티티 전용 모듈을 서로 분리합니다. 단 이때 패키지와 엔티티 이름은 동일해야 합니다.
예)
한국 모듈
korea-entity(모듈명)
- com.hello.Member (소스코드)
미국 모듈
us-entity(모듈명)
- com.hello.Member (소스코드)
그리고 이 모듈을 빌드하는 시점에 서비스 모듈에서 둘중 하나를 선택하도록 해서 문제를 해결하는 하면 될 것 같습니다. 물론 소스코드가 다르기 때문에 인터페이스를 활용해서 추상화를 잘 해내는 것이 중요합니다.
감사합니다^^