inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

one to one 관계에서 lazy 로딩..

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

one to one 관계에서 연관관계의 주인이 아닌 쪽의 엔티티의 경우(mapped by) 실제 db 테이블에 연관객체에 대한 정보가 없기 때문에 프록시 객체를 생성할 수 없어서 lazy 로딩이 작동안한다고 알고있습니다. 그러면 one to one 뿐만 아니라 one to many 관계에서로 맺어진 필드(list) 또한 프록시 객체를 생성할 수없어서 lazy로딩이 작동하지 않는건가요??

  • JPA
  • java
물미구 댓글 1 좋아요 1 조회수 213

Entity 메소드 파라미터로 DTO를 받는 것, 괜찮을까요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요? JPA 수업 수강 후, 실제 업무에 적용하는 와중에 궁금한 점이 있어서 질문 남깁니다. DB Update를 위한 Entity Method의 파라미터로 DTO를 받는 것이 프로그램 구동상에는 전혀 문제는 없는데요. Domain driven design을 구현하는데에 있어서 엔티티 메소드의 파라미터로 DTO를 집어넣는게 바람직한 설계(?) 인지 문의 드립니다. 질문의 보다 빠른 이해를 위해 샘플 코드 및 시나리오를 아래와 같이 남깁니다. - 상황 : 회원정보수정 API의 input으로 MemberDTO를 받음 - Member DTO 내에 ContactDTO, List<AddressDTO>를 가진 구조 (Nested) class MemberDTO { ... private ContactDTO contactDTO; private List<AddressDTO> addressDTO; ... } - Service 레벨에서 memberRepository.findById() 통하여 Member Entity를 불러옴. - Member Entity와 Contact Entity은 1:1조인, Address Entity와는 1:N 조인 - Contact 및 Address 업데이트를 위해 Entity레벨에 다음의 메소드를 구현해두었으며, member.getContact().updateContact(contactDTO)로 해당 메소드를 호출 @Entity class Contact(또는 Address) { ... public void updateContact (ContactDTO contactDTO) { ... this.phoneNumber = contactDTO.getPhoneNumber(); ... ... } } 감사합니다.

  • spring-boot
  • java
  • spring
  • 웹앱
  • JPA
Jinseok Han 댓글 2 좋아요 2 조회수 3379

엔티티로 승격되지 않은 테이블은 JPA에서 어떻게 사용할 수 있나요?

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPA 강의 도중에 "모든 테이블을 엔티티로 바를 순 없다"고 얘기하셨던 게 기억나요. 어떤 강의였는 지 정확히 기억이 나진 않습니다. 엔티티 코드로 명시되지 않은 테이블은 어떻게 사용할 수 있는지 궁금합니다. JPA Native 쿼리로 써야하나요? 아니면 값 타입으로 정의를 해야할까요? 예를 들면, 특정 년도의 통계를 저장하는 테이블을 말할 수 있을 것 같아요. Member, Order, Delivery, OrderItem, Item 같은 테이블이 아니라 단순히 값만 뽑아서, 화면에 뿌리는 용도로 사용되는 테이블이요. 이런 테이블 같은 경우, 컬럼이 수십개가 넘어서, 이 컬럼들을 전부 Attribute로 정의해서 엔티티로 만들어야 하는지 의구심이 생깁니다. 또 이런 테이블은 용도상 객체 내부에서 이뤄질 연산이 거의 없기도 합니다.

  • java
  • JPA
Roy 댓글 1 좋아요 0 조회수 192

N+1 문제를 맞게 이해한 것인지 잘 모르겠습니다.

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이번 강의를 통해 공부하면서 N+1문제를 아래와 같이 이해하였습니다. ex) 모든 주문 내역을 가져오는 경우 -> 실제로 나가는 쿼리는 select * from orders 쿼리 한방이지만, 1) 이때 지연로딩인 경우 , 조회한 order에 대해 member나 delivery를 필요로 하는 경우에 각 order별로 member나 delivery 조회 쿼리가 N번씩 나가게 되고 2) 즉시 로딩인 경우, select * from orders 라는 모든 주문 조회 쿼리 한방이 나간 후, 곧바로 조회한 order들과 연과된 member와 delivery 조회 쿼리가 이어서 나가게 된다. (단 이떄 예측할 수 없는 쿼리가 나갈 수 있음.) 즉 정리하면 즉시로딩과 지연로딩 모두 N+1 문제가 발생할 수 있지만, 즉시로딩은 예측할 수 없는 쿼리가 나갈 수도 있어 최적화 시키기 어려운 반면, 지연 로딩은 페치 조인을 사용하여 order를 조회하면서 동일 쿼리 상에서 member나 delivery도 함께 가져오게 하는방법으로 최적화 시킬 수 있으니, 지연로딩을 사용하는것이 옳다. 라고 이해하였는데, 맞게 이해한 것인지 잘 모르겠습니다. 감사합니다.

  • spring
  • java
  • spring-boot
  • JPA
