티스토리 뷰
게시물을 생성하고 조회할 수 있는 API를 먼저 만들겠습니다.
만들 API는 총 3개이며 (1) 모든 게시물 조회 (2) 특정 게시물 조회 (3) 게시물 생성 입니다.
위처럼 Controller, Service를 작성했습니다.
Controller
Controller에서는 ModelAndView를 반환하고 있습니다.
이 부분은 나중에 작성할 거지만 간단하게 설명드리면 어떤 mustache를 이용해 어떤 값을 전달할지를 담습니다.
mav.setViewName("/anonymous_board/post");
mav.addObject("anonymousPost", anonymousService.getAnonymousPost(postId));
위 코드에서 setViewName()을 통해 mustache 경로를 작성해주고, addObject()를 통해 전달할 값을 넣었습니다.
Paging
게시물 페이징을 위해 Pageable을 이용했습니다.
아직 JPA에 익숙하지 않아 성능 등 자세한 것은 공부 중인데요. 간단히 페이징을 할 수 있습니다.
https://devlog-wjdrbs96.tistory.com/414
Service
Service 쪽 코드에서는 특별할 것이 없고 Page<>를 이용했다는 것이 있습니다.
2022.11.22 - [웹/Spring] - Spring Boot로 게시판 만들기 (테이블 설계)
이 게시물에서 말했듯이 게시물 데이터를 두 개로 쪼개서 저장하고 있는데, 이 때문에 같은 post_id를 이용해야 했습니다.
그래서 anonymous_post_info를 INSERT 후 Auto Increment한 PK(post.id)를 받아오고 이 값을 anonymous_post_data 테이블에 넣을 객체에 전달해 주고 있습니다.
Model
아래와 같이 설계했습니다.
AnonymousPost를 AnonymousPostInfo와 AnonymousPostData로 나눠 저장하고 있습니다.
Repository
이렇게 작성하면 아래와 같은 패키지 구조를 가지게 됩니다.
'웹 > Spring' 카테고리의 다른 글
Mustache Config (Formatter를 통해 데이터 format 설정하기) (0) | 2022.12.11 |
---|---|
Spring Boot로 게시판 만들기 (Mustache를 이용해 화면 그리기) (0) | 2022.12.11 |
Spring Boot로 게시판 만들기 (테이블 설계) (2) | 2022.11.22 |
Spring Boot로 게시판 만들기 (JPA) (4) | 2022.07.02 |
Spring Boot로 게시판 만들기 (mustache) (0) | 2022.07.01 |
- Total
- Today
- Yesterday
- 프로젝트
- 그래프이론
- 코딩테스트
- 트리
- 그래프탐색
- 면접
- 레벨3
- 시뮬레이션
- 백준
- 후기
- 레벨2
- 프로그래머스
- 실버
- 카카오
- 구현
- 스프링부트
- 브루트포스
- 취준
- 스프링
- 골드
- 신입
- 플레
- 자바
- 레벨4
- 최소스패닝트리
- 네이버
- 게시판
- dfs
- 자료구조
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |