일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Baekjoon
- db
- 그리디알고리즘
- 그리디
- 백준
- 애자일
- 애자일기법
- 코딩테스트
- 자바
- 엘라스틱서치
- 프레임워크
- 개발자
- 클린코드
- API
- 데이터베이스
- cleancode
- database
- framework
- 스프링
- Elasticsearch
- 애자일프로그래밍
- 개발
- 읽기쉬운코드
- 코딩
- ES
- 알고리즘
- Spring
- 코드
- JPA
- Java
- Today
- Total
목록CRUD (2)
시뻘건 개발 도전기
api의 종류 앞서 계속 언급되었듯이 Elasticsearch는 RESTful 방식의 api를 제공하며 json 기반으로 통신한다. 아래와 같이 엘라스틱서치에서 api를 제공한다. 인덱스 관리 api: 인덱스 관리 문서 관리 api: 문서 추가/수정/삭제 검색 api: 문서 조회 집계 api: 문서 통계 문서를 색인하기 위해서는 기본적으로 인덱스를 생성해야한다. 인덱스를 통해 입력되는 문서의 필드를 정의하고 각 필드에 알맞는 데이터 타입을 지정한다. 이 과정을 통해 효율적으로 색인이 가능하다. index vs indices 색인은 데이터가 토큰화되어 저장된 자료구조를 의미한다. 'index'를 번역하면 '색인'인데, elasticsearch에서 인덱스라는 영어를 색인과 다른 의미로 사용한다. index:..
그렇다면 영속성 컨텍스트가 왜 필요한지 알아보자. 엔티티 조회 영속성 컨텍스트는 내부에 1차 캐시라고 하는 녀석을 가지고 있다. 영속 상태의 모든 엔티티는 이 1차 캐시에 저장된다. 이해하기 쉽게 코드와 그림을 보자. Member member = new Member(); member.setId = "dotori"; em.persist(member); Member dotori = em.find(Member.Class, "dotori"); // 조회 1차 캐시 내에 @Id로 맵핑된 필드 값을 식별자를 가지고 엔티티가 저장된다. (아직 데이터베이스에 저장된 상태는 아니다.) 조회를 하게 되면 엔티티 매니저는 1차 캐시에서 해당하는 엔티티를 찾는다. 만약 1차 캐시에 없다면 데이터베이스에서 조회한다. (JPA란..