Spring boot 46

스프링 부트- 익명 블로그 만들기 버전4 (에러 페이지 만들기)

HTTP 상태 코드별 에러 페이지: 각 오류 상황에 맞는 페이지 제공에러 메시지 표시: 동적으로 오류 내용 전달하기사용자 경험 개선: 시스템 오류를 사용자가 이해하기 쉽게 표현템플릿 재사용: 공통 레이아웃을 활용한 일관된 디자인주요 상태 코드 정의1XX: Informational(정보 제공)임시 응답으로 현재 클라이언트의 요청까지는 처리되었으니 계속 진행하라는 의미입니다. HTTP 1.1 버전부터 추가되었습니다.2XX: Success(성공)클라이언트의 요청이 서버에서 성공적으로 처리되었다는 의미입니다.3XX: Redirection(리다이렉션)완전한 처리를 위해서 추가 동작이 필요한 경우입니다. 주로 서버의 주소 또는 요청한 URI의 웹 문서가 이동되었으니 그 주소로 다시 시도하라는 의미입니다.4XX: C..

Spring boot 2025.07.28

스프링 부트- 익명 블로그 만들기 버전3 (게시글 수정 - Dirty Checking과 권한 관리)

Dirty Checking 활용: JPA의 변경 감지로 자동 UPDATE권한 기반 수정: 본인 게시글만 수정 가능하도록 제한영속 엔티티 수정: find() → 값 변경 → 자동 UPDATE폼 데이터 미리 채우기: 기존 데이터로 수정 폼 초기화 권한이 있을 때 게시글 수정하기 화면 권한이 없을 때 수정하기 화면 요청 머스태치 파일 수정{{> layout/header}} 글수정하기 화면입니다 {{board.content}} ..

Spring boot 2025.07.28

스프링 부트- 익명 블로그 만들기 버전3 (게시글 삭제 - 권한 체크와 안전한 삭제)

JPQL DELETE 쿼리: 직접 삭제 쿼리 작성하기권한 기반 삭제: 본인 게시글만 삭제 가능하도록 제한안전한 삭제: 존재하지 않는 게시글 처리트랜잭션 관리: @Transactional을 통한 일관성 보장 BoardRepositorypackage com.tenco.blog.board;import jakarta.persistence.EntityManager;import jakarta.persistence.Query;import jakarta.persistence.TypedQuery;import lombok.RequiredArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework..

Spring boot 2025.07.27

스프링 부트- 익명 블로그 만들기 버전3 (로그인 & 로그아웃 - 세션 기반 사용자 인증)

로그인 인증: 사용자명과 비밀번호 확인하기세션 관리: HttpSession을 통한 로그인 상태 유지로그아웃 구현: 세션 무효화로 로그인 해제조건부 네비게이션: 로그인 상태에 따른 메뉴 변경 UserRepository로그인 처리(사용자 정보 조회 )/** * 로그인 요청 기능 (사용자 정보 조회) * @param username * @param password * @return 성공시 User 엔티티 실패시 null 반환 */ public User findByUsernameAndPassword(String username, String password) { // JPQL try { String jpql = " SELECT..

Spring boot 2025.07.27

스프링 부트- 익명 블로그 만들기 버전3 (회원가입 - 사용자 등록과 JPA 영속성 활용)

User 엔티티 영속화: JPA persist() 메서드 활용DTO 패턴 적용: 요청 데이터와 엔티티 분리빌더 패턴 활용: 안전한 User 객체 생성 UserRepository회원 저장 기능 추가username 존재 여부 확인 기능 추가package com.tenco.blog.user;import jakarta.persistence.EntityManager;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;@RequiredArgsConstructor // 생성자 의존 주입 - DI 처리@..

Spring boot 2025.07.27

스프링 부트- 익명 블로그 만들기 버전3 (게시글 목록보기 - 연관관계로 작성자 정보 표시)

목록에서 연관관계 활용: 작성자명 표시하기Controller와 View 연결: 데이터 전달 방법 익히기JPQL 목록 조회: ORDER BY로 정렬하기목록 페이지 완성: 실제 동작하는 블로그 만들기 BoardControllerpackage com.tenco.blog.board;import jakarta.servlet.http.HttpServletRequest;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathV..

Spring boot 2025.07.27

스프링 부트- 익명 블로그 만들기 버전3 (게시 글 상세보기 - 연관 관계 기본 활용)

연관관계 매핑 동작 확인: Board에서 User 정보 접근하기뷰에서 연관관계 활용: 작성자 정보 표시하기기본 Repository 패턴: EntityManager 기본 사용법 익히기 지연 로딩과 즉시 로딩 확인@Table(name = "board_tb")@Entitypublic class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // V2와 일관성 유지 private String title; private String content; // V2에서 제거: private String username; // V3에서 추가: User 엔티티와의 연관관계 // 다대..

Spring boot 2025.07.26

스프링 부트- 익명 블로그 만들기 버전2 (게시글 삭제하기 - Persistence Context와 영속성 관리)

영속성(Persistence)이란?영속성은 데이터가 영구적으로 보관되는 성질 을 의미합니다. 프로그램이 종료되어도 데이터가 사라지지 않고 계속 존재하는 특성입니다.BoardControllerpackage com.tenco.blog.board;import jakarta.servlet.http.HttpServletRequest;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org...

Spring boot 2025.07.26