스프링부트 스터디 1주차 - create 기능 구현
▶ 먼저 CRUD 란?
데이터 처리 기능인 Create Read Update Delete 를 묶어서 일컫는 말
▶ 가장 기초적인 게시판을 만드는데 있어서 필요한 기능들
질문 생성 |
질문 검색 |
질문 수정 |
질문 삭제 |
댓글 생성 |
댓글 수정 |
댓글 삭제 |
... |
여기서 create 의 역할을 지닌 질문 생성, 댓글 생성 기능을 구현해볼 것이다.
과정은 다음과 같다.
1. 질문엔티티 만들기
-Question.java
2. 답변엔티티 만들기
-Answer.java
3. h2 데이터베이스에서 질문, 답변 테이블 생성됐는지 확인하기
4. 리포지터리 생성하기
-QuestionRepository.java
-AnswerRepository.java
5. JUnit 으로 리포지터리가 정상적으로 동작하는지 확인하기
6. 질문 작성 기능 만들기
-QuestionController.java
-QuestionService.java
-QuestionForm.java
7. 댓글 작성 기능 만들기
-AnswerController.java
-AnswerService.java
-AnswerForm.java
1. 질문 엔티티 만들기
2. 답변 엔티티 만들기
3. 서버를 재가동하면 다음과 같이 Question과 Answer 테이블이 자동으로 생성됨
4. 리포지터리 생성하기
(리포지터리는 테이블의 데이터들을 저장, 조회, 수정, 삭제 등을 할 수 있도록 도와주는 인터페이스이다.)
JpaRepository 는 JPA 가 제공하는 인터페이스 중 하나로 CRUD 작업을 처리하는 메소드들을 이미 내장하고 있어서 데이터 관리 작업을 좀 더 편리하게 처리할 수 있다고 한다.
JpaRepository<Question, Integer>
다음 코드는 Question 엔티티로 리포지터리를 생성한다는 의미이며 Question 엔티티의 기본키가 Integer 임을 지정해줘야한다.
마찬가지로 AnswerRepository 인터페이스도 생성하였다.
이렇게 만든 QuestionRepository 와 AnswerRepository 를 이용하여 question, answer 테이블에 데이터를 저장, 조회, 수정, 삭제할 수 있다.
5. JUnit 으로 리포지터리가 정상적으로 동작하는지 확인하기
6. 질문 작성 기능 만들기
7. 답변 작성 기능 만들기
▶ 결과
localhost:8080에 접속하면 맨 처음 나오는 메인 페이지로 작성된 질문 목록이 나온다
질문 등록하기 버튼을 누르고 제목과 내용에 글을 쓰고 저장하기 버튼을 누르면
다음과 같이 질문이 저장된 것을 알 수 있으며
추가로 답변을 계속 등록할 수 있다