@Entity 어노테이션 속성name기능JPA 에서 사용할 엔티티의 이름을 지정함기본값설정하지 않으면 클래스의 이름을 그대로 사용함다른 패키지에 이름이 값은 엔티티 클래스가 존재한다면, 이름을 지정해 충돌방지필적용시 주의기본 생성자 필수파라미터가 없는 public 또는 protected 생성자가 반드시 있어야 한다.JPA 는 엔티티 객체를 생성시 기본 생성자를 사용한다.final 클래스, enum interface , inner 클래스 사용 불가능final 필드 금지저장할 필드에 final 금지JPA 는 런타임에 엔티티 객체의 프로퍼티를 변경할 수 있어야 함 Uploaded by N2T
테스트 코드 개념 익히기테스트 코드개발자가 작성한 코드가 의도대로 동작하는지예상치 못한 문제가 없는지 확인하기 위해 작성하는 코드장점유지보수성 증대코드 수정시에 기존 기능이 제대로 작동하는지 걱정 X테스트 코드?프로젝트의 test 디렉터리에 작성일반적으로 given-when-then 패턴을 사용한다.given-when-then 패턴given테스트 실행을 준비하는 단계필요한 데이터를 설정하거나 객체 초기화when테스트를 진행하는 단계실제 코드의 메서드를 호출한다.then테스트 결과를 검증하는 단계반환된 결과나 객체의 상태를 확인한다.@DisplayName("새로운 메뉴를 저장한다.") @Test public void saveMenuTest() { // given : 메뉴를 저장하기 위한 준비 과정 fina..
AssertJ로 검증문 가독성 높이기기본적인 JUnit 검증문의 한계JUnit 을 사용한 검증문은 기댓값과 비교값이 구분이 명확치 않음.코드의 가독성이 떨어지고, 대규모 프로젝트에서 실수가 발생한 여지가 있음.Assertions.assertEquals(a + b, sum);위에서 기댓값과 비교값이 구분이 되십니까??가독성 향상assertThat(a + b).isEqualTo(sum);a + b 의 결과가 sum 과 같아야 한다는 것을 알 수 있음.주요 메서드와 사용법📌 isEqualTo(A)설명: A 값과 같은지 검증합니다.📌 isNotEqualTo(A)설명: A 값과 다른지 검증합니다.📌 contains(A)설명: A 값을 포함하는지 검증합니다.📌 doesNotContain(A)설명: A 값을 포함하지..
package com.example.springboot3.test; import com.example.springboot3.MemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springfram..
동시성을 고려하여 pessimisstic lock 을 통해 select 이후 해당 행에 대한 잠금을 수행하고, 업데이트 delete 등을 수행하였다.그렇다면,,? 서비스를 테스트할때는 어떻게 동시적으로 서비스를 수행하는 사용자에 대한 고려를 반영할 수 있을까 고민이 되었다.병렬처리를 위한 Java ExecutorService 와 Future 여러 스레드를 사용하여 비동기 작업을 수행하고 결과를 관리할 수 있도록 해주는 컴포넌트입니다.ExecutorService 와 그 역할Java 의 쓰레드 풀을 관리하는 서비스쓰레드의 생성, 실행 및 종료를 관리할 수 있다.int numberOfThreads = 100; ExecutorService executorService = Executors.newFixedThre..
출고 배송 도착 등의 로직을 별도 DB 에 구성해둘 수 있다.데이터베이스 구성데이터베이스에서는 Order와 OrderStatus 두 개의 테이블을 구성하여 주문과 주문 상태를 관리합니다.Order 테이블: 주문 관련 정보를 저장하며, ORDER_STATUS 필드를 통해 현재 주문의 상태를 기록합니다.OrderStatus 테이블: 가능한 주문 상태와 그에 대한 설명을 저장합니다. OrderStatus 테이블의 CODE_NAME 필드에 정의된 상태 값만이 Order 테이블의 ORDER_STATUS 필드에 기록될 수 있습니다.어플리케이션 로직어플리케이션에서는 ORDER_STATUS라는 ENUM 클래스를 사용하여 주문 상태를 관리합니다.ENUM 클래스: DB의 OrderStatus 테이블과 동일한 상태 값을 가..