gradle설정파일에 ElasticSearch버전과 호환이 되는 Spring-Data-Elasticsearch 설정을 해줍니다. ElasticSearch 7.17.12를 써서 그에 맞는 버전으로 설정을 해줬습니다. implementation 'org.springframework.data:spring-data-elasticsearch:4.4.12' //elasticsearch Application.yml 설정파일에 ElasticSearch와 연결할 host와 port번호를 설정해줍니다. spring: elasticsearch: host: #host port: 9200 High Level REST Client를 사용해 elasticsearch와 연결을 설정합니다. @Configuration @EnableEl..
프로젝트를 진행하는 중 검색한 지역을 기준으로 인기 지역 TOP5의 랭킹을 구현해야했다. 지역을 검색할 때 마다 데이터가 계속 업데이트되고 , Redis의 Sorted Set을 이용하면 랭킹을 쉽게 구현할 수 있을거 같아 Redis를 이용해 인기 지역 TOP5 랭킹을 구현했다. 하지만 Redis는 특성 상 같은 점수를 중복처리를 하지않고, value값으로 다시 정렬하기에 동점데이터가 있을때, 따로 처리를 해줘야한다. 내가 동점처리한 방법은 Map 자료구조를 이용해 score값을 기준으로 다시 검색데이터를 분류해 같은 score값을 가진 데이터를 카운트 해준뒤, reverseRange()를 이용해 동점처리 된 데이터도 공동순위에 들어가게 구현하였다. 지역을 검색할때마다 해당 검색어(지역)을 value에 저..
목차 GC의 정의 GC의 동작원리 - Mark and Sweep GC의 동작과정 Heap 메모리 구조 Minor GC 과정 Major GC 과정 GC의 정의 자바 애플리케이션에서 JVM Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 자동으로 삭제해 관리해 주는 작업을 의미한다. 위의 작업을 담당하는 것을 가비지 컬렉터라고 하고 해당 작업을 GC라고 한다. 참조되고 있는지에 대한 개념을 reachability라고 하고, 참조되면 reachable, 참조되지 않으면 unreachable라고 한다. GC는 unreachable한 객체들을 garbage라고 인식하게 된다. C와 C++와 같은 언어는 메모리를 할당하고 직접 해제를 해야 하지만,자바에서는 GC를 이용해 개발자들이 ..