2024/10 40

STEP 02 - 게시글 수정 하기

💡JPA를 활용하여 게시글 수정 기능을 구현하는 방법을 학습합니다 boardController - 게시글 수정 하기 화면 요청 // 게시글 수정 화면 요청 // board/id/update @GetMapping("/board/{id}/update-form") public String updateForm(@PathVariable(name = "id") Integer id, HttpServletRequest request) { // 1. 게시글 조회 Board board = boardNativeRepository.findById(id); // 2. 요청 속성에 조회한 게시글 속성 및 값 추가 request.setAttribute("b..

카테고리 없음 2024.10.11

STEP 02 - 게시글 삭제

💡게시글 삭제 기능을 구현할 수 있다. BoardRepository 에서 게시글 삭제 쿼리를 만들어 보자. JPA API , JPQL 객체 지향 쿼리 작성 (삭제 권한)package com.tenco.blog_v1.board;import jakarta.persistence.EntityManager;import jakarta.persistence.Query;import jakarta.persistence.TypedQuery;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import j..

카테고리 없음 2024.10.08

STEP 02 - 게시글 쓰기

💡JPA를 활용하여 게시글 작성 기능을 구현하는 방법을 학습합니다. 이 과정에서는데이터 저장, DTO 사용, 컨트롤러 구현 등을 다루며, ORM의 영속성 관리에 대한 이해를 심화합니다. BoardRepository save 메서드 구현하기목표: Board 엔티티를 데이터베이스에 저장하는 save 메서드를 구현합니다. BoardRepository 코드 추가 (save)@RequiredArgsConstructor@Repository // IoCpublic class BoardRepository { private final EntityManager em; /** * 게시글 조회 메서드 * @param id 조회활 게시글 Id * @return 조회된 Board 엔티티, 존재..

카테고리 없음 2024.10.08

STEP 02 - 로그인 & 로그아웃 구현하기

💡Spring Boot와 JPA를 사용하여 로그인 및 로그아웃 기능을 구현할 수 있다. 1. 로그인 쿼리 만들기먼저, UserRepository를 통해 사용자 이름과 비밀번호로 사용자를 조회하는 메서드를 만듭니다. 이 메서드는 JPQL을 사용하여 데이터베이스에서 사용자를 검색합니다.package com.tenco.blog_v1.user;import jakarta.persistence.EntityManager;import jakarta.persistence.TypedQuery;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;@RequiredArgsConstructor@Repository // IoC..

카테고리 없음 2024.10.08

STEP 02 - 게시글 목록보기 (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.En..

카테고리 없음 2024.10.08

STEP 02 - 게시글 상세보기 (Post Details View)

💡1. Fetch 전략 이해하기: EAGER와 LAZY (Fetch) 전략의 차이점과 동작 방식을 이해한다. 2. Lazy Loading 동작 방식 이해하기: 지연 로딩이 어떻게 작동하고, 언제 데이터를 가져오는지 학습한다. 3. 직접 조인(Fetch Join) 사용하기: 필요한 경우 직접 조인을 사용하여 성능을 최적화하는 방법을 배운다.  1. 게시글 상세보기 구현 (Eager Fetching)목표: EAGER 페치 전략을 사용하여 게시글 상세보기 기능을 구현하고, 연관된 객체가 즉시 로딩되는 것을 확인합니다.package com.tenco.blog_v1.board;import com.tenco.blog_v1.user.User;import jakarta.persistence.*;import lombo..

카테고리 없음 2024.10.08

STEP 02 - 연관 관계 매핑: User와 Board 엔티티

💡1. JPA를 사용하여 User와 Board 엔티티 간의 연관 관계를 설정할 수 있다. 2. @ManyToOne과 @OneToMany 어노테이션의 사용법과 의미를 이해한다. 3. 지연 로딩(FetchType.LAZY)의 동작 방식을 이해한다. 4. @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 lombo..

카테고리 없음 2024.10.08