2024/10 15

블로그4 - 연관 관계 매핑: User와 Board 엔티티

학습 목표JPA를 사용하여 User와 Board 엔티티 간 연관 관계 설정할 수 있다.@ManyToOne과 @OneToMany 어노테이션의 사용법과 의미를 이해한다.지연 로딩(FetchType.LAZY)의 동작 방식을 이해한다.@JoinColumn 어노테이션의 역할을 설명할 수 있다.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.NoArgsConstructor;import java.sql.T..

Spring boot 2024.10.14

블로그3 - 사용자 관리 기본 코드 추가 및 설정

UserControllerpackage 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 문자열 * 반환되는 문자열을 뷰 리졸버가 처리하며, * mustache 템플릿 엔진을 통해서 뷰 파일을 렌더링 한다. */ ..

Spring boot 2024.10.08

블로그2 - 익명 게시판 만들기

엔티티 클래스 만들기 (Board.java)package com.tenco.blog_v1.board;import jakarta.persistence.*;import lombok.Data;import java.sql.Timestamp;@Entity@Table(name = "board_tb")@Datapublic class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // 기본 키 전략 db 위임 private Integer id; private String title; private String content; // created_at 컬럼과 매핑하며, 이 필드는 데이터 저장 시 자동으로 설정 됨 @..

Spring boot 2024.10.08

Mustache

Mustache는 거의 로직이 없는 템플릿 엔진으로, 다양한 프로그래밍 언어에서 사용할 수 있으며, 간단하고 유지보수가 용이한 템플릿을 만드는 데에 유용하다. Spring Boot와 Mustache를 결합함으로써 개발자는 백엔드 로직과 프론트엔드 표현을 분리하여 더 효율적이고 관리하기 쉬운 웹 어플리케이션을 구축할 수 있다. Mustache의 주요 특징로직을 최소화한 템플릿 (Logic-less templates) : Mustache 템플릿은 복잡한 로직을 최소화하여, 템플릿 내에서 간단한 조건문과 반복문을 지원한다. 이는 데이터를 표시하는 데에 집중하도록 설계되었다.{{#users}} {{name}} 님이 로그인했습니다.{{/users}}{{^users}} 로그인한 사용자가 없습니다.{{/users..

Spring boot 2024.10.04

템플릿 엔진

템플릿 엔진템플릿 엔진(Template Engine)은 정적 파일(예 : HTML, XML 등)을 동적으로 변환할 수 있는 도구이다. 서버에서 데이터를 받아, 동적인 콘텐츠를 생성하기 위해 템플릿 파일에 변수나 표현식을 삽입해 처리하는 역할을 한다. 이를 통해 서버가 클라이언트에  동적 웹 페이지를 응답할 수 있게 된다. 역할동적 웹 페이지 생성 : 서버에서 HTML 템플릿 파일을 가져와, 서버에서 처리된 데이터를 삽입하여 클라이언트에게 동적인 웹 페이지를 전송한다.코드 재사용성 : 여러 웹 페이지에서 동일한 구조나 디자인을 사용하는 경우, 템플릿 엔진을 사용하면 공통된 레이아웃을 쉽게 재사용할 수 있다. 템플릿 엔진의 종류서버사이드 템플릿 엔진(SSR) : 서버에서 HTML을 렌더링하고, 데이터가 삽입..

Spring boot 2024.10.04

블로그 7 - 글 수정 API 만들기

Article 클래스(엔티티) 코드 추가하기 - 1package com.tenco.demo._domain.blog.entity;import com.tenco.demo.common.errors.Exception400;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor;// Entity 클래스 설계 시 주의사항..

Spring boot 2024.10.02

블로그4 - 서비스, 컨트롤러 만들기

작업 1 - DTO(Data Transfer Object)클래스 만들기 (게시글 저장)DTO는 데이터 전송을 위한 객체로, 주로 계층 간 데이터 교환을 목적으로 사용된다. 예를 들어, 클라이언트에서 서버로, 혹은 서비스 계층에서 프레젠테이션 계층으로 데이터를 전달할 때 사용된다.package com.tenco.demo._domain.blog.dto;import com.tenco.demo._domain.blog.entity.Article;import lombok.AllArgsConstructor;import lombok.Data;import lombok.Getter;import lombok.NoArgsConstructor;@NoArgsConstructor@AllArgsConstructor@Getter// ..

Spring boot 2024.10.02