JPA와 DB의 맵핑을 알아보기 전에 우선 application의 설정에 대해서 알아볼 필요가 있다. spring: jpa: hibernate: ddl-auto: none 다음 설정에 대해서 운영환경에서 많은 영향을 미치기 때문이다. DDL이란 데이터베이스 스키마를 자동 생성하는 설정이다. 따라서 DB는 운영환경에서 매우 중요하기 때문에 해당 설정도 매우 중요하다고 할 수 있다. 운영장비에서는 절대 create, create-drop, update를 사용하면 안된다. 왜냐하면 해당 DB의 정보들이 모두 날아갈 위험이 있기 때문이다. 개발초기에는 create, update 테스트 서버에는 update, validate 스테이징 운영단계에 있는 서버는 validate, none을 사용하는 것이 좋다. 필자는..
JPA는 기본적으로 영속성 컨텍스트에 의해서 관리된다. 영속성 컨텍스트에 대해 자세하게 설명하기 전에 내가 느낀 영속성 컨텍스트는 DB로 저장하기 전, 중간 다리 같은 느낌을 많이 받았다. 영속성 컨텍스를 접근하기 위해서는 EntityManager를 통해서 접근하게 된다. EntityManager는 DB에 요청이 있을때마다 EntityManagerFactory에서 생생해주게 된다. EntityManagerFactory는 이름에서 느껴지듯 EntityManager를 만들어주는 용도의 객체이다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager()..

이제 1:N 관계의 컬랙션을 조회할 때의 방법을 알아보자. 가장 쉽지만 가장 좋지 않은 방법인 entity에 직접 조회하는 방법이 있다. @GetMapping("/api/v1/orders") public List ordersV1(){ List all = orderRepository.findAllByCriteria(new OrderSearch()); for(Order order: all){ order.getMember().getName(); order.getDelivery().getAddress(); List orderItems = order.getOrderItems(); for(OrderItem orderItem : orderItems){ orderItem.getItem().getName(); } } r..
해당 설명의 소스코드는 링크를 걸어두었습니다. JPA에서는 sql qeury를 한번 감싸놓은 것이기 때문에, 아무렇게나 쓰면 성능에 매우 안좋은 영향을 미칠 수 있다. 특히, select * from [DB name]과 같은 쿼리를 날리게 되면 join 관계가 많은 테이블은 성능이 매우 안좋아 질 수 있다. 그럼 가장 간단하지만 성능이 안좋은 방법으로 먼저 진행을 하면 @GetMapping("/api/v1/simple-orders") public List orderV1(){ List all = orderRepository.findAllByCriteria(new OrderSearch()); for (Order order: all){ order.getMember().getName(); // Lazy 강제 초..

해당 글의 소스코드는 링크 걸어 두었습니다. GitHub - dolgogae/TIL: Today I Learned Today I Learned. Contribute to dolgogae/TIL development by creating an account on GitHub. github.com 이전 글에서 넘어와 Post를 알아보도록 하자. Post로는 조금 더 복잡한 예제를 찾아봤다. 그래도 복잡하다 해봤자 request나 response 타입이 좀 더 복잡할 뿐이다. 앞선 예제보다 조금더 복잡해보이지만 변수 묶음인 keywordGroups는 객체로 만들어주면 되고 나머지는 예제에 나와있는 자료형으로 해주면 된다. DatalabTotalSearchRequest.java @Data @NoArgsConst..

해당 글의 소스코드는 링크 걸어 두었습니다. GitHub - dolgogae/TIL: Today I Learned Today I Learned. Contribute to dolgogae/TIL development by creating an account on GitHub. github.com 앞선 Get, Post를 통해서 Naver API를 호출해보는 실습을 하자. 네이버의 API는 https://developers.naver.com/여기서 확인 할 수 있다. 그 중에서 지역 검색과 이미지 검색을 호출하는 것을 개발해보도록 하자. Document > 검색 > 지역을 들어가면 다음처럼 API spec을 볼 수 있다. 네이버의 경우에는 굉장히 깔끔하고 이쁘게 정리를 해두어 개발하기가 매우 편하다. 가장 ..
- Total
- Today
- Yesterday
- API
- OS
- KAFKA
- apache kafka
- apache
- Java
- 프론트엔드
- centos
- zookeeper
- caching
- feign client
- backend
- NextJS
- Producer
- broker
- Linux
- Container
- 리액트
- cs
- JPA
- frontend
- spring boot
- consumer
- rhel
- Data Engineering
- K8S
- Firebase
- Front
- spring
- React
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |