소통하는 개발자 Sean
article thumbnail
queryDSL이란? 간단한 설명과 사용이유
Web Programming/JPA 2023. 11. 3. 13:52

👉 글을 쓰게 된 이유 저는 JPA가 복잡한 쿼리를 효율적이고 편리한 개발을 지원하지만 특히 복잡한 쿼리를 작성할 때 일부 단점이 있다고 생각했습니다. JPA는 기본적으로 단순한 CRUD 쿼리와 간단한 조인에 대한 지원을 제공하지만, 복잡한 조인, 하위 쿼리, 복잡한 집계 함수 등과 같이 복잡한 쿼리에 대한 처리는 다소 제한적이기 때문입니다. 특히 JPQL로 쿼리를 작성할 때는 개발자가 직접 SQL 쿼리를 작성하고 런타임에 오류를 볼 수 있었으니 이는, SQL 매핑 프레임워크인 mybatis와 다를게 없다고 생각했었습니다. 허나, 며칠전 기술면접을 보다가 JPA의 JPQL에 이런 관점을 가지고 있다고 대화를 나누던 도중, 면접관님께서 "queryDSL"이 해당 문제를 해결해 줄 수 있을것 같다고 조언을 ..

article thumbnail
nativeQuery을 제거해보자, 이유 + 성능체크
Web Programming/JPA 2023. 11. 2. 17:20

글을 쓰게 된 이유 코드가 지저분해 보여서, chatGPT에게 정리를 부탁했더니 nativeQuery 사용을 지양하라는 팁을 받았습니다. 딱히 생각하지 못한 부분이였는데, 왜 nativeQuery를 지양해야하는지 다시 물어봤습니다. 몇개의 질문과 답변이 오고갔는데, 정리하면 이렇습니다. nativeQuery를 사용하면 데이터베이스에 대한 종속성이 높아지므로, 데이터베이스를 변경하거나 다른 환경으로 전환해야 할 때 작업이 복잡해질 수 있습니다. JPQL이나 QueryDSL과 같은 ORM을 위한 쿼리 언어를 사용하여 코드의 유연성과 이식성을 높이는 것이 좋습니다. 여기서 말하는 코드의 이식성은, 다른 환경이나 플랫폼으로 쉽게 이동할 수 있는 능력을 말합니다. (특정 DB에서만 작동하는게 않도록) 변경할 코드..

article thumbnail
셀렉트&드래그앤드롭 다중 파일 서버로 전송하기 (문제해결)
Web Programming/Spring Boot 2023. 10. 4. 01:08

파일 선택창을 통해 파일을 업로드 할 수도 있고, 파일의 드래그 앤 드롭을 통해 파일을 업로드 할 수 있다. 선택창과 드래그 앤 드롭을 혼합하여 여러개의 파일을 보낼 수도 있어야 한다. 프로젝트를 하면서 겪은 문제는 "드래그 앤 드롭"을 사용했을 때 file이 서버로 전달되지 못했던 것이다. 문제가 되었던 코드를 순차적으로 살펴보자. input type='file'에 드래그앤 드롭 파일 추가해서 서버로 넘기기 (실패) 파일 선택창을 통해 파일을 선택하면 input type='file'을 통해 파일이 들어가기 때문에 name="files"이 위에 보이는 post-register의 files 파라미터로 매핑이 된다. 드래그앤 드롭으로 파일을 등록하면 input type='file'에 value로 등록되지 않..

article thumbnail
[Spring boot] AWS S3 를 이용한 파일 업로드 - 2 (S3-부트 연결)
Cloud/AWS 2023. 10. 2. 17:44

2023.09.26 - [분류 전체보기] - [Spring boot] AWS S3 를 이용한 파일 업로드 - 1 (S3 생성 + 설정) [Spring boot] AWS S3 를 이용한 파일 업로드 - 1 (S3 생성 + 설정) 프로젝트에서 파일을 로컬로 저장해서 사용하고 있었는데 치명적인 문제점이 있었다. 만약 사진을 업로드 하게 되면 파일이 제대로 뜨지 않았다. 사진은 정적파일이기 때문이라는 문제도 있었 sean-lets-go.tistory.com 저번 글에서는 S3를 사용하게된 이유와 S3 생성 +설정을 해보았습니다. 요번 글에서는 S3와 스프링 부트(프로젝트)와 연결해보려고 합니다. 스프링 연동하기 1) build.gradle에 의존성 추가 //S3 연동 implementation 'org.spri..

article thumbnail
[Spring boot] AWS S3 를 이용한 파일 업로드 - 1 (S3 생성 + 설정)
Cloud/AWS 2023. 9. 26. 19:59

프로젝트에서 파일을 로컬로 저장해서 사용하고 있었는데 치명적인 문제점이 있었다. 만약 사진을 업로드 하게 되면 파일이 제대로 뜨지 않았다. 사진은 정적파일이기 때문이라는 문제도 있었고, 보안상의 문제가 있어서 S3를 사용하기로 결정했다. AWS S3 버킷을 만들고 Spring Boot 을 연동하는 방법을 정리해보려고 한다. [1] AWS S3 개요 - AWS S3 란? S3는 Simple Storage Service 의 약자로 주로 파일 서버로 사용된다. - 왜 S3를 사용할까? 확장성(Scalability) 파일 서버는 트래픽이 증가함에 따라 서버 인프라 및 용량 계획을 변경해야 되는데, S3가 확장 및 성능 부분을 대신 처리해준다. 내구성(Durability) 여러 영역에 여러 데이터 복사본을 저장하..

article thumbnail
AWS 인프라 이사 총 정리 (프리티어 이동)
Cloud/AWS 2023. 9. 26. 16:02

- AWS 인프라 이사를 하게된 이유 2023.09.25 - [프로젝트 일지] - aws 프리티어 종료 후 가격변화 aws 프리티어 종료 후 가격변화 프로젝트를 진행하던 도중, AWS 관련 메일이 도착했다. "Amazon Web Services 프리 티어가 곧 만료됨" 메일 내용은 아래 사진과 같다. ASW 프리티어 기간이 종료되고, AWS Billing에 접속해서 '이번 달의 총 sean-lets-go.tistory.com - Gmail을 활용한 AWS 프리티어 계정 추가로 만들기 2023.09.25 - [분류 전체보기] - AWS 프리티어 Gmail 활용해서 계속 사용하기 AWS 프리티어 Gmail 활용해서 계속 사용하기 Gmail에는 아이디 뒤에 +{문자}을 붙여서 사용할 수 있는 기능이 있다. (..