하나씩 차근차근
article thumbnail
게시판 만들기 - 답변 등록 기능 추가
Spring/Springboot 실습 2023. 1. 9. 15:39

이번 포스트에서는 앞에서 만든 질문 상세페이지에서 답변을 등록할 수 있는 기능을 만들어보겠습니다. 답변 작성 폼 앞에서 만든 question_detail.html 안에 다음과 같이 답변을 작성하고 등록할 수 있는 폼을 만듭니다. 답변등록 버튼을 누르면 localhost:8080/answer/create/{id} 로 post 방식을 통해 textarea 에 입력된 내용을 content 라는 속성에 담아 전달합니다. springboot 를 실행시키고 접속을 해보면 다음과 같이 답변 등록 폼이 보입니다. AnswerController 작성 위에서 답변등록을 눌러 localhost:8080/answer/create/{id} 로 post 방식으로 데이터가 전달될때 처리를 할 수 있도록 AnswerControlle..

article thumbnail
게시판 만들기 - 질문 상세페이지 작성
Spring/Springboot 실습 2023. 1. 8. 06:39

이번 포스트에서는 localhost:8080/question/list 에 출력되는 질문을 클릭했을때 해당 질문의 내용, 댓글, 날짜 등을 상세하게 볼 수 있는 상세 페이지를 만들어보겠습니다. question_list 수정 먼저 question_list 페이지를 수정해서 질문의 제목을 클릭하면 페이지를 이동시키겠습니다. 제목 작성일시 thymeleaf 를 통해 th:href="@{주소}" 를 사용하면 html 의 하이퍼링크 기능을 사용할 수 있습니다. 우리는 각 질문의 id 값을 통해 해당 질문을 상세하게 볼 수 있는 페이지로 이동하겠습니다. 예를 들어 1번 질문은 "localhost:8080/question/detail/1" 을 입력해서 상세 페이지로 이동할 수 있습니다. Controller 작성 다음으..

article thumbnail
게시판 만들기 - service 작성
Spring/Springboot 실습 2023. 1. 8. 05:48

지금까지 우리는 데이터를 가져오기 위해 controller 에서 각 엔티티의 repository 를 통해 데이터베이스에 접근해서 데이터를 가져왔습니다. 시작 모듈화 만약 여러가지 작업을 통해 데이터를 가져와야 한다면 각 controller 에서 repository 를 여러번 사용하는것보다 service 라는 클래스를 만들어서 여러 repository 를 통한 작업들을 넣어두고 controller 에서는 service 만 가져오는것이 더 효율적입니다. 보안 controller 에서 repository 를 통해 바로 데이터베이스에 접근하는것은 보안상 안전하지 않습니다. 때문에 controller 와 repository 사이에 service 를 두고 데이터베이스 안전하게 접근하도록 합니다. 이번에는 앞에서 작..

article thumbnail
게시판 만들기 - 브라우저를 통한 데이터 출력
Spring/Springboot 실습 2023. 1. 8. 05:26

앞에서 Repository 를 통해 가져온 데이터를 Eclipse 콘솔창에 출력을 했습니다. 이번에는 데이터를 브라우저에 출력해보겠습니다. HTML 페이지 작성 데이터베이스에서 가져온 데이터를 보여주기 위해서는 html 페이지를 작성해야 합니다. 다음과 같이 templates 디렉토리에 question_list.html 파일을 생성합니다. 다음으로 앞에서 만든 QuestionController 를 수정해야합니다. model 을 통해 html 페이지에 데이터를 전달할 수 있는데 우리는 questionList 라는 변수에 데이터베이스에서 찾은 모든 데이터를 담아서 전송하겠습니다. package com.crud.controller; import java.util.List; import org.springfra..

article thumbnail
게시판 만들기 - Repository 작성
Spring/Springboot 실습 2023. 1. 6. 16:58

앞에서 만든 엔티티와 JPA 를 통해 데이터베이스에 테이블을 생성하였습니다. 데이터베이스에 저장된 데이터들을 처리하기 위해서는 JPA Repository 가 필요한데 Repository 는 데이터에 접근하는 메서드를 사용하기 위한 인터페이스로 Question 과 Answer Repository 를 작성해보겠습니다. 시작 먼저 위와 같이 repository 를 저장할 repository 패키지를 하나 만들어줍니다. 모든 repository 는 이 패키지 안에서 관리를 하겠습니다. QuestionRepository Repository 를 만들기 위해서는 다음 과정으로 진행합니다. JpaRepository 인터페이스 상속 제네릭 타입 지정 여기서 QuestionRepository 는 Question 엔티티에 ..

article thumbnail
게시판 만들기 - JPA 를 통한 테이블 생성
Spring/Springboot 실습 2023. 1. 5. 11:04

이번 포스트에서는 엔티티를 만들고 JPA 를 통해 데이터베이스에 테이블을 생성해보겠습니다. 시작 먼저 다음과 같이 model 패키지를 만들어줍니다. 앞으로 model 패키지 안에 데이터베이스의 테이블과 연결이 되는 엔티티들이 작성될것입니다. 엔티티 구성 질문 엔티티 id : 번호 (기본키) subject : 제목 content : 내용 create_date : 작성일시 답변 엔티티 id : 번호 (기본키) question : 어떤 질문인지 확인하는 속성 content : 내용 create_date : 작성일시 질문 엔티티 위에서 만든 model 패키지 안에 Question.java 를 다음과 같이 생성합니다. package com.crud.model; import java.time.LocalDateTim..

article thumbnail
게시판 만들기 - 시작 및 환경설정
Spring/Springboot 실습 2023. 1. 4. 12:33

이번 포스트부터 스프링부트를 사용해서 crud 와 로그인, 회원가입 기능을 구현한 게시판을 만들어보려합니다. 먼저 게시판을 만들기 위해 필요한 라이브러리를 설정해보겠습니다. 시작 개발환경은 Eclipse 에서 STS4 를 사용했습니다. Eclipse STS4 (Spring Tools 4) New Project 에서 Spring Starter Project 를 클릭합니다. 이번 프로젝트에서 빌드관리도구는 Maven 을 사용했고 자바는 버전8 을 사용합니다. 나머지 그룹과 패키지는 각자 맞게 설정을 해주시면 됩니다. 라이브러리 추가 다음으로 라이브러리 추가를 해보겠습니다. 아래와 같이 총 7개의 라이브러리를 추가하면 됩니다. Spring Boot DevTools Lombok Spring Data JPA My..