꾸준히 재밌게
728x90
728x90
article thumbnail
18. 게시물에 답변 개수 표시 - 점프 투 스프링부트(게시판 만들기)
Spring 2023. 1. 1. 11:53

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. 답변 개수 표시하기 question_list.html 템플릿에 코드를 추가하자. (... 생략 ...) (... 생략 ...) th:if="${#lists.size(question.answerList) > 0}"로 답변이 있는지 조사하고 th:text="${#lists.size(question.answerList)}"로 답변 개수를 표시했다. #list.size(이터러블객체)는 이터러블 객체의 사이즈를 반환하는 타임리프의 유틸리티이다.

14. 공통 템플릿 - 점프 투 스프링부트(게시판 만들기)
Spring 2023. 1. 1. 01:04

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. 오류 메시지 공통 템플릿 오류 메시지를 표시하는 공통 템플릿을 작성하자 파일 경로 : /practice/src/main/resources/templates/form_errors.html 출력할 오류 메세지 부분에 th:fragment="formErrorsFragment" 속성을 추가했다 필요한 템플릿에 적용하기 question_form.html 질문등록 제목 내용 타임리프의 th:replace 속성을 사용하면 공통 템플릿을 템플릿 내에 삽입할수 있다. div 엘리먼트를 form_errors.html 파일의 th:fragment 속성명이 formErrorsFragmen..

article thumbnail
8. 질문 상세 - 점프 투 스프링부트(게시판 만들기)
Spring 2022. 12. 31. 19:55

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. 질문 상세 링크 추가하기 question_list.html을 다음과 같이 수정하자 제목 작성일시 타임리프에서 링크의 주소는 th:href속성을 사용한다. URL 주소를 나타낼 때 반드시 @{URL}형식을 지켜야 한다. 문자열과 자바 객체의 값을 더할 때는 반드시 | | 기호로 좌우를 감싸주어야 한다. 타임리프는 문자열을 연결할 때 | 문자를 사용한다 질문 상세 구현하기 Question 데이터를 조회하기 위해 QuestionService를 수정하자 (... 생략 ...) import java.util.Optional; import com.example.board.Data..

7. 서비스 - 점프 투 스프링부트(게시판 만들기)
Spring 2022. 12. 31. 19:35

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. 서비스가 필요한 이유 여태까지 QuestionController에서 QuestionRepository를 직접 사용하여 질문 목록 데이터를 조회했다. 하지만 대부분의 규모있는 스프링부트 프로젝트는 컨트롤러에서 리포지터리를 직접 호출하지 않는다. 중간에 서비스(Service)를 두어 데이터를 처리한다. 서비스는 스프링에서 데이터 처리를 위해 작성하는 클래스이다. 서비스는 왜 필요할까? 모듈화 예를들어 어떤 컨트롤러가 여러개의 리포지터리를 사용하여 데이터를 조회한후 가공하여 리턴한다고 가정해 보자. 이러한 기능을 서비스로 만들어 두면 컨트롤러에서는 해당 서비스를 호출하여 사..

6. 질문 목록과 템플릿 - 점프 투 스프링부트(게시판 만들기)
Spring 2022. 12. 31. 19:18

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. 데이터 조회하여 템플릿에 전달하기 질문 목록을 조회하기 위해서는 Question 리포지터리를 사용해야 한다. Question 리포지터리로 조회한 질문 목록은 Model 클래스를 사용하여 템플릿에 전달할수 있다. package com.example.board.Question; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping..

article thumbnail
5. 리포지터리 - 점프 투 스프링부트(게시판 만들기)
Spring 2022. 12. 31. 18:39

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ 리포지터리 ] 엔티티만으로는 데이터베이스에 데이터를 저장하거나 조회 할 수 없다. 데이터 처리를 위해서는 실제 데이터베이스와 연동하는 JPA 리포지터리가 필요하다. 리포지터리란? 엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들을 사용하기 위한 인터페이스이다. 데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)가 필요하다. 이 때 이러한 CRUD를 어떻게 처리할지 정의하는 계층이 바로 리포지터리이다. package com.example.board.Question; import..

article thumbnail
4. 엔티티 - 점프 투 스프링부트(게시판 만들기)
Spring 2022. 12. 31. 18:29

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ 엔티티 ] 엔티티는 데이터베이스 테이블과 매핑되는 자바 클래스를 말한다. 엔티티는 모델 또는 도메인 모델 이라고 부르기도 한다. 질문 엔티티 작성하기 package com.example.board.Question; import java.time.LocalDateTime; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue;..

article thumbnail
3. JPA - 점프 투 스프링부트(게시판 만들기)
Spring 2022. 12. 31. 17:56

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ JPA ] 스프링부트는 JPA(Java Persistence API)를 사용하여 데이터베이스를 처리한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음이다. JPA는 인터페이스이다. 따라서 인터페이스를 구현하는 실제 클래스가 필요하다. JPA를 구현한 대표적인 실제 클래스에는 하이버네이트(Hibernate)가 있다. 우리가 만들 게시판은 질문 답변 게시판이다. 질문이나 답변을 작성하면 데이터가 생성된다. 그러므로 데이터를 저장하거나 조회하거나 수정하는 등의 기능을 구현해야 한다. 웹 서비스는..

728x90
728x90