본문 바로가기

Spring boot72

게시글 목록보기 (Post List View) 학습 목표1. JPA에서의 게시글 목록을 조회하는 방법을 학습한다.2. N+1 문제와 해결 방법 학습하기: 지연 로딩으로 인한 N+1 문제를 확인하고 해결 방법을 배운다.3. 배치 사이즈(Batch Size) 설정 이해하기: default_batch_fetch_size를 설정하여 성능을 최적화하는 방법을 학습한다. 4. 게시글 목록보기 컨트롤러 및 뷰 구현하기: 실제로 게시글 목록을 표시하는 컨트롤러와 화면을 작성한다.  1. 게시글 목록보기 쿼리 작성 (Eager Fetching)목표: EAGER 페치 전략을 사용하여 게시글 목록을 조회하고, 연관된 User 엔티티가 어떻게 로딩되는지 확인한다. package com.tenco.blog_v1.board;import jakarta.persistence.E.. 2024. 10. 8.
게시글 상세보기 (Post Details View) 학습 목표Fetch 전략 이해하기: EAGER와 LAZY (Fetch) 전략의 차이점과 동작 방식을 이해한다.Lazy Loading 동작 방식 이해하기: 지연 로딩이 어떻게 작동하고, 언제 데이터를 가져오는지 학습한다. 직접 조인(Fetch Join) 사용하기: 필요한 경우 직접 조인을 사용하여 성능을 최적화하는 방법을 배운다.   1. 게시글 상세보기 구현 (Eager Fetching)목표: EAGER 페치 전략을 사용하여 게시글 상세보기 기능을 구현하고, 연관된 객체가 즉시 로딩되는 것을 확인합니다.package com.tenco.blog_v1.board;import com.tenco.blog_v1.user.User;import jakarta.persistence.*;import lombok.Buil.. 2024. 10. 7.
연관 관계 매핑: User와 Board 엔티티 학습 목표JPA를 사용하여 User와 Board 엔티티 간의 연관 관계를 설정할 수 있다. @ManyToOne과 @OneToMany 어노테이션의 사용법과 의미를 이해한다. 지연 로딩(FetchType.LAZY)의 동작 방식을 이해한다.@JoinColumn 어노테이션의 역할을 설명할 수 있다.  Board 엔티티 수정하기 - user 속성 추가Board 엔티티에 User와의 연관 관계를 설정합시다.수정된 Board 엔티티 코드package com.tenco.blog_v1.board;import com.tenco.blog_v1.user.User;import jakarta.persistence.*;import lombok.Builder;import lombok.Data;import lombok.NoArgsCo.. 2024. 10. 7.
사용자 관리 기본 코드 추가 및 설정 학습 목표프로젝트 진행을 위한 기본 코드를 작성할 수 있다. HttpServletRequest 와 Model 를 구분해서 사용할 수 있다.  package com.tenco.blog_v1.user;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;@Slf4j@Controllerpublic class UserController { /** * 회원가입 페이지 요청 * 주소설계 : http://localhost:8080/join-form * * @param model * @return 문자열 * 반환되는.. 2024. 10. 7.
익명 게시판 만들기 application.ymlspring: profiles: active: - dev #활성화할 프로필 설정 application-dev.ymlserver: servlet: encoding: charset: utf-8 force: true port: 8080spring: mustache: servlet: expose-session-attributes: true # Mustache 템플릿에서 세션 속성에 접근할 수 있도록 허용 expose-request-attributes: true # Mustache 템플릿에서 요청 속성에 접근할 수 있도록 허용 datasource: driver-class-name: org.h2.Driver .. 2024. 10. 7.
JPA 프로젝트 생성 DevTools 동작 설정 하기 의존성 확인plugins { id 'java' id 'org.springframework.boot' version '3.2.10' id 'io.spring.dependency-management' version '1.1.6'}group = 'com.tenco'version = '0.0.1-SNAPSHOT'java { toolchain { languageVersion = JavaLanguageVersion.of(17) }}configurations { compileOnly { extendsFrom annotationProcessor }}repositories { mavenCentral()}dependencies { implementation 'org.springframe.. 2024. 10. 7.