전체 글92 [ElasticSearch] 문자열 정렬 ElasticSearch에서 employee 1부터 employee 20000까지 총 2만개의 데이터를 업데이트 했습니다.그리고 id를1. 'employee'라는 키워드로2. id.keyword로 정렬하도록3. 상위 5개만{ size: 3, query: { bool: { filter: { term: { name: 'jordan', }, }, }, }, aggs: { employees_with_name_Jordan_per_company: .. 2024. 8. 28. [ElasticSearch] 내부 구조와 동작 원리 역인덱스와 인덱스 용어역인덱스(Inverted Index): 용어를 문서와 그 위치에 매핑합니다. 이는 용어를 빠르게 찾고 그 용어가 포함된 문서를 식별하는 데 유용합니다. 예를 들어, "Winter is coming"이라는 문서가 있을 때, 'winter', 'is', 'coming' 각각의 단어를 문서와 연결하여 인덱스를 생성합니다.예시: "Winter is coming." -> {'winter': [1], 'is': [1, 2], 'coming': [1]}간단한 검색: 여러 용어로 검색할 때 각 용어의 발생 위치를 찾아 AND 검색의 경우 교집합을, OR 검색의 경우 합집합을 계산합니다.예시: 'Winter' AND 'coming' -> {'winter': [1], 'coming': [1]}의 교집.. 2024. 7. 12. [ElasticSearch] 개요 및 주요 기능 요약 Elasticsearch 개요 및 주요 기능 요약데이터 저장 및 인덱싱분산 문서 저장소: Elasticsearch는 복잡한 데이터 구조를 JSON 문서로 직렬화하여 저장합니다.실시간 인덱싱: 문서 저장 시 인덱싱되어 1초 이내에 검색 가능.역인덱스: 고속 풀 텍스트 검색을 지원하며, 문서 내 모든 고유 단어와 해당 단어가 포함된 문서를 식별.인덱스와 필드인덱스: 최적화된 문서 컬렉션으로, 각 문서는 키-값 쌍으로 이루어진 필드의 모음.전용 데이터 구조: 텍스트 필드는 역인덱스에, 숫자 및 지리 필드는 BKD 트리에 저장.스키마리스: 동적 매핑을 통해 문서 필드를 자동으로 감지 및 추가.수동 매핑: 사용자가 매핑을 정의하여 필드 저장 및 인덱싱 방식 제어 가능.검색 및 분석 기능REST API: 클러스터 .. 2024. 7. 12. [Spring] 카카오 OAuth 소셜로그인 구현(사용자 추가 동의 포함) 클라이언트 측은 리액트를 사용한다.이에 SpringBoot에서 OAuth 방식으로 RestApi 앱키를 이용해 로그인을 구현했다.사실 카카오 로그인은 꽤 여러번 구현 경험이 있었지만1. 매번마다 소셜로그인 방식이 달랐고(OAuth, SDK 등),2. 예전에는 사용자 이메일을 필수 동의 항목으로 받아와 데이터베이스 pk값으로 두는 방식으로 개발을 했었는데,현재는 사용자 이메일을 받아올 수 없고 사용자 카카오Id를 받아오는 방식으로 바뀌며 기존에 쓰던 카카오 로그인 코드 재활용을 못하게 됐고3. 오늘 카카오 로그인을 구현하며 배운 새로운 사실은..사용자에게 동의 항목을 받아올 때, 추가 항목이 있다면( 나는 알림톡 기능을 구현하고자 알림톡 전송, 캘린더 일정 생성 등 추가 동의 항목을 설정했다. ) 기존 카.. 2024. 6. 27. 데이터베이스: SQL과 NoSQL SQL 데이터베이스 SQL 데이터베이스는 정확하고 엄격한 데이터 구조를 가지고 있어, 마치 데이터베이스와의 의사소통을 위해 잘 정의된 언어를 사용하는 것과 같습니다. 이는 데이터베이스와의 통신을 명확하고 예측 가능하게 만듭니다. [장점] 정확한 데이터 구조: 데이터의 일관성과 정확성을 보장합니다. 복잡한 쿼리 지원: 데이터 관계를 효율적으로 관리하고 복잡한 데이터 분석을 가능하게 합니다. 트랜잭션 관리: 데이터의 무결성을 유지하는 데 필수적인 ACID 속성을 지원합니다. [단점] 확장성의 제한: 수평 확장이 어렵고 주로 수직 확장(서버의 성능 향상)에 의존합니다. 스키마 변경의 어려움: 초기에 정의된 데이터 구조의 변경이 까다롭습니다. [적합한 상황] SQL 데이터베이스는 금융 거래, 회계 시스템 등 엄.. 2024. 4. 10. 카카오소셜로그인에 관하여.. 예전부터 카카오 소셜로그인이나 그외 구글, 네이버, 애플 등의 소셜로그인을 구현할 때, 인가 토큰을 받고, 해당 토큰을 통해 사용자이름, 닉네임, 이메일, 연락처, 프로필 이미지와 같은 값들을 property로 받아와 사용자의 email을 pk로 user 엔티티를 구성했었다. 근데 24년 1월 2월 프로젝트 중, 카카오톡 소셜 로그인 기능을 구현하다보니 넘겨받는 property 정보가 카카오톡 기준 닉네임과 프로필 이미지 만으로 제한되는 문제가 발생했다. 그 이상의 정보를 사용자 동의를 통해 얻어내기 위해서는 사업자 번호(였나?)가 필요했다. 하지만 닉네임은 사용자의 고유값이 아니기 때문에 해당 정보를 pk로 처리할 수 없어 로그인 기능을 수정하고 수정하고 또 수정하다가 결국은 자체 로그인으로 구현을 했.. 2024. 3. 22. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음 반응형