기술면접 스터디 3회차.
영속성 컨텍스트는 Entity를 영구 저장하는 환경입니다.
애플리케이션과 데이터베이스 사이에서 객체를 보관하는 논리적인 공간같은 개념입니다. 엔티티의 생명주기를 관리하고 엔티티와 DB 사이의 작업을 추적해 변경 내역을 관리합니다. 영속성 컨텍스트의 범위는 트랜잭션의 범위와 일치하며, 트랜잭션을 커밋하거나 롤백할 때 변경된 엔티티를 데이터베이스에 반영합니다. 1차캐시, 지연로딩 같은 기능으로 데이터베이스 성능을 향상시키는 장점이 있습니다.
영속성 : 프로그램이 종료되어도 데이터가 사라지지 않고 어딘가에 저장되는 것.
JPA와 Spring Data JPA의 차이점
: JPA는 표준 인터페이스이며 ORM 기술을 추상화한 것이고, Spring Data JPA는 JPA를 사용하기 편하게 만든 스프링 프레임워크의 라이브러리이다. Repository 인터페이스나 페이징, 자동으로 CRUD 작업을 처리하는 기능이 추가적으로 있다.
제네릭은 클래스나 메서드에서 사용할 데이터 타입을 외부에서 지정해주는 기법입니다. 변수를 선언할 때 변수의 타입을 지정해주듯이, 제네릭은 객체에 타입을 지정해줍니다.
컬렉션 클래스에서 제네릭을 사용하는 이유는 타입안정성을 높일 수 있기 때문입니다. 잘못된 타입의 객체가 저장되는 것을 컴파일 시점에 방지하고, 타입이 미리 지정되어있으므로 타입변환이나 타입 검사를 할 필요가 없는 장점이 있습니다.
HTTP는 암호화되지 않은 텍스트 기반 프로토콜이라 보안에 위험성이 있습니다. 하지만 HTTPS는 데이터를 암호화하고 인증서로 서버의 신원을 확인하기 때문에 HTTP보다 보안이 더 좋습니다. 그래서 인증, 결제 같은 중요한 데이터를 전송할 때는 HTTPS를 사용하는 것이 권장됩니다. HTTP는 80번, HTTPS는 443번 포트를 기본적으로 사용합니다.