스프링31 [자바 ORM 표준 JPA 프로그래밍] 고급 매핑 (7장) 📌 상속 관계 매핑 관계형 데이터베이스에는 상속이 없다. 그나마 '슈퍼타입-서브타입 관계' 모델링 기법이 상속과 비슷하다. 즉, ORM에서의 상속 관계 매핑은 이 모델링 기법이고 3가지 방법으로 구현할 수 있다. 조인 전략 : 각각을 모두 테이블로 만들고 조회 시 조인을 사용한다. 단일 테이블 전략 : 테이블을 하나만 사용해 통합한다. 구현 클래스 테이블 전략 : 서브 타입마다 하나의 테이블을 만든다. 1️⃣ 조인 전략 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아 기본 키 + 외래 키로 사용한다. 테이블은 타입의 개념이 없어 타입을 구분하는 칼럼을 추가해야 한다. @Entity @Inheritance(strategy = InheritanceType.JOINED) // 상속의 부모 클.. 2022. 12. 12. 자바 ORM 표준 JPA 프로그래밍 : 연관관계 매핑 기초 (5장) 📌 단방향 연관관계 회원과 팀의 관계를 통해서 객체와 테이블의 차이를 보면 다음과 같다. 객체 : 단방향 관계이다. 회원은 Team 필드를 통해서 팀을 알 수 있지만, 반대로 팀은 알 수 없다. 테이블 : 양방향 관계이다. 외래 키를 통해서 서로 JOIN 할 수 있다. 참조를 통한 연관관계는 항상 단방향이다. 양방향으로 만들고 싶으면 반대쪽에서도 필드를 추가해 참조를 보관해야 한다. 하지만 이건 서로 다른 단방향 관계 2개이다. 테이블과 다르게 외래 키 하나로 양방향으로 JOIN 할 수 없다. 1️⃣ 순수한 객체 연관관계 참조를 통해서 연관관계를 탐색하는 것을 객체 그래프 탐색이라고 한다. 2️⃣ 테이블 연관관계 데이터베이스의 외래 키를 사용해서 연관관계를 탐색하는 것을 조인이라고 한다. 3️⃣ 객체 관.. 2022. 11. 18. [Backend] 트랜잭션, Transaction (1) ✍️ 학습 목표 트랜잭션 트랜잭션 격리 수준 📌 트랜잭션 트랜잭션이란? 데이터베이스의 상태를 변화시키는 작업의 단위이다. Data Manipulation Language(DML)을 사용해서 DB에 접근하는 것을 말한다. 🧷 트랜잭션 특징, ACID Atomicity : 트랜잭션이 DB에 모두 반영되거나 반영되지 않아야 한다. Consistency : 트랜잭션 이전과 이후의 데이터베이스의 상태는 동일해야 한다. Isolation : 모든 트랜잭션은 다른 트랜잭션으로부터 독립적이다. Durability : 성공적으로 처리된 트랜잭션의 결과는 지속적으로 유지돼야 한다. 🧷 트랜잭션 연산 Rollback : 작업 도중 오류가 발생하면 이전 상태로 되돌린다. Commit : 작업이 성공적으로 처리되면 데이터베이스.. 2022. 10. 13. 자바 ORM 표준 JPA 프로그래밍 : 엔티티 매핑 (4장) 🌀Entity 이 어노테이션을 붙이면 JPA가 해당 클래스를 테이블과 매핑시켜 관리한다. JPA 관리하에 놓인 클래스를 엔티티라 부른다. 🧷 속성 name : 엔티티의 이름. 디폴트는 클래스 명, 다른 패키지의 엔티티 클래스와 겹치지 않아야 한다. 🧷 주의사항 기본 생성자 : JPA는 엔티티 객체를 생성할 때 기본 생성자를 사용한다. final 클래스, enum, interface, inner 클래스에 사용할 수 없다. 저장할 필드에 final을 사용하면 안 된다. 🌀Table 엔티티와 매핑할 테이블을 지정한다. 🧷 속성 name : 매핑할 테이블 이름. 디폴트는 엔티티 이름 catalog : 데이터베이스에서 catalog를 매핑 schema : 데이터베이스에서 schema를 매핑 uniqueConstr.. 2022. 10. 6. [Security] Spring Security (2) ✍️ 학습 목표 의존성 추가 사용자 설정 권한 설정과 표현 📌 의존성 추가하기 🧷 Maven project - pom.xml org.springframework.boot spring-boot-starter-security 🧷 Gradle project - build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' 스프링 시큐리티의 의존성을 추가하면 다음과 같은 기능을 사용할 수 있다. 서버가 가동되면 스프링 시큐리티 초기화 작업과 웹 보안 설정이 이루어진다. 모든 요청이 인증되어야 자원에 접근할 수 있다. 인증 방식은 폼 로그인 방식과 httpBasic 로그인 방식을 제공한다. 기본 로그인·로그아웃 페이지(+기본 .. 2022. 10. 5. [Security] Spring Security (1) ✍️ 학습 목표 Spring Security란? Architecture 이해하기 📌 Spring Security 스프링 프레임워크에서 보안(인증, 인가)을 담당하는 스프링 하위 프레임워크이다. 시큐리티를 공부하기 위해 짚고갈 용어들이 존재한다. 🔒 보안 용어 Authentication, 인증 : 애플리케이션을 접근하는 사람이 누구인지 확인하는 절차 Authorization, 인가 : 확인된 사용자의 권한을 확인하고 부여하는 절차 Principal, 접근 주체 : 접근하려는 대상 Credential, 자격증명 : 비밀번호, 열쇠와 같은 인증을 위한 키 정리하면 스프링 시큐리티는 보호된 리소스에 접근하는 대상이 '누구'인지 확인해주고 그 '누구'에게 부여된 권한에 맞게 기능들을 이용할 수 있게 한다. ✔️ .. 2022. 10. 5. 이전 1 2 3 4 5 6 다음