JPA의 영속성 컨텍스트
영속성 컨텍스트는 엔티티를 영구 저장하는 환경이다.
애플리케이션과 DB 사이에서 객체를 보관하는 가상의 DB 역할을 한다.
엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리하게 된다.
제네릭?
제네릭(generic)이란 데이터 타입을 일반화한다는 것을 의미한다.
제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다.
이렇게 컴파일 시에 미리 타입 검사를 수행하면
클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있고,
반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다.
컬렉션 클래스에서의 제네릭 사용 이유?
제네릭 타입은 여러 타입의 파라미터를 삽입해 객체를 생성할 수 있어 코드를 간결하게 하고 재사용성을 높인다.
동일한 기능을 하는 메서드에서 파라미터 타입만 다르게 사용할 경우, 제네릭 타입이 유용하다.
제네릭 타입의 경우 컴파일시 잘못 사용되는 타입 문제점을 제거하기 위해 강하게 타입 체크를 수행한다.
-> 컴파일 이후 런타임 단계에서 타입 문제가 발생될 가능성을 방지한다.
컴파일 단계에서 컴파일러가 타입 캐스팅을 수행해줘 불필요하게 코드에서 타입 캐스팅을 해줄 필요가 없다.