Open Source
-
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..
-
[ConfigMap] edit 시 파일 내용이 문자열로 변환되는 표현 버그 수정 방법Open Source/Kubernetes 2024. 4. 3. 11:37
업무를 하면서 쿠버네티스 ConfigMap 을 많이 사용하게 되는데 사내 솔루션을 여기저기 배포하면서, 항상 드는 의문점이 있었다. 분명히 예쁘게(pretty) 구성해서 configmap 을 적용했는데, kubectl describe 하면 예쁘게(pretty) 보이던 콘텐츠 내용들이 이상하게 kubectl edit 을 하면 하나의 문자열로 합쳐지는 것이다. 업무에 바쁘다보니 해결책이 쉽게 나오지 않아서 그냥 사용했었다. 이번에 새로 입사한 동료가 이 부분에 대해서 질문을 하면서, 이 문제를 해결하기 위해 찾아보았다. 다행히도, 아주 간단한 원인과 해결책을 알게 되었다. 같은 문제를 겪고 잇는 다른 분들에게 도움이 되길 바란다. 문제의 표현 버그 아래 내용처럼 configmap 을 구성해서 적용했다. ap..
-
[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...
-
[Sentry] Docker 를 이용하여 local 에 Sentry 설치하기Open Source 2022. 1. 13. 19:11
sentry 를 이용해서 프로그램을 모니터링 하고 있는데, sentry 에서 기본 제공하는 플랜 은 매달 금액도 나가고 transaction limit 을 넘어 버리면 아예 모니터링이 불가능한 경우가 발생했다. Application Monitoring and Error Tracking Software Self-hosted and cloud-based application monitoring that helps software teams see clearer, solve quicker, & learn continuously. sentry.io 위의 단점을 보완하기 위해 local 에 sentry 를 직접 설치 하였다. self-hosted sentry 문서 를 읽으며 설치를 진행 하였다. 1. 설치하기 및..
-
RPC / gRPC 와 예제 코드 with Go, PythonOpen Source 2021. 11. 8. 11:44
What is gRPC? 1. RPC (Remote Procedure Call) 1-1. RPC 는 무엇인가? software communication protocol network 의 상세 정보를 몰라도, 한 프로그램이 다른 컴퓨터에 있는 프로그램의 서비스에 request 를 할 수 있다. 외부 process 가 다른 process 를 호출하기 위해서 사용된다. Procedure call: function call or subroutine call 함수 호출과 같은 순차적인 호출 client - server 모델을 사용한다. request 를 하는 프로그램이 client service 를 제공하는 프로그램이 server RPC 는 일반적인 함수 호출과 동작이 비슷하다. server 에서 결과를 리턴 할..
-
[Jenkins] Multibranch Pipeline 이용하기Open Source/Jenkins 2021. 10. 26. 15:07
Jenkins Multibranch Pipeline 이용하기 1. Multibranch Pipeline Plugin 설치하기 Manage Jenkins > Manage Plugins 선택 Pipeline: Multibranch 설치 2. Multibranch Item 생성하기 Dashboard > New Item 선택 이름 설정 후 Mulibranch Pipeline 형태로 생성 Branch Sources > GitHub App 선택 Credentials 선택 Repository HTTPS URL 입력 Behaviors 상황에 맞게 선택 Build Configuration 에 Jenkinsfile 의 경로 입력 Save 3. Jenkinsfile 작성하기 Jenkinsfile 사용하기 문서 를 참고하여 ..