분류 전체보기

😋 JPA

[JPA] 영속성 전이, 고아 객체 (Cascade, Orphan)

🟩 영속성 전이 (Transtive Persistence) 특정 엔티티를 영속 상태로 만드는 동시에 연관된 엔티티도 영속 상태로 만들고 싶을 때 "영속성 전이 기능"을 사용한다. 01. 영속성 전이 옵션 없이 부모 엔티티와 자식 엔티티를 저장하는 예시 부모, 자식 매핑 코드 @Entity public class Parent { @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "parent") private List children = new ArrayList(); } @Entity public class Child { @Id @GeneratedValue private Long id; @ManyToOne private Parent parent; } ..

😋 JPA

[JPA] 프록시, 즉시 로딩, 지연 로딩 - (FetchType.EAGER, FetchType.LAZY)

🟩 프록시 다음과 같은 회원 엔티티을 조회할 때 팀에 대한 정보까지 조인해서 가져오게 된다. @Entity public class Member { @Id @GeneratedValue private Long id; @ManyToOne private Team team; } @Entity public class Team { @Id @GeneratedValue private Long id; } 회원에 대한 로직을 수행할 때 팀에 대한 정보가 필요하다면 유용할 수 있다. 하지만 팀에 대한 정보가 필요없다면 비용만 증가할 뿐이다. 사실 이런 문제는 엔티티를 실제 사용하는 시점에서 데이터베이스에서 조회할 수 있도록 하면된다. 이러한 행동을 EntityManager.getReference()를 통해서 조회를 미룰 수 ..

😋 JPA

[JPA] 고급 매핑 - 테이블 매핑 정보 상속, 엔티티 매핑 정보 상속, 복합키, 식별 관계, 비식별 관계 (@Inheritance, @MappedSuperclass, @IdClass, @EmbeddableId)

🟩 데이터베이스 슈퍼타입 서브타입 관계 데이터베이스에서 슈퍼타입과 서브타입은 데이터간의 일반화와 특수화한 관계를 나타낸다. 다음과 같이 상품에 대한 상품 구분이 있을 때 다음과 같이 표현할 수 있다. 이때 상품을 슈퍼타입이라고 하고 상품 구분을 서브타입이라고 한다. 배타적 : 슈퍼타입은 많아야 단 하나의 서브타입과 관련된다. 포괄적 : 슈퍼타입은 하나 이상의 서브타입과 관련된다. 그리고 이러한 슈퍼타입 서브타입 모델을 테이블로 구현할 때 3가지 방법이 있다. 01. 각각의 테이블로 변환 상품_타입 컬럼을 통해서 어떤 상품을 나태는지를 확인하고 상품_식별자값으로 조인하여 나태낼 수 있다. 02. 통합 테이블로 변환 통합 테이블의 경우 모든 상품을 하나의 테이블로 관리하게 된다. 상품_타입을 통해서 상품을 ..

🌐 네트워크

[네트워크] 애플리케이션 계층 - DNS 서버의 동작 원리

HTTP 메시지를 만들어서 OS에게 의뢰하여 액세스 대상에게 송신하게 된다. 브라우저는 URL을 해독해서 HTTP 메시지를 만드는데 이때 URL 안에 쓰여있는 서버의 도메인명에서 IP 주소를 알아내야 한다. 🟩 도메인명과 IP 주소 01. TCP/IP 네트워크 TCP/IP 네트워크는 서브넷이라는 작은 네트워크를 라우터(router)로 접속하여 전체 네트워크를 구성하게 된다. TCP/IP 네트워크는 IP 주소로 통신 상대를 지정한다. 클라이언트가 HTTP 메시지를 외부 대상에게 보내려고 했을 때 허브가 HTTP 메시지를 받아서 라우터에게 넘겨준다. 라우터는 IP 주소를 보고 다음 상대(라우터)를 확인하고 송신한다. 이것을 계속 반복하면서 클라이언트 HTTP 메시지가 상대방에게 도착하는 방식이다. 02. 클..

😋 JPA

[JPA] 다양한 연관관계 매핑 - 다대일, 일대다, 일대일, 다대다 연관관계

🟩 엔티티 연관관계 매핑 고려할 3가지 01. 다중성 연관관계에는 다중성이 있다. 다중성은 엔티티 간의 관계에서 한 엔티티가 다른 엔티티와 어떤 관계를 맺는지에 대한 개념이다. 01-01. 다중성 종류 다대일 (N:1, @ManyToOne) 일대다 (1:N, @OneToMany) 일대일 (1:1, @OneToONe) 다대다 (N:M, @ManyToMany) 이 중에서 다대일, 일대다 관계를 가장 많이 사용한다. 다대다 관계의 경우는 잘 사용하지 않는 편이다. 02. 단방향, 양방향 테이블은 외래키 하나로 양방향으로 조회가 가능하다. 때문에 테이블에는 방향이라는 개념이 없다. 하지만 객체에서는 참조용 필드를 가지고 있다. 객체는 참조용 필드를 가진 객체만이 연관된 객체를 조회할 수 있기 때문에 방향을 가질..

😋 JPA

