본문 바로가기

STUDY

(53)
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 고급 매핑 인프런 - 자바 ORM 표준 JPA 프로그래밍 (김영한님) 상속관계 매핑 관계형 데이터베이스는 상속 관계가 없음 객체의 상속 구조를 DB의 슈퍼타입 서브타입 관계로 매핑 상속관계 매핑 방법 슈퍼타입-서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 -> 조인 전략 통합 테이블로 변환 -> 단일 테이블 전략 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 주요 어노테이션 @Inheritance(strategy = InheritanceType.XXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 @DiscriminatorColumn(name = "DTYPE") DiscriminatorVal..
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 다양한 연관관계 매핑 인프런 - 자바 ORM 표준 JPA 프로그래밍 (김영한님) 연관관계 매핑 시 고려사항 3가지 다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany (실무에선 사용하지 말기) 단방향, 양방향 테이블 외래키 하나로 양쪽 조인 가능 방향의 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향 (단방향 2개) 연관관계의 주인 (양방향) 객체 양방향 관계는 A->B, B->A 처럼 참조가 2개 둘 중 테이블의 외래키를 관리할 곳을 정해야 함 연관관계의 주인 = 외래키를 관리하는 참조 주인이 아닌 쪽은 단순 조회만 가능 1. 다대일 [N:1] 다대일 단방향 가장 많이 사용하는 연관관계 다대일..
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 연관관계 매핑 기초 인프런 - 자바 ORM 표준 JPA 프로그래밍 (김영한님) 1. 단방향 연관관계 객체의 참조와 테이블의 외래키를 매핑 Member(1)와 Team(M)은 일대다 관계 테이블 연관관계 테이블은 외래키로 조인을 사용해 연관된 테이블을 탐색 객체 연관관계 객체는 참조를 사용해서 연관된 객체를 탐색 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; private int age; // 연관 관계 설정 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; } Team team = new Team(); team..
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 엔티티 매핑 인프런 - 자바 ORM 표준 JPA 프로그래밍 (김영한님) 엔티티 매핑 1. 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리 JPA를 사용해 테이블과 매핑할 클래스에 @Entity 어노테이션 추가 기본 생성자 필수 final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X @Table @Table은 엔티티와 매필항 테이블 지정 2. 데이터베이스 스키마 자동 생성 운영에선 사용하지 말고, 개발에서만 사용할 것!! DDL을 애플리케이션 실행 시점에 자동 생성 데이터베이스 방언을 활용해 데이터베이스에 맞는 적절한 DDL이 생성됨 속성 hibernate.hbm2ddl.auto 옵션 설명 create 기존 테이블 삭제 후 다시 생성..
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 영속성 관리 인프런 - 자바 ORM 표준 JPA 프로그래밍 (김영한님) 영속성 관리 * 영속성 컨텍스트 Entity를 영구 저장하는 환경 사용자 요청이 오면 Entity Manager 생성 EntityMapager.persist(entity); persist 호출 = 영속화 (객체를 DB에 저장하지 않고, 영속화 컨텍스트에 저장) Entity Manager를 통해 영속성 컨텍스트에 접근 * 엔티티의 생명주기 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 영속 (managed) 영속성 컨텍스트에 관리되는 상태 EntiyManager em..
Restful API REST (Representational State Transfer) ★ REST란? - 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 - 즉, 자원(resource)의 표현(representation)에 의한 상태 전달을 일컫는다 * 자원: 해당 소프트웨어가 관리하는 모든 것 ex) 문서, 그림, 데이터, 해당 소프트웨어 자체 등 * 표현: 그 자원을 표현하기 위한 이름 ex) DB학생 정보가 자원일 때, "students"를 자원의 표현이라고 함 * 상태(정보) 전달: 데이터가 요청되어지는 시점에서 자원의 상태를 전달 ex) JSON이나 XML을 통해 주고 받는 것이 일반적 - ROA(Resource Oriented Architecture)를 따르는 웹 서비스 아키텍처..
SQL 기본 문법 - DML SQL - DML (Data Manipulation Language SELECT, INSERT, UPDATE, DELETE ​ SELECT 데이터 조회 SELECT [DISTINCT] 속성_이름 FROM 테이블_이름 [WHERE 조건] [GROUP BY 속성_이름 [HAVING 그룹조건]] [ORDER BY 속성_이름 [ASC | DESC]]; DISTINCT 검색 결과에 중복되는 값이 있는 경우 한번만 표현하도록 하는 옵션 (생략 시 중복된 값이 모두 표시) FROM 검색하고자 하는 속성이 있는 테이블 이름을 기술 WHERE 검색에 필요한 조건 기술 GROUP BY 한 속성값을 그룹으로 분류하고자 할 때 사용 HAVING GROUP BY에 의해 그룹으로 분류한 후 조건을 제시할 때 사용 ORDER BY..
Github 사용법 01. 소프트웨어 형상 관리 (Software configuration management) ① 소프트웨어 파일들의 변경 내역을 추적할 수 있게 한다 ② 언제 어떤 파일들이 생성되고 변경되었는지 알 수 있게 한다 ③ 이전 개발 버전의 존재했던 파일들을 확인하고 이전 버전의 파일들로 회귀할 수 있도록 한다 ④ 변경된 파일들이 문제를 일으킨다면 문제를 일으키는 변경 자체를 취소하는 것이 가능하다 ⑤ 여러 개발자들의 개발 내용을 병합하는 것이 가능하다 ⑥ 형상관리 도구들의 예: CVS, Git 이 중 Git에 대해 알아보자 ​ ​ ​ 02. Git 1. Git이란? - 분산형 버전 관리 시스템(DVCS)으로 Open Source Software이고 많은 사람들이 함께 협업하여 소프트웨어를 개발할 때 유용하다 ..