| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- Kotlin
- K8s
- centos7
- spring kafka
- producer
- git
- bean
- ECS
- API
- mysql
- transactionaleventlistener
- topic생성
- CI
- pgvector
- JPA
- offsetdatetime
- Streams
- Spring JPA
- AWS
- Kubernetes
- kafka
- spring
- QueryDSL
- consumer
- CodePipeline
- PAGING
- entity graph
- Entity
- Spring Data JPA
- cd
- Today
- Total
목록Backend Common (21)
Yebali
pgvector란?pgvector는 PostgreSQL에서 벡터(Vector) 데이터를 저장하고 유사도 검색을 수행할 수 있도록 해주는 확장(Extension)이다.주로 임베딩(Embedding) 데이터를 저장하고, 이를 기반으로 코사인 유사도, 내적, 거리 계산 등의 연산을 수행하는 데 사용된다.최근 LLM, 추천 시스템, 시맨틱 검색(RAG)과 같은 분야에서는 텍스트·이미지·음성 데이터를 숫자 벡터로 변환해 비교하는 방식이 널리 사용되고 있다.pgvector는 이러한 벡터 연산을 별도의 벡터 DB 없이 PostgreSQL 내부에서 처리할 수 있도록 해주며, 기존 관계형 데이터와 벡터 검색을 함께 활용할 수 있다는 장점이 있다. pgvector의 기능데이터 타입 (Vector Types)pgvector..
최근 회사에서 On-Premise 환경에서 애플리케이션을 배포하는 일이 많아졌습니다. 클라우드 환경과는 달리, 직접 서버에 환경을 구성하고 Docker를 설치하는 일이 빈번해졌죠. 매번 Docker 설치 방법을 검색하는 것도 번거롭고, 동료들에게 가이드를 제공할 겸 블로그에 정리해 두기로 했습니다. 이번 글에서는 많이 사용되는 두 가지 리눅스 배포판, Ubuntu와 RHEL(Red Hat Enterprise Linux) 에 Docker를 설치하는 방법을 소개합니다. Ubuntu에 Docker 설치하기Ubuntu는 apt 또는 apt-get이라는 패키지 관리 도구를 사용합니다. Docker 설치를 위해 필요한 저장소 설정 및 패키지 설치 과정을 단계별로 정리했습니다.# 패키지 인덱스를 업데이트합니다.sud..
ConfigMap은 Key-Value쌍으로 보안에 민감하지 않은 데이터를 저장할 때 사용하는 API 오브젝트이다. ConfigMap을 사용하면 Container image에서 환경별로 구성을 분리하여, 애플리케이션을 쉽게 의식할 수 있다. ConfigMap은 암호화를 제공하지 않기 때문에 민감한 데이터는 Secret을 사용해야 한다. 또한, 많은 정보를 보유하도록 설계되지 않았기 때문에 저장된 데이터는 1MiB를 초과할 수 없다. 예시 apiVersion: v1 kind: ConfigMap metadata: name: game-demo data: # 속성과 비슷한 키; 각 키는 간단한 값으로 매핑됨 player_initial_lives: "3" ui_properties_file_name: "user-in..
Ingress은 k8s 클러스터 외부에서 내부의 Service로 HTTP/HTTPS 경로를 노출한다.즉, 서비스들에 대한 단일 진입점을 제공한다. 단, Ingress를 사용하기 위해서는 Ingress Controller가 있어야 한다. Ingress source만 생성하면 동작하지 않는다.그렇기 때문에 필요에 따라 ingress-nginx와 같은 Ingress Controller을 배포해야 할 수도 있다. 예시apiVersion: extensions/v1beta1kind: Ingressmetadata: name: marvel-ingressspec: rules: - http: paths: - path: / # / path로 들어오는 요청은 'marvel-service'로 보낸다. ..
kube-proxy은 Kubernetes에서 Service를 만들었을 때 Service의 가상 IP, Port를 관리하고 ClusterIP나 NodePort로 접근할 수 있게 하는 컴포넌트이다. kube-proxy는 DeamonSet이 Control Plane과 각 Node마다 실행되며 클러스터 내부 IP로 연결하려는 트래픽을 적절한 Pod로 전달한다. kube-proxy가 네트워크를 관리하는 방법은 아래 3가지가 있다. userspace 모드 클라이언트가 Service의 ClusterIP를 통해 요청을 하면 iptables을 거쳐 kube-proxy가 요청을 받는다. 그리고 Service의 ClusterIP에 연결되어야하는 적절한 Pod로 요청을 매핑한다. 요청을 분배하는 방식은 라운드 로빈 방식을 사..
Service란 Pod에서 실행되고 있는 애플리케이션을 네트워크에 노출시키는 컴포넌트이다. 보통 Pod은 일회성 자원이기 때문에 언제든 다른 노드로 옮겨지거나 삭제될 수 있다. 그때마다 Pod는 새로운 내부 IP를 부여받기 때문에 지속적으로 클러스터 내/외부와 통신을 유지하기 어렵다. 따라서 Kubernetes은 Pod가 외부와 지속적으로 통신할 수 있도록 클러스터 내부에 고정적인 IP을 가지는 Service를 사용하도록 하고 있다. 또한 같은 애플리케이션으로 구성된 여러 Pod들의 단일 진입점을 제공하는 역할을 한다. ClusterIP Pod들이 클러스터 내부에서 다른 리소스들과 통신할 수 있도록 단일 진입점(IP)을 제공하는 Service이다. 'ClusterIP'로 들어온 클러스터 내부 트래픽을 해..