SpringBoot 13

SpringBoot JPA 게시판 CRUD 구현(다중 조회/ Paging / TDD)

지난번에 포스팅한 게시글 단건 조회에 이어서 오늘은 전체 게시글을 조회하는 WAS 단 로직을 포스팅하려 합니다. 사실 JpaRepository에서 기본적으로 제공하는 findAll() 메서드를 사용하면 단건 조회와 큰 차이점은 없지만, 글이 너무 많은 경우에 비용이 너무 많이 들어가므로 페이징 처리도 함께 구현할 예정입니다. 페이징(Paging)? 우리가 웹사이트에서 흔히 볼 수 있는 페이징은 왜 필요할까요? 페이징 처리가 없다면 스크롤을 계속해서 내려야 하는 상황도 발생할 수 있고, 무엇보다 데이터 처리에 비용이 많이 발생합니다. 페이징 처리를 안 한 상황에서 글이 만약 몇십만 개가 있다면 한 번의 로직으로 DB에서 몇십만 개의 글을 모두 가져와야 할 것입니다. 물론 DB에서 데이터 사이즈로 인해 오류..

JPA 2022.07.21

SpringBoot JPA 게시판 CRUD 구현(Read 단건 조회 및 TDD)

지난번에 포스팅한 Create에 이어서 게시판을 조회하는 WAS 단 로직을 포스팅하려 합니다. 게시판 조회는 단건 조회와 전체 조회로 나뉩니다. 물론 검색 기능도 조회에 해당하지만, 검색 기능은 추후에 포스팅하겠습니다. Gradle 빌드나 프로젝트 구조는 깃허브 Bincolog를 참고해주세요! Response 생성📗 처음에는 PostResponse 클래스를 생성합니다. 저번에 언급했던 Entity와 Request, Response는 분류해야 하기 때문입니다. 못 보신 분들은 아래 사진을 참고해주세요😄 Response 클래스는 서비스 정책에 맞게 구현해야 합니다. 클라이언트에서 어떠한 결과 값을 원하는지에 대해서는 항상 다르기 때문입니다. 저는 게시글을 조회했을 때 해당 게시글의 id값, 제목, 내용을 가..

JPA 2022.07.20

SpringBoot JPA 게시판 CRUD 구현(Create)

SpringBoot와 JPA를 사용하여 게시판을 구현하는 WAS 단 로직을 포스팅하려 합니다. 기본 프로젝트 설정과 데이터베이스 연결 및 View단은 생략할 예정입니다. Gradle 빌드나 프로젝트 구조는 깃허브 Bincolog를 참고하시면 됩니다. 개인적인 공부로 코드의 결함이 있을 수 있으니 참고만 해주세요 :) Entity 생성📗 처음으로는 Entity를 생성합니다. Entity 클래스는 실제 DB 테이블과 매핑되는 핵심 클래스로, 데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체입니다. Entity는 데이터베이스 영속성의 목적으로 사용되기 때문에, 요청이나 응답 값을 전달하는 클래스로 사용하는 것은 좋지 않습니다. 또한, 많은 비즈니스 로직들이 Entity를 기준으로 동작하기 때문에 추..

JPA 2022.07.18