주간 랩업/[SSG] JAVA 기반 백엔드 개발 과정

[21주차] Naver Cloud Platform 과 JPA

hooooolly 2024. 10. 27. 19:39
2024/10/21

 

VPC

  • 다른 사용자의 네트워크와 간섭 없는 클라우드 상에서 논리적으로 격리된 네트워크
  • 서브넷, IP 주소 범위, 네트워크 게이트웨이, 라우팅 테이블을 이용해서 네트워크의 용도별 세분화, 맞춤형 네트워크 환경을 구성

서브넷

  • IP 주소를 작은 범위의 네트워크로 분할하는 것
  • 서브넷으로 나누어서 네트워크 관리를 더욱 쉽게 하고 서브넷 단위 보안그룹을 설정해서 보안을 강화할 수 있는 장점
  • IP 서브넷은 서브넷 마스크를 사용하여 식별

IPv4

  • 총 32bit, 8bit씩 4개의 옥텟

IPv6

  • 총 128bit, 16bit 씩 8개의 필드 

Bastion Host 서버 및 private 서버 생성하기

  • Termius를 통해서 Bastion Host 서버에 SSH 접근을 한다
  • Private subnet에 접근하기 위해서 NAT 게이트웨이를 생성한다 (일종의 방화벽과 같은 역할로 NAT를 통해서만 private 접근 가능)
  • 가용존을 2개 사용해서 한 쪽 가용존에 문제가 생겼을 때에도 서비스가 정상 동작하도록 한다 (이중화 개념)

 

NACL과 ACG

 

 

 

2024/10/24

 

JPA의 엔티티 상태 변화에 따른 생명주기 흐름

  1. 엔티티 member 에 대한 CRUD 요청이 들어온다
  2. 엔티티 매니저를 통해 영속성 콘텍스트로 엔티티를 관리한다
  3. 엔티티 매니저 팩토리를 생성하고 팩토리는 엔티티 매니저를 생성한다
  4. 엔티티 매니저는 데이터베이스에 연결이 필요할 때 커넥션 풀을 사용하여 데이터베이스에 접근한다
  5. 비영속 상태의 member 엔티티를 persist() 메서드를 호출하여 영속성 콘텍스트에 등록한다 (영속화)
  6. 쓰기 지연(SQL 저장소)에 쿼리문을 모아둔다
  7. 엔티티의 변경 요청이 들어오면 JPA의 변경 감지 Dirty Checking이 동작하여 영속 상태의 엔티티가 변경되었는지 자동으로 감지한다
  8. 트랜잭션이 커밋될 때 쿼리문이 실행되고 flush() 메서드가 자동으로 호출되어 영속성 콘텍스트의 변경사항을 데이터베이스에 동기화한다 (데이터베이스에 반영)
  9. 트랜잭션 종료 후 영속성 컨텍스트에서 엔티티가 분리되어 비영속 상태가 된다.
  10. 작업이 끝나면 `close()` 메서드를 호출하여 엔티티 매니저를 종료하고 영속성 콘텍스트를 정리한다

 

2024/10/25

취업 특강