일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- DiscriminatorColumn
- Amortized Analysis
- 분할상환분석
- Embeddable
- ROLLBACK
- JPA
- 순수jpa
- relational database
- 플러시
- relational DB
- Spring
- 영속성전이
- 엔티티 매핑
- Algorithm
- 즉시로딩
- commit
- 지연로딩
- 관계형 데이터베이스
- 값타입
- MappedSuperclass
- 정렬
- Flush
- fetch join
- DB
- 고아객체
- DiscriminatorValue
- n+1문제
- 영속성 컨텍스트
- 페치조인
- Spring Data JPA
- Today
- Total
목록전체 글 (27)
Jun's note
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CpGWI/btrrq0tl9oy/usyZxL7Io0QTOHokHDSKS1/img.png)
1. 다대일 가장 많이 사용하는 연관관계 다대일의 반대는 일대다 다쪽이 외래키(columnjoin) 2. 일대다 일대다 단방향은 일대다(1:N)에서 일(1)이 연관관계의 주인 항상 다(N) 쪽에 외래 키가 있다. 객체와 테이블의 차이 때문에 반대편 테이블의 외래 키를 관리하 는 특이한 구조 단점 엔티티가 관리하는 외래 키가 다른 테이블에 있다. 연관관계 관리를 위해 추가로 UPDATE SQL 실행 일대다 단방향(양방향) 매핑보다는 다대일 양방향 매핑을 사용하자 3. 일대일 일대일 관계는 그 반대도 일대일 외래키를 두 테이블 중 하나로 고를 수 있다. 다대일(@ManyToOne) 단방향 매핑과 유사 다대일 양방향 매핑 처럼 외래 키가 있는 곳이 연관관계의 주인 (반대편은 mappedBy 적용) 외래키 설정..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zhlug/btrrpmw8Rdm/IwTuWttO4NwsuGHg90kfh1/img.png)
1. 엔티티 매핑 소개 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column (엔티티 속성) 기본 키 매핑: @Id (식별자) 연관관계 매핑: @ManyToOne,@JoinColumn 위 어노테이션을 적어야 JPA가 관리할 수 있다. 잊지말고 적기!! 위에서 말한 4가지 엔티티 매핑에 대해 정리해본다. 2. 객체와 테이블 매핑 @Entity JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 @Table 3. 필드와 컬럼 매핑 @Column @Enumerated EnumType.STRING 사용하기!!! (EnumType.ORDINAL를 사용하면, 정의된 숫자로 저장되기 때문에 나중에 데이터끼리 혼란을 줄 수 있음, 그리고 ORDINAL이 기본값이기 때문에 무조건..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TpxRq/btrqAVUDDf4/jbDB3SfJJ067ojk4VdU87K/img.png)
JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 1. 영속성 컨텍스트란? “엔티티를 영구 저장하는 환경”이라는 뜻 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 EntityManager.persist(entity); (-> 이를 통해 영속상태가 됨) JPA 안에 존재 2. 영속성 컨텍스트 이점 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연 변경 감지(Dirty Checking) em.update() 는 없음. 대신 set메서드를 통해 값을 수정 스냅샷을 통해 값이 변경 되었는지 감지한다. (스냅샷에는 가장 처음 값이 저장됨) 스냅샷과 값이 다르면, 3번 과정인 update 쿼리를 쓰기 지연 SQL 저장소에 생성한다. 지연 로딩(Lazy Loadi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rkNN7/btrqAbpB3lb/VFOs0b0VPNERdZl9WPhTa0/img.png)
JPA에 대해 자세히 알기전에 ORM, JDBC와의 관계를 정확히 알고 넘어가야 그 다음 내용도 이해하기 쉽다. 이전 포스팅에 JPA의 정의와 개념, ORM, JDBC에 대해 정리했다. 지금부터는 JPA에 대한 자세한 내용을 정리한다. 1. JPA 동작 과정 JPA는 애플리케이션과 JDBC 사이에서 동작 JPA가 DB에 값을 저장할때 JPA가 DB로부터 값을 조회할때 2. JPA 장점 1. SQL 중심적인 개발 -> '객체' 중심으로 개발 Java에서 객체 중심으로 개발하고 이를 DB에 객체 형태로 저장하고 싶은데, JPA를 사용하면 이 문제가 해결된다. 2. 생산성 CRUD가 간단하게 구현된다. 저장: jpa.persist(member) 조회: Member member = jpa.find(memberI..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5v1nS/btrqFpl1ckk/zyfIAgoT20N0OpvWSNjbD1/img.png)
JPA 강의를 듣다가, 관계형 데이터베이스에 대해 잠깐 언급된 적이 있다. 관계형 데이터베이스를 정확히 알아보고자 이 글을 쓰게 되었다. 관계형 테이터베이스란 무엇일까? 1. 관계형 데이터베이스(relational database) 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타내는 데이터베이스이다. 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다. 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다. 2. 관계형 데이터베이스의 Relation 구조 릴레이션(relation): 데이터들을 표로 표현한 것 (=table, entity) 릴레이션은 스키마와 인스턴스로 구성된다. 스키마: 속성(attribute..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDy8iX/btrqBHm9wGP/HvzPn6tF6z4vunw0jBfKBK/img.png)
JPA (Java Persistence API) 자바 ORM 기술에 대한 표준 명세로, JAVA에서 제공하는 API이다. (순수 JPA를 의미) (객체를 DB에 매핑) 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. ORM이기 때문에 자바 클래스와 DB테이블을 매핑한다. (sql을 매핑 x 즉 sql 직접 짜는것이 아님) ORM의 한 종류이다 (JAVA기반) 그럼 ORM은 무엇일까? ORM (Object-Relation Mapping, 객체-관계 매핑) Object - 매핑 - DB 데이터 객체를 디비에 자동으로 매핑해준다. (매서드로 데이트를 조작할 수 있고, 객체간 관계를 바탕으로 sql을 자동으로 생성함) 객체를 통해 간접적으로 디비 데이터를 다룬다. 종류: JPA..
1. 기수정렬 개념
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baRj7q/btrpIysRfCm/NdnKyp7kXLpkaSk7Kclkfk/img.png)
1. 합병정렬 정의 분할 정복 알고리즘의 하나로, 더 이상 쪼개지지 않을때까지 작은 크기로 분할하여, 작은 배열끼리 비교하는 과정을 수행해 하나의 배열로 합치는 정렬이다. 과정 1. 원래 배열을 두 개의 작은 배열로 분할하여 더 이상 쪼개지지 않을 때까지 재귀적으로 수행한다. 2. 가장 작은 크기의 배열부터 시작하여, 두 개의 배열을 서로 비교하면서 오름차순(또는 내림차순)으로 정렬해 합친다. 합병정렬 예제 2. 합병정렬 특징 - 장점 안정적인 정렬 방법 (입력한 값이 무엇이든 간에 정렬되는 시간은 O(nlog2n)으로 동일하다) - 단점 배열 크기가 큰 경우에는 이동횟수가 많아 시간적 측면에서 크게 낭비된다. 3. 시간 복잡도 - Best Case O(nlog2n) - Worst Case O(nlog2..