[데이터베이스] - QueryDSL 사용 이유와 방법 ① QueryDSL 사용 이유와 방법 ① 실무에서 개발자를 하기위해 공부를 하던 시절에는 데이터베이스 라는 것에 대해 깊이 생각하지 않았다. 컴퓨터 프로그래밍 기술이 계속적으로 발전 하고 개발자가 좀 더 편하게 개발할 수 있 eno1993.tistory.com 일반적으로 QueryDSL을 왜 사용하는지 그리고 가장 간단한 조회에 대해서 살펴봤다. 그럼 좀 더 복잡한 조회 와 업데이트 그리고 삭제 방법에 대해서 살펴보도록 하자. 테이블 정의 @Entity @Table(name = "member") public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(na..
실무에서 개발자를 하기위해 공부를 하던 시절에는 데이터베이스 라는 것에 대해 깊이 생각하지 않았다. 컴퓨터 프로그래밍 기술이 계속적으로 발전 하고 개발자가 좀 더 편하게 개발할 수 있도록 도와주는 프레임워크나 라이브러리를 통해서 많은 부분들에 대해서도 생각할 필요가 없어졌고 마찬가지로 JAVA Spring 을 사용하면서 비지니스 로직에만 몰두하는 개발자가 되어 JPA를 어떻게 잘 사용하면 될 까, 혹은 어떤 라이브러리를 써야지 SQL에 의존적이지 않은 개발을 할 수 있을까만 생각을 했던것 같다. 뭔가 점점 바보가 되어가는 느낌이다. 운 좋게 면접관으로 여러번 참여할 수 있는 기회를 얻게 되서 다양한 면접자들의 DB 접근 기술을 확인 할 수 있는데 많은 분들이 QueryDSL을 사용해서 쿼리문을 작성하는 ..
Open Session In View: 하이버네이트Open EntityManager In View: JPA→ 관례상 둘다 OSIV 라고 한다. spring.jpa.open-in-view: true (기본 default 값) OSIV 전략은 트랜잭션 시작처럼 최초 데이터베이스 커넥션 시작 시점부터 API응답이 끝날 때 까지 영속성 컨텍스트와 데이터베이스 커넥션을 유지한다. 그래서 View Template 혹은 API컨트롤러에서 지연 로딩이 가능하다. 지연 로딩은 영속성 컨텍스트가 살아있어야 가능하고, 영속성 컨텍스트는 기본적으로 데이터베이스 커넥션을 유지한다. 주의할점은 OSIV 전략이 너무 오랜시간동안 데이터베이스 커넥션 리소스를 사용하기 때문에, 실시간 트래픽이 중요한 애플리케이션에서는 커텍션이 모..
프로그램 실행 모습 메인 홈페이지는 회원 기능과 상품 기능 그리고 주문 기능으로 구별지어 총 6가지의 기능을 제공한다. 회원가입 기능을 통해 위와 같은 정보를 입력한 후 submint을 통해 데이터를 넘겨주면 아래과 같은 회원의 상태를 볼 수 있다. 주의 할 점은 이름을 입력하지 않은 회원은 가입이 불가능하도록 설정했기 때문에 회원의 이름은 필수 입력사항이다. 다음은 상품 등록 기능이다. 백과사전이라는 상품을 6개 등록하고 수정 기능을 통해 상품의 수량을 3개로 수정했다. 상품을 주문을 하고 나면 아래와 같은 주문 내역을 확인할 수 있다. 주문의 상태는 ORDER 상태이고 주문 취소를 의미하는 cancel 버튼을 클릭하면 아래와 같이 주문의 상태가 CANCEL로 바뀌는 것을 알 수 있다. 깃허브 주소 :..