본문 바로가기

전체 글43

junit 테스트 코드(3/5) - 단위 테스트(RepositoryLayer) HTML 삽입 미리보기할 수 없는 소스 1. Repository 계층의 단위 테스트 역할 Repository 계층의 단위 테스트의 역할은 매우 간단하다. Service 계층의 테스트 처럼 Mock 객체를 사용할 필요 없이 Repository를 의존 주입 받아 호출 하고 예상한 결과가 도출 되는지만 확인하면 끝이다. 2. Repository 단위 테스트의 의존 주입 Repository 테스트에서는 JpaRepository를 상속받아 그 안의 메서드를 사용하기 때문에 어찌 되었든 의존주입을 받아야만 한다. 하지만 앞서 설명했듯 단위 테스트에서는 Spring 컨테이너를 사용하면 안된다. 그렇기 때문에 다른 방법을 통해 Repository 객체를 의존 주입 받아 그 안의 함수를 호출해야한다. 위의 문제를 해결하.. 2023. 7. 31.
junit 테스트 코드(1/5) - 개념 및 용어 테스트 코드를 제대로 작성해 본 적 없어, 이번 기회에 개념부터 공부를 하며 한 것들을 정리해 보았다. HTML 삽입 미리보기할 수 없는 소스 1. 테스트 코드란 말 그대로 개발자가 개발한 코드에 대해 검증을 하기 위해 작성하는 코드로 자바에서는 junit이라는 테스트 코드 작성을 위한 프레임워크를 사용한다. 2. Unit 테스트(단위 테스트) 코드 기본 원칙 F - fast : 테스트 코드는 빠르게 실행되어야 한다. I - Independent : 독립적으로 실행되어야 한다. R - Repeatable : 반복 가능해야 한다. S - Self Validating : 스스로 테스트 검증 가능해야 한다 T - Timely : 프로덕션 코드 직전에 작성되어야 한다.(TDD) 3. 왜 테스트 코드를 작성하나 .. 2023. 7. 30.
JPA 정리(3) - 연관관계, 양방향 매핑 Entity의 연관 관계 DB 테이블의 연관 관계와 비슷하지만 Entity의 연관 관계와 동일하지 않다. 여러가지 연관 관계 연관 관계를 가지고 있을 때 select 외의 insert등도 한번에 처리가 가능하다. 가장 빈번하게 쓰이고 일반적인 형태, fk를 가지고 있는 Member테이블의 객체가 Team의 참조를 가지고 있다 실무에서 거의 사용되지 않는 형태지만 지원되긴 한다. 테이블에서는 무조건 다쪽에 fk가 들어간다. 로직에서 조회의 빈도성 때문에 일대다를 사용해야 한다면 차라리 다대일 양방향 매핑을 사용 이런 매핑은 공식적으로 존재하지 않는다. @JoinColumn(insertable=false, updatable=false) 사용 읽기 전용 필드를 사용해서 양방향처럼 사용하는 방법 다대일 양방향을.. 2023. 7. 17.
JPA 정리(2) - 스키마 생성 및 제약 조건 1.Entity와 테이블 매핑 @Entity 가 붙은 클래스는 JPA가 관리 → 엔티티 주의 사항 기본 생성자 필수! final 클래스 사용 금지 필드에도 final 사용 금지 setter 가능한 사용 금지 2.데이터베이스 스키마 자동 생성 DDL을 어플리케이션 실행 시점에 자동 생성 이렇게 생성된 DDL은 개발 서버에서만 사용 생성된 DDL은 운영서버에서는 사용하지 않거나, 다듬은 후 사용 데이터베이스 스키마 자동 생성에 관한 속성 create : 기존 테이블 삭제 후 다시 생성 create-drop : create와 같으나 종료시점에 테이블 drop update: : 변경분만 반영(추가만 됨) validate : 엔티티와 테이블이 정상 매핑되었는지만 확인 → 맞지 않다면 에러 발생 none : 사용하.. 2023. 7. 17.