본문 바로가기

전체 글161

Wrapper Class Wrapper Class Wrapper Class 개념 기본 타입의 데이터를 객체로 취급해야 하는 경우 객체형태로 포장하는 클래스를 의미 Byte, Short, Integer, Long, Float, Double, Character, Boolean 래퍼 클래스는 산술을 위해 정의된 클래스가 아니라서 인스턴스에 저장된 값을 변경 불가 비교 wrapper class는 객체이기 때문에 동등성을 비교할 때 equals 메서드를 사용하여 비교할 수 있다. Boxing & UnBoxing Boxing 기본 타입의 데이터를 wrapper class로 변환 Unboxing wrapper class를 기본 타입의 데이터로 변환 AutoBoxing & AutoUnBoxing boxing과 unboxing을 자바 컴파일러에.. 2023. 4. 2.
Transaction Propagation Transaction Propagation 개념 JPA 전파 단계 트랜잭션이 다른 트랜잭션을 실행할 경우 어떻게 처리하는지에 대한 개념 종류 REQUIRED 기본 DEFAULT로 설정되어 진행중인 트랜잭션이 있다면 해당 트랜잭션을 사용하고 없으면 생성 REQUIRES_NEW 항상 새로운 트랜잭션 생성 진행 중인 트랜잭션이 있는 경우 중지하고 새로운 트랜잭션을 생성하고 끝나면 기존 트랜잭션 실행 SUPPORTS 트랜잭션을 필요하지 않는다. 기존 트랜잭션이 있다면 사용 NOT_SUPPORTS 트랜잭션을 필요하지 않는다. 기존 트랜잭션이 있다면 중지하고 작업이 끝나면 기존 트랜잭션 다시 실행 MANDATORY 트랜잭션이 항상 필요 실행 중인 트랜잭션이 없다면 예외 발생 NEVER 트랜잭션이 항상 불필요 실행 .. 2023. 4. 1.
JPA 영속성 컨텍스트 JPA 영속성 컨텍스트 영속성 컨텍스트 개념 엔티티를 영구적으로 저장하는 환경 애플리케이션과 데이터베이스 사이에 객체를 보관하는 가상의 DB 역할을 제공 엔티티 매니저를 통해 저장 및 조회 엔티티 생명 주기 비영속 객체는 생성되었지만 영속성 컨텍스트와 관련 없는 경우 영속 영속성 컨텍스트에 저장되어 관리되는 상태 준영속 영속성 컨텍스트에 저장되었다 더 이상 관리되지 않는 상태 detach()를 통해 준영속으로 만들 수 있고, clear()나 close()를 통해 컨텐츠를 비우거나 종료해도 준영속으로 속한다. 삭제 영속성 컨텍스트와 데이터베이스에서 삭제 remove()를 통해 구현 영속성 컨텍스트 특징 1차 캐시 영속성 컨텍스트 내에 엔티티를 저장하는 공간 키는 식별자, value는 인스턴스 객체를 추가할.. 2023. 3. 31.
Stream Stream 개념 Collection과 Stream 차이 Collection은 모든 값을 메모리에 저장하는 자료 구조로 Collection에 추가하기 전에 계산이 완료되어 있어야 한다. 외부 반복을 통해 사용자가 직접 반복 작업을 거쳐 요소를 가져온다. Stream은 요청할 때만 요소를 계산하여 내부 반복을 사용하여 추출 요소만 선언하면 알아서 반복 처리한다. 스트림 요소를 따로 추가나 제거하는 작업이 불가 외부 반복 VS 내부 반복 외부 반복 Collection은 외부 반복을 사용하는데 명시적으로 컬렉션 항목을 하나씩 가져와 처리해야 하기 때문에 최적화에 불리하다. 내부 반복 Stream에서 내부 반복을 사용하는데 병렬 처리를 하면서 최적화된 순서로 처리하기 때문에 최적화에 유리하다. Stream 연산.. 2023. 3. 30.