요니 댓글 1 좋아요 3 조회수 685

Batch Size에서 두 번째 Order의 ID가 IN 쿼리에 들어가는 이유

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 처음 OrderItem을 조회할 때 두 번째 Order 의 ID(11)와 함께 IN 쿼리를 통해 조회됩니다. 여기서 IN 쿼리에 두 번째 Order 의 ID가 들어가는 이유에 대해 생각해보았습니다. 1. 현재 Order 엔티티를 통해 OrderItem을 조회하고 있다. 2. batch가 설정되어 있기 떄문에 1차 캐시에 들어있는 Order 들을 통해 최대 batch_size개 까지 IN 쿼리를 통해 조회한다. 3. 조회 대상이 된 1차 캐시에 들어있던 Order들 중에 두 번째 Order 가 포함되어있었기 때문에 IN 쿼리에 두 번째 Order 의 ID가 함께 들어갔다. 4. member와 delivery를 fetch하지 않았을 때도 위와 같은 이유로 한번에 조회되었다. 이런 과정을 거쳐서 같이 조회가 되지 않았나 생각해보았습니다. 제가 생각한 이유가 맞거나 혹시 틀린 부분이 있는지 궁금합니다. 감사합니다.

  • JPA
  • spring-boot
  • java
  • spring
안재우 댓글 1 좋아요 2 조회수 421

프록시를 이용한 연관관계 설정 시 잘못된 id값을 받았을 경우에 대해 질문드립니다!

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

단순히 연관관계 설정을 위해 엔티티를 사용하는 경우, 프록시로 조회(em.getReference || Data JPA의 경우 getById()) 형태로 조회한다고 알고 있습니다. 연관관계 설정을 위해 필요한 값은 id뿐인데, 굳이 엔티티의 다른 필드 정보까지 조회하기 위한 쿼리를 날리지 않는 편이 좋으니까요. 이 점과 관련해서 동료들과 이야기를 나누던 중 얘기가 나왔었는데, - 위와 같은 방식으로 연관관계를 맺을 경우 id값이 잘못된 값일 때 문제가 발생한다. 는 이야기를 들었습니다. 제 생각에는 정확한 id값 전달의 경우 id값을 전송하는 쪽의 책임이고, 그런 일이 나올 경우에 대비하는 것에 비해 프록시를 이용해서 조회 쿼리를 한 번 절약하는 이득이 더 크다고 생각했습니다. 하지만 방어적 코드를 작성하는 편이 좋다라는 측면에서 동료들의 말에도 일리가 있어서 고민이 되었습니다. 현업에서도 프록시를 이용해 연관관계를 맺는 방식을 사용하실 것 같은데, 위 경우에 대해 어떤 방식으로 별도의 처리를 해주시는지, 이 문제에 대해 어떻게 생각하시는지 궁금합니다.

  • 프록시
  • JPA
  • 연관관계
  • java
이한빈 댓글 1 좋아요 0 조회수 255

postgresql 쿼리를 dsl 에서 사용시 질문 드립니다.

해결됨

실전! Querydsl

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] postgresql 쿼리문을 dsl 을 통해 사용하려 합니다. group by 를 사용하여 해당 기준에 따른 특정 컬럼의 데이터를 array_agg를 통해 받아오려면 어떻게 해야할까요?

  • postgresql
  • java
  • JPA
exemxbe 댓글 1 좋아요 0 조회수 1026

허은택 님 질문에 이어서 질문 드립니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요? 질문이 있어서 글 남깁니다. Member 와 Product 간 양방향 매핑이 필요한 경우 중간 테이블을 두어 일대다 + 다대일 관계로 풀어내는 건 알았습니다. 그렇다면 만약 Product 객체를 조회하기 위해서 방법을 생각해봤는데 1. ProductRepository 에서 findBy~~ 로 불러온다. 2. LinkRepository 에서 JPA 를 통해서findByMemberAndProduct(Member member, Product product) 이런식으로 Link 테이블을 불러서 Link.product 리스트를 조회한다. 둘 중 어느 방법을 사용해도 상관 없을까요? 성능 최적화를 위해서는 어떤 방식이 좋을까요? 감사합니다^^

  • jpa
  • java
  • JPA
