728x90
728x90
Spring2022. 12. 31. 21:5312. 템플릿 상속 - 점프 투 스프링부트(게시판 만들기)

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. 표준 HTML 구조 지금까지 작성한 질문 목록, 질문 상세 템플릿은 표준 HTML 구조가 아니다. 어떤 웹 브라우저를 사용하더라도 웹 페이지가 동일하게 보이고 정상적으로 작동 하게 하려면 반드시 웹 표준을 지키는 HTML 문서를 작성해야 한다. 표준 HTML구조는 아래와 같다 (... 생략 ...) 표준 HTML 문서의 구조는 위의 예처럼 html, head, body 엘리먼트가 있어야 하며, CSS 파일은 head 엘리먼트 안에 링크 되어야 한다. 또한 head 엘리먼트 안에는 meta, title 엘리먼트 등이 포함되어야 한다. 템플릿 상속 앞에서 작성한 질문 목록..

Spring2022. 12. 31. 20:439. 답변 등록 - 점프 투 스프링부트(게시판 만들기)

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. 답변 등록 버튼 만들기 이제 버튼을 누르면 POST 방식으로 /answer/create/ URL이 호출(submit)될 것이다. 하지만 아직 /answer/create/ URL에 대한 매핑이 없으므로 버튼을 누르면 다음과 같은 404 페이지가 나타난다. 답변 서비스 만들기 답변을 저장하는 AnswerService를 작성하자 package com.example.board.answer; import java.time.LocalDateTime; import org.springframework.stereotype.Service; import com.example.board.q..

8. 질문 상세 - 점프 투 스프링부트(게시판 만들기)
Spring2022. 12. 31. 19:558. 질문 상세 - 점프 투 스프링부트(게시판 만들기)

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

Spring2022. 12. 31. 19:357. 서비스 - 점프 투 스프링부트(게시판 만들기)

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

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

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 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..

5. 리포지터리 - 점프 투 스프링부트(게시판 만들기)
Spring2022. 12. 31. 18:395. 리포지터리 - 점프 투 스프링부트(게시판 만들기)

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

4. 엔티티 - 점프 투 스프링부트(게시판 만들기)
Spring2022. 12. 31. 18:294. 엔티티 - 점프 투 스프링부트(게시판 만들기)

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 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;..

3. JPA - 점프 투 스프링부트(게시판 만들기)
Spring2022. 12. 31. 17:563. JPA - 점프 투 스프링부트(게시판 만들기)

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

728x90
728x90
image