분류 전체보기
-
2편: 유사도 검색과 벡터 인덱싱Open Source/VectorDB 2025. 6. 5. 16:03
벡터 데이터베이스의 핵심 기능 – 유사도 검색벡터 DB의 가장 중요한 기능은 비슷한 데이터를 빠르게 찾는 것입니다. 이를 유사도 검색(similarity search) 혹은 근접 이웃 검색(nearest neighbor search)라고 합니다.예를 들어, 문장 “벡터 DB 배우고 싶어요”의 벡터를 기준으로, 비슷한 의미의 다른 문서나 문장을 찾아 주는 것 입니다.유사도 계산 방식유사도를 계산할 때는 보통 아래 세 가지 방식이 많이 쓰입니다.코사인 유사도 (cosine similarity)두 벡터의 방향(각도)을 기준으로 유사도를 계산합니다.$\cos(\theta) = \frac{{\mathbf{v}_1 \cdot \mathbf{v}_2}}{{|\mathbf{v}_1| |\mathbf{v}_2|}}$유클..
-
1편: 벡터 데이터베이스의 개념과 필요성Open Source/VectorDB 2025. 6. 3. 12:00
벡터 데이터베이스, 뭘까?요즘 벡터 데이터베이스 를 적용해보려는 업무를 하는데 사실 저도 정확히 뭘 하는 건지 잘 몰라서 정리를 해보려고 합니다.이 글에서는 벡터 데이터베이스의 개념과 필요성만 간단히 정리해두고, 다음 글부터는 조금 더 기술적인 내용으로 들어가 볼 예정입니다.벡터란 무엇인가?물리학에서의 벡터물리학에서는 벡터를 크기(길이)와 방향을 가진 물리량으로 봅니다.예: 속도 벡터(방향 + 크기), 힘 벡터(방향 + 크기)보통은 화살표로 나타내며, 위치 이동(변위)도 벡터로 표현됩니다.수학적 표현:2D: $\mathbf{v} = (x, y)$3D: $\mathbf{v} = (x, y, z)$수학에서의 벡터수학에서는 벡터를 성분의 나열로 생각합니다.예: $\mathbf{v} = (v_1, v_2, \d..
-
[Spring Boot3 + Jaeger] 스프링부트3에 예거 설정 추가 하는 방법Programming Language/Java 2024. 7. 31. 10:47
Jaeger 는 Uber Technologies 에서 개발한오픈소스 분산 트레이싱 시스템으로,마이크로서비스 아키텍처에서 서비스 간의 트랜잭션을추적하고 분석 할 수 있도록 해준다. 최근 회사에서 프로젝트를 진행하면서여러 서비스 간의 API 흐름을 추적하고 모니터링하기 위해Jaeger 를 사용하기로 했다. 내가 적용한 서비스는 Spring Boot 3.x 로 개발하고 있는데,Jaeger 를 적용하는 과정에서 Spring Boot 2.x 버전에서적용하는 방법과 차이가 있어서 정리를 하려고 한다. 사용한 도구Gradle 8.5Java 21Spring Boot 3.xJaeger (all-in-one) 1.59 io.opentracing.contrib:opentracing-spring-jaeger-web-start..
-
[ConfigMap] edit 시 파일 내용이 문자열로 변환되는 표현 버그 수정 방법Open Source/Kubernetes 2024. 4. 3. 11:37
업무를 하면서 쿠버네티스 ConfigMap 을 많이 사용하게 되는데 사내 솔루션을 여기저기 배포하면서, 항상 드는 의문점이 있었다. 분명히 예쁘게(pretty) 구성해서 configmap 을 적용했는데, kubectl describe 하면 예쁘게(pretty) 보이던 콘텐츠 내용들이 이상하게 kubectl edit 을 하면 하나의 문자열로 합쳐지는 것이다. 업무에 바쁘다보니 해결책이 쉽게 나오지 않아서 그냥 사용했었다. 이번에 새로 입사한 동료가 이 부분에 대해서 질문을 하면서, 이 문제를 해결하기 위해 찾아보았다. 다행히도, 아주 간단한 원인과 해결책을 알게 되었다. 같은 문제를 겪고 잇는 다른 분들에게 도움이 되길 바란다. 문제의 표현 버그 아래 내용처럼 configmap 을 구성해서 적용했다. ap..
-
[Java] CSV 를 Excel 로 변환하는 Java 코드 예제Programming Language/Java 2023. 2. 8. 16:52
최근 java 를 이용해서 .csv 파일을 Excel 로 변환 해야하는 일이 있었다. 그런데 단순히 csv 파일을 excel 의 하나의 sheet 로 변환하는 예제나 라이브러리는 몇 개 있었는데, 하나의 엑셀에 특정 컬럼들을 특정 시트에 작성하는 형태의 라이브러리 는 잘 나오지 않아서 개발 한 것을 적어둔다. 1. 라이브러리 사용법 - 라이브러리 사용법에 대한 README.md 1.1. settings.xml 설정 github ${github 유저명} ${github 토큰} 1.1. 디펜던시 설정 pe.fwani.convert csv-to-excel 0.0.1-java11-SNAPSHOT github-fwani-releases https://github.com/fwani/fwani-maven-repo/r..
-
[Kubernetes] kubectl 기본 사용 예제Open Source/Kubernetes 2023. 1. 13. 14:34
kubectl 명령어 중 현업에서 자주 사용하고 있는 명령어 정리 등록된 것 확인 kubectl get ... -n namespace 를 지정하지 않으면 default 가 기본 네임스페이스가 된다. # deploy 확인 kubectl get deploy -n dev # service 확인 kubectl get service -n dev kubectl get svc -n dev # 축약어 사용 # config-map 확인 kubectl get configmap -n dev kubectl get cm -n dev # 축약어 사용 # 한번에 여러개 확인 (pod, svc, cm) kubectl get pod,svc,cm -n dev yaml 등 파일을 이용해 k8s 에 적용 하기 먼저 deploy...
-
[CI/CD] CI/CD 적용 예제CICD 2023. 1. 12. 18:33
CI/CD 정리 CI/CD 는 어플리케이션 개발단계(빌드, 테스트, 배포) 를 자동화 하는 것을 말한다. CI (Continuous Integration) 지속적인 통합 새로운 커밋이 푸시되면 빌드 및 테스트가 동작하고, 문제가 발생하지 않았는지 자동으로 알려주는 과정 CD (Continuous Deployment) 지속적인 배포 코드 변경 사항이 CI 를 거쳐 main 에 머지가 되면, 자동으로 배포해주는 과정 CI/CD 에 사용한 툴 git: 코드 히스토리 기록 github: 커밋 푸시 / PR 관리 jenkins: 이미지 빌드 / 테스트 / 배포 스크립트 푸시 docker: 이미지 관리 sonarqube: 코드 정적 분석 / 코드 커버리지 기록 gitlab: 배포 스크립트 히스토리 관리 github..