본문 바로가기

스프링 부트5

게시판 만들기 07 - 페이지네이션 게시판 만들기 세 번째 글에서 게시글 페이징에 대한 내용을 이미 다뤘다. 그런데 그 내용에 보충해서 해야 할 것이 하나 더 생겨서 이 글을 쓰게 됐다. 페이지네이션 페이지네이션은 콘텐츠를 여러 페이지로 나누고 버튼을 이용해서 특정 페이지로 이동할 수 있는 UI 요소다. 페이지네이션은 어떻게 만들어줄까? 지난 게시판 만들기 포스팅에서 클라이언트가 요청한 페이지 번호에 대해서 해당 페이지의 콘텐츠 리스트를 만들어서 반환해 주는 실습을 해봤다. 그리고 JPA가 반환해 준 Page 객체에서 [ic]getTotalElements()[/ic], [ic]getTotalPages()[/ic], [ic]getNumber()[/ic], [ic]getPageSize()[/ic] 등의 메서드를 통해 총 게시글 수, 총 페이지.. 2023. 5. 22.
게시판 만들기 05 - 테스트 코드 작성(PostController) 저번 포스팅은 PostService 테스트 코드를 작성했다. 테스트 케이스는 게시글 쓰기, 게시글 단건 조회, 게시글 조회 실패 - 잘못된 ID였다. 이번 포스팅은 PostController 테스트 코드를 작성할 예정이고, 게시글 페이징 조회, 수정, 삭제 API를 테스트 해보려고 한다. Controller 테스트 코드를 작성하기 전에 Controller에 있는 로직들이 실행되려면 클라이언트로부터 내가 만든 애플리케이션으로 GET, POST, PUT, DELETE 등의 HTTP 요청이 와야 한다. 우리가 PostController를 만들 때 요청 Body에 게시글 데이터를 담고 [ic]/posts [/ic]로 POST 요청을 보내면 게시글을 생성하고, [ic]/posts/{postId}[/ic]로 GET.. 2022. 12. 9.
게시판 만들기 04 - 테스트 코드 작성(PostService) 이번 포스팅은 게시글 CRUD API의 테스트 코드를 작성해 보려고 한다. 나는 PostController, PostService 두 가지를 나눠서 각각 6개씩 테스트 코드를 작성했다. 게시글 쓰기 게시글 단건 조회 게시글 조회 실패 - 잘못된 ID 게시글 페이징 조회 게시글 수정 게시글 삭제 나는 Controller와 Service 두 개의 계층에서 테스트 코드를 작성했으니 12개의 테스트 코드를 작성했지만, 포스팅에서는 PostService에서 1, 2, 3번의 테스트 코드를 보여주고 PostController에서 4, 5, 6번의 테스트 코드를 보여주려고 한다. PostService 테스트 코드 작성 테스트 코드는 [ic]src/test/[/ic] 패키지 안에 작성을 한다. 테스트 코드 파일을 직접.. 2022. 12. 8.
게시판 만들기 03 - 게시글 페이징 페이징 처리 하는 이유 여러 사이트를 돌아다니다 보면 아래 사진과 같은 걸 본 적이 분명히 있을 것이다. 이런 페이징 처리는 많은 데이터들을 여러 페이지로 나눠서 제공하므로 데이터를 보는 사람들에게 효과적으로 보여주게 된다. 내가 지금 만들고 있는 게시판도 수백, 수천 개의 게시글이 생길 수도 있는데 이 게시글들을 효과적으로 보여주려면 페이징 처리를 하는 게 좋을 것이다. JPA에서 페이징 나는 지금 MySQL을 사용하고 있는데 만약에 JPA를 사용하지 않았다면 limit, offset 키워드를 활용해서 페이징 처리가 가능한 쿼리를 날렸을 것이다. 하지만 JPA에서는 아주 간단한 페이징 처리 방법을 제공한다. 먼저 저번 포스팅에서 PostRepository를 생성할 때 JpaRepository라는 인터페.. 2022. 12. 8.
게시판 만들기 01 - 게시글 Entity 만들기 프로젝트 만들기 먼저 스프링 부트를 이용해서 프로젝트를 생성해 준다. 필요한 의존성들을 추가해 주고 application.yml에서 프로젝트 설정을 해준다. 나는 데이터베이스는 MySQL을 사용할 예정이어서 관련된 설정들을 추가했고 JPA 관련 설정도 해두었다. Post 엔티티 만들기 게시글 CRUD 기능을 구현하려면 게시글에 해당하는 Entity를 정의해야 한다. Post Entity를 만들어보자. 보통 Entity나 Class에 붙이는 어노테이션들이 있다. 예를 들면, @Getter, @Setter, @AllArgsConstructor, @NoArgsConstructor, @Data, @ToString, @Builder, @Entity 등이 있겠다. 취업하기 전에 간단하게 JPA를 맛만 본 후에 취업.. 2022. 11. 30.