전체 글(50)
-
스프링 - JPA 지연로딩
2024/08/27 ※ 지연 로딩에 대해 알아보자. ▶ 지연 로딩과 즉시 로딩 ● 음식 테이블과 고객 테이블이 N : 1 양방향 관계라 가정해보자. ➡️ FetchTypeTestpackage com.sparta.jpaadvance.fetch;import com.sparta.jpaadvance.entity.Food;import com.sparta.jpaadvance.entity.User;import com.sparta.jpaadvance.repository.FoodRepository;import com.sparta.jpaadvance.repository.UserRepository;import org.junit.jupiter.api.Test;import org.sprin..
2024.08.27 -
스프링 - 통합 테스트란?
2024/08/26 ※ 통합 테스트란 무엇일까? ▶ 단위 테스트 vs 통합 테스트 1. 단위 테스트(Unit Test) ● 하나의 모듈이나 클래스에 대해 세밀한 부분까지 테스트가 가능 ● But 모듈 간에 상호 작용 검증은 할 수 없다❗ 2. 통합 테스트(Integration Test) ● 두 개 이상의 모듈이 연결된 상태를 테스트할 수 있다. ● 모듈 간의 연결에서 발생하는 에러 검증 가능 ▶ Spring Boot를 이용한 통합 테스트 ● 통합 테스트 ..
2024.08.26 -
스프링 - Mockito란?
2024/08/23 오늘은 Mockito에 대해 알아보겠습니다.다들 시원한 Mojito를 생각하셨나요?이름은 비슷하지만 모히또가 아니라 모키토랍니다ㅎㅎ ※ Mockito란 무엇일까? ▶ ProductService의 단위 테스트 작성 시도 👉 다음 예시를 통해 mockito에 대해 알아봅시다. ● 관심 상품 최저가 업데이트@Servicepublic class ProductService { // ... public static final int MIN_MY_PRICE = 100; // ... @Transactional public Product updateProduct(Long id, ProductMypri..
2024.08.23 -
스프링 - 테스트 사용 방법
2024/08/22 ※ 단위 테스트란 무엇일까? ▶ 단위 테스트란? 👉 버그 발견 시간이 늦어짐에 따라 비용이 기하급수적으로 커지는 걸 알 수 있다. 1. Development : 개발 2. Unit Tests (단위 테스트) : 개발자 테스트 3. QA Testing : ● 블랙박스 테스팅 ● 주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅 ❓ 블랙박스 테스트 ● 소프트웨어의 내부 동작 및 코드에 대한 지식 없이 외부의 입력에 대한 출력을 테스..
2024.08.22 -
스프링 - JPA Query Methods란 무엇일까?
2024/08/21 ※ Query Methods란 무엇일까? ▶ Query Methods란? ● Spring Data JPA에서는 메서드 이름으로 SQL을 생성할 수 있는 Query Methods 기능을 제공한다.🔎 스프링 Document에 JPA Query Methods에 대해 상세하게 나와 있다. https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html ● JpaRepository 인터페이스에서 해당 인터페이스와 매핑되어있는 테이블에 요청하고자하는 SQL을 메서드 이름을 사용하여 선언할 수 있다. 👉..
2024.08.21 -
스프링 - JPA Auditing 적용하기
2024/08/20 ※ JPA Auditing를 적용해보자. ▶ Timestamped📌 데이터의 생성(created_at), 수정(modified_at) 시간은 포스팅, 게시글, 댓글 등 다양한 데이터에 자주 활용된다. 따라서, 각각의 Entity의 생성 수정 시간을 매번 작성하는건 너무 비효율적이다.@Getter@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public abstract class Timestamped { @CreatedDate @Column(updatable = false) @Temporal(TemporalType.TIMESTAMP) private LocalDateTime ..
2024.08.20