본문 바로가기
반응형
[Kotlin + Spring] 내가 QueryDSL을 도입하게 된 이유 개인으로 새로 개발하고 있는 프로젝트가 있습니다. 원래는 이전 프로젝트들처럼 FireBase or SupaBase 로 간단하게 MVP 개발 후에 백엔드를 추후 구축하려 했으나 오래 걸릴 것 같지 않고 백엔드가 필요해져셔 Kotlin + Spring 으로 백엔드를 구축하고 있습니다. 단순 JPA로만 구현을 하다가, 확장성을 높여보기 위해서 QueryDSL 도입을 추진하게 되었습니다. N+1 문제 JPA를 사용해보신 분들이라면 모두 한 번쯤은 겪으셨을만한 문제입니다. 다른 라이브러리는 문제 없지만, JPA 는 이렇습니다. N + 1 문제 또는 1 + N 문제는 (같은 말입니다) OneToMany 관계에서 LAZY 조회를 하던 EAGER 조회를 하던, 프록시 객체를 이용하는 JPA 특성 상 발생하는 문제입니다.. 2024. 4. 8.
[Git] 잘못되게 커밋을 쌓았다면? Cherry-pick ! 이전 글에서 잠깐 소개했지만, 체리픽을 쉽게 설명하고자 다시 글을 작성합니다. 체리 픽은, 원하지 않는 브랜치에 커밋을 쌓았을 때 원하는 브랜치의 커밋으로 복사해주는 방법입니다. 즉 원래는 develop 브랜치에서 feature/ui 를 따서 거기에 커밋을 쌓아야 하는데, 실수로 develop 브랜치에 커밋한 경우가 있죠? 그럴 때 사용할 수 있습니다. 1. 원래 브랜치를 생성해야 하는 develop 브랜치 시점으로 checkout 2. feature/ui 브랜치 생성 3. feature/ui 브랜치로 checkout 후 git cherry-pick "가져올 커밋 값" 4. develop 브랜치로 checkout 후 잘못 쌓은 커밋 삭제 git cherry-pick 은 커밋을 이동하는게 아니라 복사하는 .. 2024. 3. 27.
[Kotlin + Spring] 2. Spring data JPA 활용하기 (feat. cherry pick) 이전 글 : [Kotlin + Spring] 1. 새 프로젝트 시작 (NginX 연동까지) 이번에는 이전 글에 이어서 Spring data JPA 를 활용해보겠습니다. MySQL을 사용할 것이므로, 아직 설치하지 않으신 분은 이 글을 통해 설치하고 와주세요 먼저 Spring Data JPA와 Mysql Connector 두 개의 dependency가 필요합니다. implementation("org.springframework.boot:spring-boot-starter-data-jpa") runtimeOnly("com.mysql:mysql-connector-j") Spring data JPA JPA는 ORM 프레임워크입니다. ORM은 객체와 데이터베이스 테이블을 1:1로 매핑해주는 프레임워크로, 객체지향.. 2024. 3. 27.
[Kotlin + Spring] 1. 새 프로젝트 시작 (NginX 연동까지) 코프링으로 프로젝트를 만들어본지 꽤나 오래, 1년이나 되었습니다. 이번에 우아한테크코스에서 안드로이드 코틀린 과정을 진행하면서, 코틀린에 대해서도 알아가고 있습니다. 그리고 개인적으로 준비하고 있는 서비스의 백엔드를 코프링으로 계획중이었기에, 코프링의 기본을 복습하며 쓰는 강의글입니다. (제가 나중에 까먹으면 보려고) IntelliJ Ultimate 버전이 아니면 자체적으로 Spring 프로젝트를 만들기 까다로우므로 Spring initializr 사이트를 이용하겠습니다. https://start.spring.io/ 에서 다음과 같이 만들어줍니다. 자바 버전은 17로 했고, Gradle Maven 중에 Gradle 을 선택, Groovy 대신 Kotlin을 통해 Kotlin DSL에 대한 마이그레이션 공.. 2024. 3. 27.
반응형