JPA - Querydsl 사용법 및 실습
·
Java & Spring/Spring
1. build.gradle 설정dependencies { implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api"}// Querydsl 설정부def generated = 'src/main/genera..
JPA - JPQL사용해보기
·
Java & Spring/Spring
JPQL(Java Persistence Query Language) 이란?JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다.따라서 테이블을 대상으로 쿼리 하는 것이 아닌 엔티티 객체를 대상으로 쿼리한다. JPQL은 SQL을 추상화했기 때문에 특정 데이터베이스 SQL에 의존하지 않는 장점이 있다. JPQL은 SQL과 문법이 유사하며, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN을 지원한다. - 실습 ◇ Controller @GetMapping("/todos") public ResponseEntity> getTodos( @RequestParam(defaultValue = "1") int page, @R..
[TIL](2024)09.30 ~ 10.04
·
Java & Spring/TIL
09월 30일 (월)- 오늘 한 일2차 기술면접 준비Docker 학습10월 01일 (화)- 오늘 한 일프로그래머스 코딩테스트 1문제 진행 및 회고 GithubActions / CloudType를 통한 CI/CD 실습10월 02일 (수)- 오늘 한 일JPQL 학습 및 실습개인과제 진행10월 04일 (금)- 오늘 한 일QueryDls 학습 및 실습개인과제 진행
52일차 - 알고리즘 코드카타(실패)
·
Java & Spring/코딩테스트
- 회고84. 괄호 회전하기 : https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import java.util.*;class Solution { public int solution(String s) { int answer = 0; List open = Arrays.asList('(', '{', '['); List close = Arrays.asList(')', '}', ']'); // s의 길..
JPA - 쿼리 파일 만들기
·
Java & Spring/Spring
□ 쿼리 파일 만들기(QuaryMapper)- MyBatisRowMapper가 가지고있는 단점인 "반복되는 코드"를 줄이고 "함께있는 프로그램 코드와 쿼리 코드를 분리하여 관리"하고 싶은 니즈를 반영하여 탄생반복적인 JDBC 프로그래밍을 단순화SQL 쿼리들을 XML파일에 작성하여 코드와 SQL을 분리JDBC로 처리하는 코드의 설정(Connetcion)부분을 줄이고 실제 SQL문에 연결함으로서 빠른 개발이 가능하게 한다(SQL Mapper 특징)MyBatis 코드는 map 인터페이스와 SQL 쿼리와 ResultSet 매핑을 위한 xml 및 annotation을 사용한다.객체 자체보다 쿼리에 집중할 수 있다.SqlSesstion Factory Builder (1), (2), (3)MyBatis 설정 파일을 ..
JPA - 데이터베이스와 SQL
·
Java & Spring/Spring
□ 데이터베이스(H2)- DB(H2) 사용 방식 3가지Server Mode직접 엔진을 설치하여 사용하는 방식.애플리케이션과 상관 없는 외부에서 DB 엔진이 구동된다.데이터가 애플리케이션 외부에 저장되므로 애플리케이션을 종료해도 데이터가 사라지지 않는다.In-memory Mode엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식.build.gradle 및 application.properties 설정을 통해 실행 가능하다.애플리케이션을 실행하면 DB 엔진이 함께 실행되고 애플리케이션을 종료하면 DB 엔진이 함께 종료된다.데이터가 애플리케이션의 메모리에 저장되기 때문에 애플리케이션을 종료하면 데이터가 사라진다.Embedded Mode엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식.b..
[TIL](2024)09.23 ~ 09.27
·
Java & Spring/TIL
09월 23일 (월)- 오늘 한 일메뉴 코드 수정테스트코드 작성 및 테스트코드 학습09월 24일 (화)- 오늘 한 일프로젝트 마무리시연영상 제작09월 25일 (수)- 오늘 한 일프로젝트 발표- 회고이번 프로젝트를 진행하며서 JWT의 흐름과 Cookie에 담아 사용하는 것을 팀원이 구현하고 공유해줘서 조금 더 알게되었다.팀에서 Redis를 사용하여 장바구니 구현(TTL)을 시도해보았으나 아쉽게 성공하지못했다.SQLDelete를 사용하여 논리적 삭제를 진행하는 방법을 이번 프로젝트에서 구현해보았다.Test코드 작성 시 Mock생성등 테스트 진행하는 방법이 조금 익숙해졌다, 반복숙달해야겠다.09월 26일 (목)- 오늘 한 일JPA 데이터베이스 와 SQL 학습09월 27일 (금)- 오늘 한 일JPA 쿼리 파일 ..
테스트코드 작성에 사용되는 메서드 및 애노테이션(1)
·
Java & Spring/Spring
1.  @Mock역할: 실제 객체의 **모의 객체(Mock Object)**를 생성합니다. 모의 객체는 실제 동작을 하지 않고, 정의한 대로 동작하도록 설정할 수 있습니다.사용 목적: 외부 의존성을 실제로 동작하지 않게 하고, 테스트하고자 하는 클래스의 동작만 확인할 수 있도록 하기 위해 사용합니다.예를 들어, 데이터베이스 호출이나 외부 서비스 호출을 모킹하여 테스트의 속도를 높이고, 외부 의존성 없이 순수하게 비즈니스 로직만을 테스트할 수 있습니다. 2.  @InjectMocks역할: @Mock으로 생성된 모의 객체를 해당 클래스의 의존성으로 주입합니다. 즉, 테스트할 클래스의 인스턴스를 생성하고, 이 클래스가 의존하는 다른 객체를 모킹된 객체로 자동으로 주입해줍니다.사용 목적: 테스트하려는 클래스의 ..
[TIL](2024)09.19 ~ 09.20
·
Java & Spring/TIL
09월 19일 (목)- 오늘 한 일팀 프로젝트 발제 및 팀 회의, 배달 어플 만들기배달 어플 내 메뉴 생성 구현 담당09월 20일 (금)- 오늘 한 일메뉴 구현 CRUD 구현- 회고메뉴가 가게부분과 연관관계가 걸려있어 상상?하면서 구현해야해서 조금 어려웠다.
43일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 회고83. 귤 고르기 : https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import java.util.*;class Solution { public int solution(int k, int[] tangerine) { Map map = new HashMap(); for (int i : tangerine) { if(!map.containsKey(i)){ map.put..