TDD 4

SpringBoot JPA 게시판 CRUD 구현(Update-게시글 수정)

지난번에 구현한 페이징 처리까지 R(Read)에 해당됩니다. 오늘은 U(Update)에 해당되는 게시글 수정 WAS 단 로직을 포스팅하려 합니다. 약간 패키지성 포스팅이어서 게시판의 Create, Read 포스팅을 보지 않으셨다면 헷갈리실 수 있습니다. 맨 아래에 링크를 통해서 지난번 포스팅을 보시고 오시거나 깃허브 Bincolog를 참고하시는 것을 추천드립니다! Request 생성📗 첫번째로는 Request를 생성합니다. Create, Read와 동일하게 Entity를 사용하지 않고 따로 클래스를 만들어줍니다. 이유는 지난 포스팅에서 언급했습니다 :) @Getter @Builder public class PostEdit { @NotBlank(message = "제목을 입력해주세요.") private S..

JPA 2022.07.21

SpringBoot JPA 게시판 CRUD 구현(Create - TDD)

오늘은 지난번에 구현한 게시판 Create 로직의 테스트 케이스를 작성해보려 합니다. 테스트 케이스는 Controller 테스트와 Service 테스트를 구현하려 합니다. 이전 포스팅을 보지 않았다면, 이번 포스팅을 이해하기는 힘드실 것 같아요. 꼭 이전 포스팅을 보고 와주세요! 테스트 디렉토리는 java 하위에 있는 폴더 구조와 동일하게 구조를 맞추셔야 합니다. 폴더 구조와 gradle 빌드는 깃허브를 통해 확인하실 수 있습니다 :) Controller Test 생성📗 로직 테스트에 앞서 기본 클래스를 먼저 생성해줍니다. 앞서 말씀드린 것처럼 build(gradle, maven)에 test 관련 dependency가 추가 되어 있어야 합니다. 테스트 케이스가 처음이신 분들을 고려하여 import 부분도..

JPA 2022.07.18

SpringBoot JPA 게시판 CRUD 구현(Create)

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

JPA 2022.07.18

TDD 정의 및 암호 검사기 예시

여러 매체를 통해서 Java, SpringBoot, JPA를 공부하다 보니, TDD(Test Driven Development)에 대해 자주 접하게 되었습니다. 또한 실무에서 프로젝트를 진행하였을 때 계속해서 같은 테스트를 진행해봐야 하는 상황이 생겼었는데, 테스트 주도 개발로 개발을 했었더라면 보다 유지보수가 쉬웠지 않았을까 하는 생각이 들었습니다. 그래서 TDD를 공부하게 되었습니다. 이번 포스팅은 TDD를 해야 하는 이유와 간단한 예시를 들어보려 합니다. TDD란? 제목과 같이 테스트로부터 시작하는 개발 방식을 일컫습니다. TDD는 먼저 실패하는 테스트 코드를 작성하고, 테스트를 통과시킬 만큼만 코드 구현을 진행하는 방식입니다. 이후에 어느 정도 테스트 과정이 끝나면 코드 정리(리팩토링)를 통해서 ..

TIL 2022.05.25