목록전체 글 (42)
Develog

학습 목표 Hamcrest를 사용해야 하는 이유를 이해할 수 있다. Hamcrest의 기본 사용법을 이해할 수 있다. Hamcrest란? Hamcrest는 JUnit 기반의 단위 테스트에서 사용할 수 있는 Assertion Framework이다. Hamcrest를 사용하는 이유 Assertion을 위한 매쳐(Matcher)가 자연스러운 문장으로 이어지므로 가독성이 향상 된다. 테스트 실패 메시지를 이해하기 쉽다. 다양한 Matcher를 제공한다. JUnit Assertion을 사용한 단위 테스트에 Hamcrest Assertion 적용해보기 ✅ JUnit에서의 Assertion import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api...

학습 목표 테스트를 왜 해야하는지 이해할 수 있다. 단위 테스트가 무엇인지 이해할 수 있다. JUnit의 기본적인 사용법을 이해할 수 있다. JUnit을 사용하지 않고 비즈니스 로직에 단위 테스트를 적용 할 수 있다. 슬라이스 테스트가 무엇인지 이해할 수 있다. Spring에서의 슬라이스 테스트 방법을 알 수 있다. Hemcrest의 기본적인 사용법을 이해할 수 있다. Mockito의 기본적인 사용법을 이해할 수 있다. 단위 테스트란? 테스트를 해야 되는 이유 애플리케이션을 사용할 때 발생할 수 있는 에러를 최소화 할 수 있는 방법이 있다. 바로 애플리케이션에 대한 테스팅이다. 매번 수작업으로 애플리케이션을 실행시키고, Postman을 열어서 HTTP 요청을 보낸다는 것은 아무래도 비효율적이고, 불편하다..

JTA를 이용한 분산 트랜잭션 적용 때때로 서로 다른 데이터소스를 사용하는 한 개 이상의 데이터베이스를 하나의 트랜잭션으로 묶어서 처리해야 할 경우가 있는데 이를 분산 트랜잭션 이라고 한다. 백업을 위해 특정 데이터베이스의 데이터를 다른 데이터베이스로 복제하는 방법은 여러가지가 존재한다. 같은 종류의 데이터베이스일 경우, 복제(Replication) 기능을 이용해서 데이터를 백업할 수 있다. 다른 종류의 데이터베이스 간에 사용할 수 있는 방법은 애플리케이션의 스케쥴링 기능을 통해 주기적으로 원본 데이터베이스의 데이터를 다른 데이터베이스로 백업하는 기능을 구현할 수 있으며, 이런 기능들을 기본적으로 지원하는 Apache NiFi 같은 오픈 소스 기술을 사용할 수도 있다. 두 개의 데이터베이스 설정 두 개의..

학습 목표 트랜잭션(Transaction)이 무엇인지 이해할 수 있다. 트랜잭션(Transaction) 경계가 무엇인지 이해할 수 있다. 트랜잭션이 적용되지 않은 애플리케이션에서 어떤 문제점이 발생할 수 있는지 이해할 수 있다. Spring에서 지원하는 트랜잭션 방식을 이해할 수 있다. 샘플 애플리케이션에 트랜잭션을 적용할 수 있다. 트랜잭션(Transaction)이란? 사례 1 회원이 커피 주문 앱으로 카페라떼 두 잔을 선택하고 결제 버튼을 누른 후, 주문이 진행되는 중에 네트워크 오류로 인해 결제를 완료하는데 실패했다고 치자 그런데, 회원이 주문한 주문이 정상적으로 데이터베이스에 등록이 되고, 주문한 커피 수 만큼의 스탬프가 찍혔다. 이 경우, 카페를 운영하는 쪽에서는 판매 수익을 얻지 못하는 손해를..

학습 목표 Spring Data JPA가 무엇인지 이해할 수 있다. Spring Data JPA를 이용해서 데이터의 저장, 수정, 조회, 삭제 작업을 할 수 있다. JPA의 JPQL을 Spring Data JPA에서 사용할 수 있다. Spring Data JPA를 통한 데이터 액세스 계층 구현 Spring Data JPA란? Spring Data 패밀리 기술 중 하나로써, JPA 기반의 데이터 액세스 기술을 좀 더 쉽게 사용할 수 있게 해주기때문에 데이터 액세스 계층의 구현에 있어 여러분의 개발 시간을 단축 시켜줄 것이다. JPA vs Hibernate ORM vs Spring Data JPA JPA의 경우 이름 자체는 Jakarta Persistence API(또는 Java Persistence API..

엔티티 간의 연관 관계 매핑 연관 관계 매핑이란? 테이블 설계, 클래스 다이어그램 설계를 통해 회원과 주문, 주문과 커피와의 관계를 도출했었던 것과 같이 엔티티 클래스 간의 관계를 만들어주는 것이 바로 연관 관계 매핑이다. 연관 관계 매핑은 참조하는 방향성을 기준으로 생각했을때 단방향 연관 관계와 양방향 연관 관계로 구분할 수 있다. 그리고, 엔티티 간에 참조할 수 있는 객체의 수에 따라서 일대다(1:N), 다대일(N:1), 다대다(N:N), 일대일(1:1)의 연관 관계로 나눌 수 있다. 단방향 연관 관계 Member 클래스가 Order 객체를 원소로 포함하고 있는 List 객체를 가지고 있으므로, Order를 참조할 수 있지만 Order 클래스는 Member 클래스에 대한 참조 값이 없으므로 Order..