[개발] 기록(48)
-
[2019.03.30] dSYM, Source map
IOS의 경우 Symbolication에 대한 자세한 Document https://developer.apple.com/library/archive/technotes/tn2151/_index.html Javascript의 경우
2019.03.30 -
엘라스틱 서치 Rest Client
해결1. 엘라스틱 서치 템플릿을 안쓰는 방향으로 하였다.2. 엘라스틱 서치 (유사) JPA 를 안사용 하는 방향으로 하였다.3. 엘라스틱 서치를 Rest api로 호출하기로 하였다.=> 엘라스틱 서치는 자바에서 Rest api 로 엘라스틱 서치를 호출 할 수 있도록 2가지 형태로 지원한다.=> 1. Low level REST Client=> 2. High level REST Client=> Low level REST Client 는 RestClient 로 지원하며 엘라스틱 서치에 REST API로 접근하는 방식이다.=> High level REST Client 는 HighLevelRestClient 로 지원하며 엘라스틱 서치에 접근할 때 리퀘스트를 빌더로 만들어서 API 통신 하는 방식이다. 리스폰스도 ..
2019.03.20 -
엘라스틱 서치 인덱스 동적 생성, 해쉬, 데이터 저장?
해결 createIndex(string) 이후 putMapping에 XContentBuilder로 만든 mapping 데이터를 넘기는 식으로 구현.XContentBuilder를 자동화하기 위해 class파일의 필드 이름과 필드에 적용된 Annotation을 추출하는 클래스를 만듬 문제상황1. 테스트 코드는 잘 동작하는데 프로그램은 동작하지않는다.2. 엘라스틱 서치에 Hash 데이터를 넣어야한다. 어떻게 해야하는가? => nested나 object를 사용한다는데=> 해쉬 데이터는 mapping 파일에 어떤식으로 써야하는가?=> Entity에 적용된 Annotation을 바탕으로 XContentBuilder는 해쉬 필드에 어떻게 접근할 것인가? TODO 문제상황스프링부트가 지원하는 엘라스틱 서치 데이터 저장..
2019.03.19 -
엘라스틱 서치 인덱스 동적 생성?
일반적으로 엘라스틱 서치에서 인덱스 생성은 엔티티 클래스를 하나 만들고 이를 createIndex(Entity.class) putMapping(Entity.class) 해주는 방식이다. 이게 가능한 이유는 Entity에 Document 어노테이션이 있고 이 안에 value값으로 인덱스 이름이 지정하기 때문이다 그래서 일반적으로는 하나의 엔티티에 하나의 인덱스가 맞물리게 되어있다. 주어진 문제 상황은 하나의 데이터 포맷을 여러개의 다른 이름인 인덱스에 가져다 사용하고 싶은 상황이다. 웹문서를 보니깐 이런경우 Document 어노테이션 value를 바꾸는 방법을 사용하더라. 근데 class의 어노테이션이 시시각각 바뀌는게 부작용이 있을 것 같아서 고민된다. 그래서 생각한 것이1. Create Index st..
2019.03.18 -
[2019.03.18] 용어 정리
Rollup : 완전히 똑같지 않더라도 유사한 성질을 가지는 것들을 그룹핑하는 것 GNB : Global Navigation Bar, UI용어 마일스톤 : 목표를 찾아가기 까지 중간중간의 목표지점 미국에서 어떤 지역에 가기까지 몇 마일 남았다고 돌이 박혀있는데 그것과 의미적으로 유사 정해진 마일스톤은 해당지점에서 반드시 끝나야함 IDC 이중화 하나의 IDC 가 파손됬을 때를 대비하여 복사본을 가지고 있는 것 LB에 의한 부하 분산도 가능. Data storage 와 Data base의 차이점? File server : 하드가 많이 들어간 컴퓨터 Data storage : 하드가 많이 들어간 외장 하드 Data base : 데이터 스토리지를 이용해 데이터를 저장하는 SW Data storage 는 하드웨어..
2019.03.18 -
[2019.03.16] H2와 Dialect
H2- 스프링 내장형 데이터 베이스이다.- 인메모리 데이터 베이스이다.- 용량이 1.5M 밖에 안하고 가볍다.- 웹에서 쿼리를 할 수 있는 GUI를 제공한다. (http://localhost:8080/console/)- 테스트 단계에서 사용하기에 적합하다. Hibernate Dialect- 직역하면 방언- MySQL, Oracle, H2 ... 모든 데이터 베이스의 SQL은 비슷한데 전부 미묘하게 다르다.- 프로젝트를 MySQL로 작업하다 Oracle로 바꿀 경우 현재까지 작업해온 프로젝트 내의 모든 SQL 문을 수정해야한다.- 이를 방지하기 위해 Hibernate는 dialect 를 이용하여 각각의 데이터 베이스에 대응하는 dialect를 만들어 놓았다.- 개발자는 프로젝트의 Hibernate에게 어떤..
2019.03.16