이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 0. 매핑시 고려사항 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany → 실무에서 쓰면 안된다. 단방향, 양방향 테이블 : 외래 키 하나로 양쪽 조인 가능, 사실 방향이라는 개념X 객체 : 참조용 필드가 있는 쪽으로만 참조 가능, 한쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향(단반향 2개) 연관관계 주인 외래 키를 관리하는 참조 주인의 반대편 : 단순 조회만 가능 1. 다대일 [N:1] 관계 1.1 다대일 단방향 가장 많이 사용하는 연관관계 다대일의 반대는 일대다 1.2 다대일 양방향 외래 키가 있는 쪽이 연관관계 주인 양쪽을 서로 참조하도록 개발 2. ..
전체 글
우아한테크코스 5기 BE 에단 Github : https://github.com/cookienc스프링 핵심 원리 - 기본편1 아래 글은 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. 생성자 주입 생성자를 통해 외부객체를 주입(연결)하는 방법. -> 책임을 나눠 갖는다. 객체를 생성하고 연결하는 역할과 실행하는 역할이 명확히 분리시킬수 있다(DIP가 성립) 2. 의존관계 주입 (DI : Dependency Injection) 애플리케이션 실행 시점에 외부에서 생성된 실제 구현 객체를, 클라이언트와 서버의 실제 의존관계가 연결 되는 것을 의미 하나의 객체가 다른 객체의 의존성을 제공 정적인 클래스 의존관계의 변경 없이, 동적인 객체 인스턴스 의존관계를 변경 가능 2.1 정적인 의존관계 애플리케이션을 실행하지 않아도 의존관계를 쉽게 판단 가능 ex) 클래스 다이어그램 2.2 동적인 의존관계 애플..
1. 연산자(operator) 연산을 수행하는 기호 1.1 연산자와 피연산자 연산자 : 연산을 수행하는 기호 피연산자 : 연산자의 작업 대상 1.2 식과 대입연산자 식 : 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것, 끝에 ';'를 붙힌다. 대입연산자 : '=', 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장 1.3 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산(+,-,*,/)과 나머지 연산(%) 비교 연산자 > = 비교 > 논리 > 대입 단항 > 이항 > 삼항 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다. → 헷갈릴수 있으므로 괄호('(', ')')를 사용하여 우선수위를 나타내는것이 낫다. 1.5 산술 변환 두 ..
이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 1. 단방향 연관관계 1.1 객체를 테이블에 맞춰서 모델링 1.2 객체 지향 모델링(ORM 매핑) 2. 양방향 연관관계와 연관관계의 주인 2.1 양방향 매핑 단방향 → 양방향 매핑을 할 경우 테이블 연관 관계는 변화x(Join만 하면 됨) 객체의 양방향 관계는 서로 다른 단방향 연관관계 관계가 2개로 이루어져 있음 반면에 테이블에서는 외래키 하나로 양뱡향 연관관계를 가짐 2.2 연관관계의 주인(Owner) 객체의 두 관계중 하나를 연관관계의 주인으로 지정 연관관계의 주인만이 외래 키를 관리(등록, 수정) 주인이 아닌쪽은 읽기만 가능, ..
1. 변수 1.1 변수(variable)란? 단 하나의 값을 저장할 수 있는 메모리상의 공간 1.2 변수의 선언과 초기화 int age = 25; // int : 변수타입, age : 변수이름, 초기화값 : 25 1.3 변수의 명명규칙 대소문자가 구분되며 길이의 제한이 없다. 예약어(keyword)를 사용해서는 안 된다. 숫자로 시작해서는 안 된다. 특수문자는 '_'와 "$"만을 허용한다. 클래스 이름의 첫 글자는 항상 대문자로 사용한다.(변수와 메서드의 이름의 첫 글자는 소문자) 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어져 있으면 '_'로 구분한다. 2. 변수의 타입 2.1 기본형(primitive type) 자료형 저장 가능한..
이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. 엔티티 매핑의 종류 객체와 테이블 매핑 : @Entitiy, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColum 2. 객체와 테이블 매핑 2.1 @Entity JPA가 관리하는 클래스로, 엔티티라고 부른다. 테이블과 매핑할 클래스는 필수로 붙여준다. 주의사항 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final, enum, interface, inner클래스 사용 X name 엔티티 이름을 지정 기본값 : 클래스 이름 가급적 기본값 사용(중복된 클래스 이름이 있을때만 변경) 2.2 @Table 엔티티와 매핑할 테이블(데이..
이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. 엔티티 매니저 팩토리와 엔티티 매니저 고객 요청이 오면 엔티티 매니저 팩토리가 엔티티 매니저를 생산하여 DB에 접근하게 한다. 2. 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경을 의미 → 엔티티 매니저를 통해서 영속성 컨택스트에 접근할 수 있음 EntityManager.persist(entity); 논리적인 개념 3. 엔티티의 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(merged) : 영속성 컨텍스트에의해 관리되는 상태 em.persist() DB에 저장된 상태를 의미하는 것이 아니며, 커밋을 해야 DB에 저장된다. 준영속(detached) : 영속성 컨텍스트에 저장되어있다..
이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. JPA란? Java Persistence API의 약자로 자바 진영의 ORM 기술 표준을 의미한다. EJB → 하이버네이트(오픈 소스) → JPA 순으로 발전 함(자바 표준). ORM Object-relational mapping(객체 관계 매핑) 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스로 각각 설계하여 ORM 프레임워크가 중간에서 서로 매핑해준다. JPA 동작방식 애플리케이션과 JDBC 사이에서 동작한다. 1.저장 2.조회 'JPA와 객체의 패러다임의 불일치 해결'이란? 개발자가 할 일을 획기적으로 줄여줌. 신뢰도를 높여줌 JPA와 CRUD 저장 : jpa.persist(member) 조회 : Member member =..