이재윤 댓글 2 좋아요 2 조회수 466

[H2 DB] jpashop 접근 방법

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. H2 ~/test DB는 접속이 가능하나, ~/jpahop으로 접근이 전혀 안되어 문의글 남깁니다. 사실, 문의글을 남기기 전, 구글링과 인프런 질의글 통해서 작업도 진행해보았지만 실패했습니다. 서포터즈분께서 2개의 링크를 추천해주셨고 해당 내용도 사실 이미 봤던 내용이지만 놓친 것이 있을지 몰라 따라해보았습니다만 또 실패했습니다. ㅠ.. 그래서 결국 재 문의를 남깁니다. 저의 핵심 은 ~/test 로는 로그인이 가능 하나, ~/jpashop으로 접근하게 되면 아래와 같이 오류가 발생 합니다. 강의보니까 persistence.xml에 아래와 같이 설정하고 나서 H2 접속해서 해당 url로 연결하면 jpashop DB로 접속하던데 저는 계속 에러가 발생하네요. <property name ="javax.persistence.jdbc.url" value ="jdbc:h2:tcp://localhost/~/jpashop" /> 이 사진은 서포터즈 분께서 남겨주신 링크 적용한 pom.xml 입니다. 결국 이 방법도 통하지 않았습니다..

  • java
  • JPA
Adol 댓글 2 좋아요 1 조회수 1915

hello.html에서 ${data} 빨간줄

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 강의 정말 잘 듣고있습니다! 다름이 아니라 아..마..도? devtools dependency를 추가해주고 난 다음 발생한 것 같은데 hello.html에서 ${data} 빨간줄이 그어져 있네요. 마우스로 갖다 대보니 cannot resolve 'data'라는 문구가 뜨지만 실행 시키면 콘솔 창에 별다른 오류도 없고 devtools 등 전부 정상 작동 합니다. 어떤 것 때문에 그런것일까요??

  • spring
  • JPA
  • 웹앱
  • java
  • spring-boot
김동현 댓글 1 좋아요 0 조회수 434