[JPA] 연관관계 매핑 기초 - 단방향, 양방향, 객체 그래프 탐색, 연관 관계 주인, @JoinColumn, mappedBy

🟩 단방향 연관관계 01. "객체 연관관계"와 "테이블 연관관계" 01-01. 상품(Product)과 카테고리(Category)의 관계 상품은 하나의 카테고리에 속할 수 있다. 여러 상품이 하나의 카테고리에 속할 수 있다. 상품과 카테고리는 N:1(다대일) 관계이다. 01-02. 객체 연관관계 상품과 카테고리는 필드(Product.category)로 연관관계를 맺는다. 상품과 카테고리는 단방향 관계이다. 단방향 관계인 이유 Product.category를 통해서 상품의 카테고리를 알 수 있다. Category는 어떤 상품이 존재하는지 알 수 없다. 오직 상품만이 카테고리를 알 수 있는 관계이다. 01-03. 테이블 연관관계 상품과 카테고리는 외래키(FK)로 연관관계를 맺는다. 상품 테이블과 카테고리 테이..

😋 JPA

[JPA] 필드와 컬럼 매핑 - @Column, @Enumerated, @Temporal, @Lob, @transient, @Access

🟩 필드와 컬럼 매핑 분류 매핑 어노테이션 설명 필드와 컬럼 매핑 @Column 컬럼을 매핑한다. @Enumerated 자바 enum 타입을 매핑한다. @Temporal 날짜 타입을 매핑한다. @Lob BLOB, CLOB 타입을 매핑한다. @Transient 특정 필드를 데이터베이스에 매핑하지 않는다. 기타 @Access JPA가 엔티티에 접근하는 방식을 지정한다. 🟩 @Column 어노테이션 @Column : 객체 필드(field)를 테이블 컬럼(column)에 매핑한다. @Column 속성 속성 기능 기본값 name 필드와 매핑할 테이블의 컬럼 이름 객체의 필드 이름 insertable 엔티티 저장 시 이 필드도 같이 저장한다. insertable = false : 이 필드는 데이터베이스에 저장하지 ..

☁️ AWS

[AWS] 액세스 키를 생성해서 AWS Command Line Interface에 접근하자

🟩 접근할 수 있는 다양한 서비스를 제공하는 AWS AWS에 접근할 수 있는 여러가지 방식이 있다. AWS Management Console : 비밀번호 + MFA AWS Command Line Interface (CLI) : 액세스 키(access key)로 보호된 값 AWS Software Developer Kit (SDK) : 액세스 키(access key)로 보호된 값 AWS Management Console란? AWS 서비스를 사용하기 위한 웹 기반 인터페이스이다. AWS Management Console에 접근하기 위해 "사용자 이름 + 비밀번호"으로 로그인하기도 하고 추가적인 보안을 위해서 MFA 디바이스 인증을 추가해보기도 했었다. (🔗 [AWS] IAM MFA를 이용해서 로그인 과정 추가..

☁️ AWS

[AWS] IAM MFA를 이용해서 로그인 과정 추가하기

🟩 MFA (다중 인증, MultiFactor Authentication) MFA는 액세스 보안을 강화하기 위한 추가적인 인증 단계를 요구하는 보안 메커니즘이다. 이전에 루트 계정 혹은 IAM 계정으로 로그인하는데 성공했지만 비밀번호만 탈취되지 않는다는 보장은 할 수 없다. 비밀번호만 알고 있다면 누구든지 로그인 할 수 있고 이러한 문제를 해결하고자 MFA라는 개념이 나왔다. IAM MFA의 종류는 여러가지가 있다. 이메일 인증 코드 보안 암호 질문 응답 지문 스캔 MFA 장치 🟩 MFA 인증 동작 AWS 공식 홈페이지에 있는 설명을 가져왔다. MFA 동작 과정 등록 사용자가 사용자 이름 및 암호로 계정을 생성한다. 장치 또는 물리적인 하드웨어와 같은 항목에 계정을 연결한다. 인증 MFA를 사용하는 사용..

😋 JPA

[JPA] 기본 키 매핑(@Id)과 자동 생성 전략 (IDENTITY, SEQUENCE, TABLE)

🟩 기본 키 매핑 (@Id) @Id 어노테이션은 Entity 클래스에서 사용되고, 해당 클래스의 기본 키 필드를 지정하는데 사용된다. 🤔 기본키? 데이터베이스 테이블에서 각 행을 고유하게 식별하는데 사용되는 필드라고 생각하자. 아래와 같이 사용할 수 있다. @Entity public class Member { @Id private Long id; public Member() { } } 🟩 JPA가 제공하는 데이터베이스 기본 키 생성 전략 생각해보면 데이터베이스마다 기본 키를 생성하는 방식이 다르다. 생성 방식이 다른 문제를 해결하기 위해서 JPA는 여러 기본 키 생성 전략이 존재한다. 기본 키 생성 전략을 크게 나누면 직접 할당, 자동 할당이 있다. 직접 할당은 단순히 @Id 어노테이션만을 이용하여 애플..

hyena0608
'분류 전체보기' 카테고리의 글 목록 (3 Page)