일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리액트
- 프로그래머스
- 코딩
- 프로그래밍
- 소셜로그인구현
- Java
- 자바
- Codeup
- React
- SpringBoot
- 개발자일기
- 자바알고리즘
- 미라클모닝
- 백엔드
- 자바스크립트
- 코드업
- 자바의정석
- 스프링부트
- 운영체제
- db
- 백엔드개발자
- 국비지원코딩
- 프로세스
- 혼공컴운
- 알고리즘
- 프로그래머
- 자바개발자
- 개발자
- 국비지원
- 데이터베이스
- Today
- Total
초코딩(chocoding)
[Project - 게시판 / spring boot] 게시판 db 설계 / JPQL과 Querydsl 차이점, 장단점 / 스프링부트 게시판 구현 본문
[Project - 게시판 / spring boot] 게시판 db 설계 / JPQL과 Querydsl 차이점, 장단점 / 스프링부트 게시판 구현
sweetychocoding 2024. 2. 15. 10:44
이제 마지막으로 개인 프로젝트로 게시판을 만들려고 한다.
게시판은 쇼핑몰 웹 사이트를 구현했을 때 이미 한 번 해본 적이 있다.
하지만 그 형식은 100% 게시판 형식은 아니고..
오직 판매자와 소비자가 1:1 문의를 할 수 있는?? 그런 형태였다.
이번에 구현하고자 하는 게시판은 조금 다르다.
내가 구현하고 싶은 것은 크게 세가지 이다.
1. 무한 댓글 가능
2. 좋아요
3. 조회수
테이블 설계는 다음과 같다.
- Board
- Comments
- User
그리고 나는 원래 JPQL을 사용하여 팀 프로젝트를 진행했었는데
이번에는 Querydsl을 사용해보고 싶어서
하는 방법을 구글링 해봤다.
먼저 JPQL과 Querydsl의 장단점은 다음과 같다.
- JPQL
: JPQL(Java Persistence Query Language)은 자바 표준 ORM(Object-Relational Mapping) 기술인 JPA(Java Persistence API)에서 사용되는 쿼리 언어
: 엔티티 객체를 대상으로 쿼리를 작성하며, 데이터베이스 종류에 상관없이 동일한 쿼리를 사용할 수 있음
-> 장점
: 객체지향적인 접근 방식으로 쿼리를 작성할 수 있어서 객체 간의 관계를 이해하기 쉽고, 유지보수가 용이
-> 단점
: 문자열 기반으로 쿼리를 작성하므로 컴파일 타임에 문법 오류를 확인할 수 없음
: 복잡한 쿼리를 작성할 때 가독성이 떨어질 수 있음
=> 객체지향적인 쿼리 작성이 가능하고 간단한 쿼리에 적합하지만, 가독성이 떨어지고 컴파일 타임 오류를 확인할 수 없다는 단점
- Querydsl
: QueryDSL은 JPQL의 대안으로 개발된 자바 기반의 쿼리 언어
-> 장점
: 자바 코드로 쿼리를 작성하기 때문에 컴파일 타임에 문법 오류를 확인 가능
: IDE의 지원을 받아 코드 자동완성과 리팩토링 등의 기능을 활용할 수 있음
: 타입 안정성을 제공하므로 오타나 잘못된 속성명으로 인한 버그를 줄일 수 있음
-> 단점
: QueryDSL을 사용하려면 해당 도메인에 대한 메타모델을 생성해야 하고, JPQL에 비해 학습 곡선이 높을 수 있
=> QueryDSL은 타입 안정성과 IDE의 지원을 통한 편리한 개발 환경을 제공하지만, 학습 곡선이 높고 초기 설정이 필요
위에서 말했던과 같이 Querydsl을 사용하기 위해서는 초기 설정이 필요하다.
나는 아래 블로그를 참고하였다.
https://smpark1020.tistory.com/185
SpringBoot, SpringDataJpa, Maven 환경에 QueryDsl 적용하기
1. Maven 설정 의존성 추가 com.querydsl querydsl-apt com.querydsl querydsl-jpa 플러그인 추가 com.mysema.maven apt-maven-plugin 1.1.3 process src/main/generated com.querydsl.apt.jpa.JPAAnnotationProcessor 2. Java Config 설정 JPAQueryFactory를
smpark1020.tistory.com
어제 entity 만들고 controller, service, repository 등등 ... 다 만들고
처음으로 querydsl을 써봤다.
일단 느낀점은
1. 가독성이 훨씬 좋음.
2. 컴파일 오류를 알 수 있어서 좋음
3. 확실히 복잡한 쿼리문 작성할 때 좋을 것 같다는 생각이 듦
이정도?????
이제 하나하나 기능을 구현해나가야겠다.!!!!
이번주~ 다음주 초까지 구현 완료를 목표로 잡고....
파이팅!!!!