OrderService에서 itemService ItemRepository를 주입하는 것에 대해서 질문이 있습니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 김영한 멘토님 덕분에 스프링에 대해서 쉽게 공부할 수 있어서 항상 감사함을 느끼고 있습니다. 멘토님의 강의를 복습하던 중 궁금한 것이 생겨서 질문 남깁니다. 제가 의구심을 가지는 코드 부분은 다음과 같습니다. @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class OrderService { private final MemberRepository memberRepository; private final OrderRepository orderRepository; private final ItemRepository itemRepository; /** 주문 */ @Transactional public Long order(Long memberId, Long itemId, int count) { //엔티티 조회 Member member = memberRepository.findOne(memberId); Item item = itemRepository.findOne(itemId); .... } .... } @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class ItemService { private final ItemRepository itemRepository; .... public Item findOne(Long itemId) { return itemRepository.findOne(itemId); } } @Repository @RequiredArgsConstructor public class ItemRepository { .... public Item findOne(Long id) { return em.find(Item.class, id); } } 여기서 제가 궁금한 점은 OrderService에서 ItemService 대신 itemRepository를 주입한 이유가 궁금합니다! 물론, 둘 다 실행은 동일하게 되지만, itemRepository를 ItemService에서만 접근하게 하고, 타 클래스에서 item에 관한 로직은 무조건 ItemService으로만 접근하는 식으로 해야 item에 관련된 로직들이 응집도가 높아지고, 모듈 간 결합도가 낮아지지 않을까요?? 멘토님의 의견이 궁급합니다!

  • spring
  • 웹앱
  • java
  • spring-boot
  • JPA
pado 댓글 1 좋아요 0 조회수 250

일대다 다대일 양방향 연관관계 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

양방향 연관관계 관련하여 질문드립니다. 강의를 들은 정보를 바탕으로 복습중인데, 이해안되는 부분이 있습니다 ㅠ 일대다 다대일 양방향 연관관계에서 다음과 같이 설정했습니다. 게시글(1) - 게시글 사진(다) 서비스단의 트랜잭션 안에서 게시글을 생성하여 저장[save(게시글)]하고, 사진 리스트를 생성해서 각 사진들에 set(게시글)을 해주었습니다. 여기서, 연관관계의 주인은 다쪽인 사진 이므로 사진을 저장[save(사진)]해줘야하는 것 아닌가요?? 저는 해주지 않고 사진.set(게시글), 게시글.get사진List().add(사진) 만 해주었는데 insert쿼리가 나가는 것이 이해가 안되어 질문드립니다.

  • jpa
  • spring-boot
  • 웹앱
  • spring
  • java
  • JPA
동준 김 댓글 1 좋아요 1 조회수 377

영속성 컨텍스트 관련 질문

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요! 영한님 먼저 양질의 강의를 제공해주셔서 감사의 말씀 드립니다. 갑자기 영속성 컨텍스트에 대한 개념이 헷갈려서 질문드립니다. 😭 만약에 order테이블에서 member의 id가 동일한 경우 ordersV2()를 사용하면 쿼리가 총 4번 나가는데 이때 영속성 컨텍스트에서 관리되어(1차 캐시에서 조회하기 때문으로 이해했습니다.) 기존에 있는 것을 가져온다고 말씀하셨습니다. 그런데 @Transactional 안에서 DB를 조회해야 영속성 컨텍스트에서 관리되는 것 아닌가요? 🤔 감사합니다.

  • jpa
  • java
  • JPA
  • spring
  • spring-boot
개발하는쿼카 댓글 1 좋아요 8 조회수 318

질문드립니다

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

항상 친절한 강의와 답변 모두 감사드립니다! 강의듣다가 두 가지 질문이있는데요. MemberService.update Method 에서 return 값으로 Member를 넘기게 되면 영속성이 끊긴다고 하셨는데 그러면 Controller 쪽에서 Member updateMember = memberService.update(id, name); 라고 하면 이 updateMember 는 준영속 상태인가요 ? 그리고 일단 기본적으로 독립된 트랜잭션마다 각각 다른 영속성 컨텍스트가 생성되는 게 맞죠? (OSIV 는 추후 듣도록 하겠습니다!)

  • java
  • spring-boot
  • spring
  • JPA
2v2 댓글 1 좋아요 5 조회수 236

강의 이후 코드를 살펴보다 궁금한 점이 있습니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요, 강의 이후 작성된 코드를 돌려보다 궁금한 점이 있어 질문드립니다. 현재 이 강의만 따라왔을때, 실제로 주문을 한 뒤에 member, order, item, order_item 테이블에 데이터가 입력되도록 하려면 4개의 엔티티를 모두 객체 생성한 뒤에 영속화를 하는게 맞는지, 혹은 제가 강의의 양방향 연관관계를 잘 이해하지 못한것인지 궁금합니다. 메인메서드에 작성한 코드는 다음과 같습니다. addOrderItem 메서드는 다음과 같습니다. 현재 강의 내용만으로 봤을때, 4개의 엔티티를 모두 직접 객체 생성 후 영속화를 해야만 데이터가 제대로 들어가는게 맞는지 리뷰 한번해주시면 감사하겠습니다 :)

  • java
  • JPA
재욱 댓글 2 좋아요 0 조회수 365

FK, 인덱스 비교 질문

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 엔티티 클래스 개발2에서 FK 관련 질문입니다! FK를 안걸고 인덱스를 거는 방식도 있고 시스템마다 다르다고 하셨는데, Id값은 똑같이 가지고 있고 거기에 인덱스를 거는 것인가요? 그리고 이렇게 하면 속도가 왜 더 빨라지는 것인가요?

  • FK
  • 인덱스
  • JPA
  • java
  • spring
  • 웹앱
  • spring-boot
주영박 댓글 1 좋아요 0 조회수 390

JPA Persist 및 Commit 시 SQL 시점에 대한 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 강사님! 강의 너무 잘 수강하고 있는 학생입니다! 다름이 아니라 영속성 컨텍스트를 활용하여 em.persist(), tx.commit() 을 함에 따라 SQL 이 뿌려지는 시점 설명해주실 때 궁금증이 생겨서요! 우선 코드를 보시면 // 비영속 JpaMember memberA = new JpaMember() ; memberA.setName( " 얄리얄라 " ) ; JpaMember memberB = new JpaMember() ; memberA.setName( " 두둥실 " ) ; // 영속화 . 영컨에 등록 em .persist(memberA) ; em .persist(memberB) ; System. out .println( "=================== before commit" ) ; memberA.setName( " 조지밀러 " ) ; trans .commit() ; System. out .println( "=================== after commit" ) ; 위와 같은 코드를 진행하였을 시, ㅁㄴ다음과 같이 출력되고, SQL이 나가는 모습이 확인됩니다. =================== before commit Hibernate: /* insert jpa.demo.domain.JpaMember */ insert into jpa_member (name, id) values (?, ?) Hibernate: /* insert jpa.demo.domain.JpaMember */ insert into jpa_member (name, id) values (?, ?) Hibernate: /* update jpa.demo.domain.JpaMember */ update jpa_member set name=? where id=? =================== after commit 의문이 드는점은, 1. Insert SQL 이 쌓였다가 나간다고 말씀하셨는데 두개가 나가는 것 같아서요! 제가 SQL을 잘 몰라서 부정확할 수도 있는 것 같은데 왜 두 번 나가게 되는지 궁금합니다! 2. 또한 Persist 를 하는 시점에 아직 insert 문이 나가지 않았다면 DB에 따로 등록이 안되어 있는걸로 생각했습니다. 그렇다면 commit 하기 전 시점에 entity 값을 set 함수를 통해 변경하여 1차 캐시가 더티 체크를 통해 변경을 감지하면, 그냥 그 1차 캐시 내부에 있는 데이터만 바꿔주면 되는 것... 아닌가요..?! DB에 insert 문이 아직 나가지 않았는데 굳이 insert 문도 보낸 이후 update 문까지 내보내면서 수정이 진행되는 이유가 궁금합니다!! 강사님 강의 너무 잘 듣고 있습니다. 감사합니다!

  • jpa
  • sql
  • JPA
  • java
  • em.persist
강우석 댓글 1 좋아요 1 조회수 906

Entity를 DTO로 변환시키기

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

김영한님 JPA 강의를 듣다가 1장 마지막 부분 쯤에 Entity를 그대로 사용하지 말고 데이터를 전송할 때에는 DTO를 이용하라고 하셨는데, 테이블 끼리 연관관계가 많은 것들은 어떻게 변환시키나요? 가장 궁금한게 A에 List<B>,List<C>,List<D> 객체를 가지고 있는데 A의 DTO를 만든다고 한다면 B,C,D를 각자 또 BDTO,CDTO,DDTO 로 옮기고 나서 ADTO에 담는건가요?? MapStruct를 사용하려고 하는데, 혹시 Entity를 DTO로 변환하는 좋은 방법이 있는지 궁금합니다!

  • jpa
  • spring
  • spring-boot
  • springdatajpa
  • JPA
  • 김영한
  • java
beetrb 댓글 1 좋아요 0 조회수 716

이 강의에서 말한 더 고치고싶은 부분이 궁금합니다.

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

말씀하신 더 고치고 싶은 부분을 얘기해주면 어떻게 고칠 수 있을지 고민해볼 수 있을 것 같습니다.

  • vuejs
  • JPA
  • spring-boot
  • Spring Security
  • aws
wisehero 댓글 2 좋아요 7 조회수 699

JPA 기반으로 프로젝트 수행시 도메인 entity 관리

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

안녕하세요. 영한님 강의를 잘 듣고 있습니다. 좋은 강의 감사드립니다. 제 질문은 지금 하고 있는 프로젝트가 JPA기반이고, 프로젝트 구조는 아래와 같고, 같은 DB를 바라보고 있습니다 1. 대고객용 백앤드 프로젝트(메인) 2. 위의 프로젝트를 관리하는 admin 프로젝트 3. 통계 관리 프로젝트 위의 프로젝트들은 거의 비슷한 도메인 Entity를 가지고 있습니다. 궁금한건 프로젝트를 진행하면서 DB가 자주 변경됩니다(테이블 추가, 컬럼 추가 삭제 변경등) 그런데 이렇게 되니까 위의 3개 프로젝트에 있는 도메인 entity 를 동시에 다 바꿔주지 않으면 에러가 나는 경우가 있습니다. 지금은 변경이 있는 경우에는 한번에 적용되도록 한사람이 관리 하고 있는데, 이걸 좀 더 효율적으로 할 수 있는 방법이 있는지 궁금합니다. 혹시 여러 프로젝트에서 동일한 Entity를 사용할때 잘 관리할 수 있는 실무팁이 있을까요? 비슷한 케이스로, 공통코드 테이블 대신 자바 enum을 적극 활용하는 중인데 이런 경우에도 추가,수정, 삭제시 관련된 모든 프로젝트에 동기화가 필요합니다. 사람이 잘 관리하는게 맞는건지, 아니면 뭔가 시스템적으로 좀더 잘 관리할 수 있는 좋은 팁이 있을까요? 감사합니다.

  • jpa
  • spring
아로나 댓글 1 좋아요 3 조회수 424

인기 태그

인프런 TOP Writers

주간 인기글