2025/01/11 3

14. 댓글 엔티티와 리파지터리 만들기

14.1 댓글 기능의 개요 댓글과 게시글의 관계 | One to Many (일대다, 1:N): 하나의 게시글과 수많은 댓글| Many to One (다대일, N:1): 여러 댓글과 하나의 게시글 기본키테이블에서 자료를 대표하는 속성 대표키기본키 중에서 동일 테이블 내에 중복된 값이 없는 속성 외래키하나의 테이블에서 다른 테이블의 특정 속성과 같은 연관 대상이 있는 경우 이를 가리키는 속성 엔티티DB 데이터를 담는 자바 객체로 엔티티를 기반으로 해 테이블을 생성 리포지터리엔티티를 관리하는 인터페이스로 데이터 CRUD 등의 기능을 제공하는 역할 Comment 엔티티와 Article 엔티티의 관계CommentRepository는 CrudRepository 대신 JpaRepository를 상속JpaReposit..

13. 테스트 코드 작성하기

13.1 테스트란 테스트test, 프로그램이 의도대로 작 작동하는 확인하는 과정으로 프로그램의 품질을 검증 데스트 코드코드를 검증하는 과정테스트를 통과하면 리팩토링 후 코드를 개선하지만, 실패하는 경우 디버깅 과정을 거쳐 오류 수정 i) 예상 데이터 작성하기ii) 실제 데이터 획득하기iii) 예상 데이터와 실제 데이터 비교해 검증하기 테스트 케이스성공, 실패를 모두 고려하여 다양한 경우의 테스트 코드를 대비 테스트 주도 개발Test Drvien Development (TDD), 테스트 코드를 만든 후 이를 통과하는 최소한의 코드를 시작점으로 점차 코드를 개선 및 확장하는 방식 13.2 테스트 코드 작성하기 테스트 코드 기본 틀Service의 메소드에서 오른쪽 마우스를 클릭해 Generate▶Test 선택..

12. 서비스 계층과 트랜잭션

12.1 서비스와 트랜잭션의 개념 서비스Service, 컨트롤러와 리포지터리 사이에 위치하는 계층으로 비즈니스 로직을 처리하는 순서를 총괄하는 역할 트랜잭션Transaction, 서비스 업무 처리의 최소 단위로 모두 성공해야 하는 일련의 과정 롤백Rollback, 트랜잭션이 실패했을 때, 초기 단계로 되돌리는 역할 12.2 서비스 계층 만들기 서비스 객체 생성ArticleService 객체 생성해 articleRepository에 객체 주입public class ArticleApiController { @Autowired private ArticleService articleService;}@Servicepublic class ArticleService { @Autowired pri..