Spring 73

Spring Boot 13강 - 답변 등록 로직 구현하기

상세 페이지에서 입력한 답변(댓글)을실제로 데이터베이스에 저장하려면컨트롤러와 서비스 계층에서 로직을 구현해야 합니다.답글이 등록되면 해당 질문의 상세 페이지로 바로 이동시키는 것이 일반적입니다.📌 예제 코드AnswerController.javapackage com.mysite.sbb.answer;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframewo..

Spring Boot 12강 - 상세 페이지에서 질문 내용 출력과 답글 작성 폼 만들기

질문 목록에서 제목을 클릭하면상세 페이지로 이동하여 질문 제목과 내용을 확인할 수 있습니다.또한, 답변을 등록할 수 있는 폼(form)도 함께 제공해실제 사용자 입력을 받아 처리할 수 있도록 만듭니다.📌 예제 코드 (question_detail.html) 💬 코드 설명th:text="${question.subject}"컨트롤러에서 모델로 전달받은 question.subject(질문 제목)를 출력합니다.th:text="${question.content}"질문의 본문(내용)을 출력합니다.답글 등록 폼(form)th:action="@{|/answer/create/${question.id}|}"답변 등록 요청이 /answer/create/질문번호로 POST 방식으로 전송됩니다.textarea사용..

Spring Boot 11강 - 상세 페이지 구현과 NotFound 예외 처리

목록에서 제목을 클릭하면각 질문의 상세 페이지로 이동하게 하려면,컨트롤러에서 id를 받아 해당 데이터를 조회해 뷰에 전달해야 합니다.또, 존재하지 않는 id로 접근 시 404 오류를 처리하는 방법도 같이 알아봅니다.📌 예제 코드QuestionController.javapackage com.mysite.sbb.question;import java.util.List;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.Pat..

Spring Boot 10강 - Thymeleaf로 질문 목록 테이블 출력하기

스프링 부트에서는 Thymeleaf 템플릿 엔진을 사용해컨트롤러에서 전달한 데이터를 HTML에 쉽게 출력할 수 있습니다.이번 강의에서는 questionList를 반복문으로 출력하여질문 제목과 작성일자를 테이블로 만드는 방법을 다룹니다.📌 예제 코드 (question_list.html) 제목 작성일자 💬 코드 설명th:each="question : ${questionList}": questionList에 들어있는 각 question 객체를 반복해서 한 줄씩 출력합니다.th:text="${q..

Spring Boot 9강 - Service 계층과 Controller에서 데이터 조회 및 뷰 연결

스프링 부트에서는 Controller → Service → Repository 계층 구조를 통해비즈니스 로직과 데이터 접근을 분리하여,코드의 유지보수성과 확장성을 높일 수 있습니다.이번 강의에서는 질문(Question) 목록을 서비스로부터 받아뷰(HTML 화면)에 데이터를 전달하는 전체 흐름을 다룹니다.📌 예제 코드QuestionController.javapackage com.mysite.sbb.question;import java.util.List;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;..

Spring Boot 8강 - JPA 리포지토리와 메서드 쿼리로 데이터 조회하기

JPA에서는 데이터베이스에 직접 쿼리문을 작성하지 않고도인터페이스만 정의하면 자동으로 CRUD(조회, 생성, 수정, 삭제) 메서드를 사용할 수 있습니다.또한, 메서드 이름만 잘 지어주면 원하는 조건으로 데이터를 검색할 수도 있습니다.📌 예제 코드package com.mysite.sbb.question;import java.util.List;import org.springframework.data.jpa.repository.JpaRepository;public interface QuestionRepository extends JpaRepository { Question findBySubject(String subject); Question findBySubjectAndContent(String..

Spring Boot 7강 - JPA 엔티티와 관계 매핑(Question & Answer 예제)

JPA에서는 데이터베이스의 테이블을 클래스(엔티티)로 매핑해서자바 객체처럼 다룰 수 있습니다.이번 강의에서는 Question과 Answer 두 엔티티를 설계하고,1:N(일대다) 관계를 어떻게 표현하는지 예제로 알아봅니다.📌 예제 코드Answer.javapackage com.mysite.sbb;import java.time.LocalDateTime;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import jakarta.persi..

Spring Boot 6강 - JPA & H2 데이터베이스 연동을 위한 dependencies 추가와 application.properties 설정

스프링 부트에서 데이터베이스와 JPA를 연동하려면필요한 라이브러리(dependencies) 추가와 함께,환경설정 파일(application.properties)에서 데이터베이스와 JPA 옵션을 지정해야 합니다.📌 새로 추가한 dependenciesruntimeOnly 'com.h2database:h2'implementation 'org.springframework.boot:spring-boot-starter-data-jpa'com.h2database:h2: 개발과 테스트용으로 가볍게 쓸 수 있는 DB.spring-boot-starter-data-jpa: JPA 및 Hibernate 기반의 ORM 기능을 제공.📌 application.properties 주요 설정spring.application.nam..

Spring Boot 5강 - 컨트롤러에서 HTML 코드 직접 반환하기

스프링 부트에서는 컨트롤러 메서드에 @ResponseBody를 붙이면,문자열을 그대로 브라우저에 출력할 수 있습니다.이때 HTML 태그가 포함된 문자열을 반환하면,브라우저에서 해당 HTML이 실제 태그로 해석되어 화면에 렌더링됩니다.📌 예제 코드package com.mysite.sbb;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class HelloController { @GetMapping("/hello")..

Spring Boot 4강 - @RequiredArgsConstructor로 생성자 자동 생성하기

클래스를 만들 때, final 필드나 @NonNull 필드를 반드시 초기화해야 할 때가 많습니다.이럴 때 Lombok의 @RequiredArgsConstructor를 사용하면,필요한 필드만 받아서 초기화하는 생성자(constructor)를 자동으로 만들어줍니다.📌 예제 코드import lombok.Getter;import lombok.RequiredArgsConstructor;@Getter@RequiredArgsConstructorpublic class HelloLombok { private final String hello; private final String lombok; public static void main(String[] args) { HelloLombok h..

반응형