BoardService 코드 수정 (게시글 상세 보기)/** * 게시글 상세보기 서비스, 게시글 주인 여부 판별 */ public Board getBoardDetails(int boardId, User sessionUser) { Board board = boardJPARepository .findById(boardId) .orElseThrow(() -> new Exception404("게시글을 찾을 수 없어요")); // 현재 사용자가 게시글을 작성했는지 여부 판별 boolean isBoardOwner = false; if(sessionUser != null ) { ..
Spring boot/개념 공부
리플 엔티티 설계package com.tenco.blog_v2.reply;import com.tenco.blog_v2.board.Board;import com.tenco.blog_v2.user.User;import jakarta.persistence.*;import lombok.*;import org.hibernate.annotations.CreationTimestamp;import java.time.LocalDateTime;@Getter@Setter@NoArgsConstructor@AllArgsConstructor@Builder@Entity@Table(name = "reply_tb")@ToString(exclude = {"user", "board"}) // 연관된 엔티티를 제외하여 순환 참조 방지 및 ..
Service 레이어는 애플리케이션의 비즈니스 로직을 담당하는 계층입니다. Controller는 클라이언트의 요청을 받고 응답을 반환하는 역할을 하며, Repository는 데이터베이스와의 상호작용을 담당합니다. 이 두 계층 사이에 Service 레이어를 도입함으로써 여러 이점을 얻을 수 있습니다.UserDTO 코드 추가package com.tenco.blog_v2.user;import lombok.Data;@Datapublic class UserDTO { // 정적 내부 클래로 모우자 @Data public static class LoginDTO { private String username; private String password; } // 정적..
JPARepository란?Spring Data JPA는 Repository 인터페이스를 통해 데이터 접근 계층을 간편하게 구현할 수 있도록 도와주는 프레임워크입니다. 개발자가 직접 DAO(Data Access Object) 클래스를 작성하지 않고도, JpaRepository를 상속받는 인터페이스에 메서드를 정의함으로써 데이터베이스와의 상호작용을 처리할 수 있습니다.주요 메서드 확인save(S entity): 엔티티를 저장하거나 업데이트합니다.findById(ID id): ID로 엔티티를 조회합니다.findAll(): 모든 엔티티를 조회합니다.deleteById(ID id): ID로 엔티티를 삭제합니다.count(): 엔티티의 개수를 반환합니다.existsById(ID id): 특정 ID의 엔티티 존재 ..