분류 전체보기 364

[📕 JPA 심화] 5. SpringData JPA 심화

📕 목차좀 더 멋지게 쿼리 생성하기 (QueryDSL)테이블 객체 방명록 설정하기 (Auditing)필요한 부분만 갱신하기 (Dynamic Insert/Update)❤️ 학습 목표QueryDSL을 사용하여 타입 안전 쿼리를 작성하는 방법을 배웁니다. 복잡한 조건과 정교한 쿼리를 쉽게 구성할 수 있는 기법을 소개합니다.Auditing을 사용하여 엔티티의 생성 및 수정 시간을 자동으로 관리하는 방법을 배웁니다. Spring Data JPA에서 제공하는 Auditing 기능을 통해 데이터의 일관성과 추적성을 확보합니다.Projection을 사용하여 필요한 데이터만 선택적으로 조회하는 방법을 배웁니다. 과도한 데이터 로드를 방지하고 성능을 최적화하는 기법을 학습합니다.1. 좀 더 멋지게 쿼리 생성하기 (Que..

Spring/강의 2025.06.26

[📕 JPA 심화] 4. SpringData JPA 기본

📕 목차테이블 객체 다루는 법테이블 객체로 자동 쿼리 생성하기테이블 객체로 페이지 조회하기테이블 객체로 수동 쿼리 생성하기❤️ 학습 목표Spring Data JPA를 사용하여 엔티티 객체를 효율적으로 관리하는 방법을 배웁니다. 리포지터리 인터페이스의 역할과 기본적인 메소드 사용법을 설명합니다.JpaRepository 인터페이스를 활용하여 CRUD 작업을 자동으로 처리하는 방법을 배웁니다. 메소드 이름만으로 쿼리를 생성하는 방법과 그 장점을 학습합니다.페이지네이션을 사용하여 대량의 데이터를 효율적으로 조회하는 방법을 배웁니다. Spring Data JPA에서 제공하는 Pageable 인터페이스를 사용하는 실습을 통해 데이터 처리 성능을 최적화하는 방법을 학습합니다.JPQL을 사용하여 복잡한 쿼리를 수동으..

Spring/강의 2025.06.26

[📕 JPA 심화] 3. RawJPA 기본

📕 목차쿼리 파일 만들기 (QueryMapper)쿼리 코드 만들기 (JpaRepository)테이블 객체 이해하기테이블 객체 만들기 & 테이블 객체끼지 관계 만들기❤️ 학습 목표Query Mapper를 사용하여 SQL 쿼리를 관리하는 방법을 배웁니다. 별도의 쿼리 파일을 통해 SQL을 관리함으로써 코드의 가독성과 유지보수성을 높입니다.Annotation을 사용하여 SQL 쿼리를 클래스나 메소드에 직접 정의하는 방법을 배웁니다. 이를 통해 동적 쿼리 생성과 실행 과정을 이해하고 실습합니다.RawJPA를 사용하여 테이블과 연동되는 객체(엔티티)의 구조와 작동 원리를 배웁니다. JPA의 기본적인 구성 요소와 엔티티의 생명주기를 이해합니다.실제 데이터베이스 테이블과 매핑되는 Java 객체를 생성하는 방법을 배..

Spring/강의 2025.06.26

[📕 JPA 심화] 2. 데이터베이스 다루기

📕 목차데이터베이스 생성 (H2)데이터베이스에서 테이터 다루기 (SQL)데이터베이스 연결 (Driver)데이터베이스 데이터를 외부에서 다루기 (JDBC)❤️ 학습 목표이 섹션에서는 내장형 H2 데이터베이스를 설치하고 설정하는 방법을 배웁니다. H2 데이터베이스의 주요 특징과 장점을 소개하며, 간단한 데이터베이스 생성 방법을 설명합니다.SQL 기본 구문을 사용하여 데이터를 생성, 조회, 수정, 삭제하는 방법을 배웁니다. 이를 통해 데이터베이스 관리의 기본이 되는 SQL 문법에 대한 이해를 높입니다.데이터베이스 드라이버의 역할과 중요성을 이해하고, 적절한 드라이버 선택 및 설정 방법을 배웁니다. JDBC 드라이버를 사용하여 애플리케이션과 데이터베이스 간의 연결을 구성하는 과정을 다룹니다.JDBC를 통해 J..

Spring/강의 2025.06.26

[📕 JPA 심화] 1. 프로젝트 세팅

📕 목차JDBC 프로젝트 세팅JDBC Template 프로젝트 세팅QueryMapper 프로젝트 세팅QueryFileMapper 프로젝트 세팅JPA 프로젝트 세팅1. JDBC 프로젝트 세팅https://github.com/thesun4sky/jdbc/tree/jdbc GitHub - thesun4sky/jdbcContribute to thesun4sky/jdbc development by creating an account on GitHub.github.com2. JDBC Template 프로젝트 세팅https://github.com/thesun4sky/jdbc/tree/jdbc-template GitHub - thesun4sky/jdbcContribute to thesun4sky/jdbc develo..

Spring/강의 2025.06.26

템플릿 메서드 패턴(Template Method Pattern)

템플릿 메서드 패턴(Template Method Pattern) 이란?상위 클래스에서 알고리즘의 전체 구조(뼈대)를 정의하고, 그 알고리즘의 일부 단계는 하위 클래스에서 구체적으로 구현하도록 하는 디자인 패턴변하지 않는 기능(템플릿)은 상위 클래스에 만들어두고 자주 변경되며 확장할 기능은 하위 클래스에서 구현하여 유연성을 확보한다.템플릿 메서드 패턴의 필요성 중복된 로직 문제 예시 class FileUploadTask { public void execute() { System.out.println("[공통] 작업 시작 로그 찍기"); System.out.println("파일 업로드 작업 수행"); System.out.println("[공통] 작업 종료 로그 찍..

전략 패턴(Strategy Pattern)

전략 패턴(Strategy Pattern)이란?행동(알고리즘, 로직)을 캡슐화하여 런타임에 자유롭게 교체할 수 있게 하는 디자인 패턴여러 가지 방식 중 하나를 선택해 실행할 수 있도록 전략(전략 객체)을 분리하고, 이를 사용하는 컨텍스트가 전략을 교체하며 유연하게 동작하게 만든다.전략 패턴의 필요성 단순 인터페이스 사용 시 발생되는 문제점interface Moveable { void move();}class WalkCharacter implements Moveable { public void move() { System.out.println("걷는다"); }}class SwimCharacter implements Moveable { public void move() { System.out..

Spring 로그 레벨(Log Level)

로그 레벨(Log Level)이란?로그 레벨은 로그 메시지의 중요도 또는 심각도를 나타내는 분류 기준로그 레벨을 설정하면 원하는 수준의 로그만 출력하거나 저장할 수 있다.로그 레벨 종류 레벨 설명 사용 예시 TRACE- 가장 낮은 수준의 로그로, 모든 내부 동작 정보를 출력 - 성능 저하가 발생할 수 있어 운영 환경에서는 비추천메소드 진입/종료, 루프 내부 처리 등DEBUG- 개발 중에 사용하는 대표적인 로그 레벨 - 흐름 확인, 조건 분기, 주요 변수 값 등을 기록할 때 사용설정 값 확인, 흐름 제어 상태, 내부 변수 값 등INFO- 서비스 상태 변화나 사용자가 이해해도 되는 수준의 메시지 - 운영 환경에서 기본적으로 켜져 있는 경우가 많음서버 시작, 요청 수신, 완료 메시지 등WARN- 심각하지는..

Spring/응용 2025.06.18

[CH 4 코드 개선 및 테스트 코드 작성] 정리 & 회고

단계별 요구사항 필수 기능Lv 1. 코드 개선Lv 2. N+1 문제Lv 3. 테스트코드 연습 도전 기능Lv 4. API 로깅Lv 5. 위 제시된 기능 이외 ‘내’가 정의한 문제와 해결 과정Lv 6. 테스트 커버리지학습 키워드Fetch JoinInterceptorAOPAPI 로깅테스트 코드테스트 커버리지새롭게 알게된 지식@EntityGraph - fetch join을 어노테이션으로 처리하기AOP (Aspect-Oriented Programming)Interceptor vs AOP(Aspect Oriented Programming)테스트 코드 개념테스트 코드 개념 2 + Mock 을 이용한 테스트 코드 작성 예제테스트 커버리지 - JaCoCo 설정IntelliJ 에서 테스트 커버리지 확인하기설계 & 리팩토링..

IntelliJ 에서 테스트 커버리지 확인하기

테스트 커버리지란? 작성한 테스트 코드가 애플리케이션의 몇 % 코드를 실행했는지를 나타내는 지표 라인 커버리지(Line Coverage): 몇 %의 코드 라인이 실행되었는지브랜치 커버리지(Branch Coverage): 조건문 등 분기문의 실행 비율메서드 커버리지(Method Coverage): 메서드 단위로 호출된 비율IntelliJ에서 테스트 커버리지 실행하기프로젝트 우클릭 → 그 외 실행/디버그 → 커버리지로 ""에 있는 테스트 실행 실행하면우측에 커버리지 탭이 생긴다 ! 요소별 커버리지 퍼센트 확인 가능 디렉토리 목록에서도 확인 가능 코드에서도 테스트 커버 여부 확인 가능초록색은 테스트가 실행된 코드 줄빨간색은 테스트되지 않은 코드 줄 추가 참고 자료: JaCoCo 로 테스트 커버리지 확..

Spring/Tool 2025.06.12