본문 바로가기

전체 글45

[Search API] SSE 스트리밍으로 설계한 코드 검색 API와 레포 필터 구조 이전 글에서 GitHub App과 Webhook으로 코드 변경 시 자동 인덱싱이 되도록 만들었습니다.이번 글은 실제로 검색을 요청했을 때 어떤 흐름으로 동작하는지, 검색 API가 어떤 구조로 설계되어 있는지를 써볼까 합니다.SSESSE란?: SSE는 Server-Sent Events의 약자: 서버가 클라이언트에게 데이터를 지속적으로 밀어주는(push) 단방향 통신 방식 HTTP 요청과 SSE 차이▶︎ 일반적인 HTTP 요청 클라이언트 → 요청 → 서버 클라이언트 ← 응답 ← 서버 (한 번에 전부) ▶︎ SSE 클라이언트 → 요청 → 서버 클라이언트 ← 데이터 조각 1 ← 서버 클라이언트 ← 데이터 조각 2 ← 서버 클라이언트 ← 데이터 조각 3 ← 서버 ... 클라이언트 ← 완료 신호 ← 서버: 응답이.. 2026. 5. 22.
[GitHub App] GitHub App + Webhook으로 배운 자동 인덱싱 파이프라인 이전 글에서 RAG 파이프라인을 어떻게 구성했는지 소개했는데, 한 가지 숨겨진 문제가 있었다.코드가 변경될 때마다 직접 인덱싱 API를 수동으로 호출해야 했다.팀원이 PR을 머지할 때마다 "인덱싱 API 좀 돌려줘"를 반복할 수는 없었다. GitHub App과 Webhook을 조합해서 이 과정을 완전히 자동화한 과정을 공유하려고 한다🤔PAT 대신 GitHub App을 선택처음엔 Personal Access Token(PAT)으로 GitHub API를 호출했다. 구현이 빠르고 간단했기 때문PAT의 단점- 발급한 사람이 퇴사하거나 계정이 비활성화되면 토큰이 함께 죽음- 만료 기간 관리를 사람이 직접 해야 함- 권한 범위를 세밀하게 제어하기 어려움GitHub App 장점- GitHub App은 이 문제를 구.. 2026. 5. 19.
[RAG] 사내 코드 검색 시스템을 만들며 배운 RAG 파이프라인 정리 사내에서 "우리 코드에서 결제 실패 재시도 어떻게 처리해?" 같은 질문에 매번 직접 레포 뒤지거나 사람한테 물어봐야 하는 상황이 반복됐다. 그래서 GitHub Org 전체 코드를 대상으로 자연어로 검색할 수 있는 내부 도구를 만들었고, 그 핵심인 RAG 파이프라인을 구축하면서 정리한 내용을 공유하려고 한다 📚 RAGRAG(Retrieval-Augmented Generation)란? : 외부 지식 베이스에서 관련 정보를 먼저 검색(Retrieval)한 뒤, 그 결과를 컨텍스트로 넣어 LLM이 답변을 생성(Generation)하게 하는 방식 : 모델 자체가 모든 걸 암기하는 방식이 아니라, "필요한 정보를 찾아서 그걸 보고 답변한다"는 개념 RAG가 필요한 이유 : 사내 코드는 지속적으로 변함 → .. 2026. 5. 15.
[보안] 개발에 쓰이는 암호화 방식 정리 (단방향, 대칭키, 비대칭키, PGP) 서버 일을 하면서 마주칠 수밖에 없던 암복호화인데 봐도 봐도 익숙해지지 않아서 한 번쯤 정리하면 좋겠다고 생각이 들었다.그래서 암복호화 중 암호화에 대하여 정리해보려고 한다 📚 단방향 암호화단방향 암호화란? : 데이터의 무결성을 검증하거나 패스워드와 같은 개인 정보를 저장할 때 사용하는 단방향 해시 함수 기반의 암호화 방식 설명: 임의의 길이를 가진 데이터를 입력받아 고정된 길이의 해시값을 출력하는 알고리즘: 수학적인 단방향 함수(One-Way Function)를 사용하여 암호화는 가능하지만 복호화(역연산)는 수학적으로 불가능하도록 설계: 실제로 사용자의 비밀번호 같은 걸 암호화한 적이 있음 (복호화를 못해서 초기화 시켜봄) 관련 알고리즘 예시SHA-256SHA-3bcrypt 장단점장점단점- 데이터베이.. 2026. 4. 21.
[NETWORK] SOAP vs REST 통신 방식 정리 CDR 문서 보다가 뭔가 정리하면 좋을 거 같다고 생각해서 가져온 SOAP과 REST 비교 :D SOAP (Simple Object Access Protocol)SOAP 이란?네트워크 상에서 정보를 교환하기 위한 프로토콜(통신 규약)' 핵심 특징 및 동작 원리▶︎ XML만 허용: SOAP은 메시지의 포맷으로 XML(eXtensible Markup Language)만을 사용▶︎ 정해진 구조: 모든 SOAP 메시지는 정해진 구조를 가져야 한다.▶︎ Envelope: XML 문서가 SOAP 메시지임을 정의하는 최상위 요소Header: (선택) 보안, 인증 등 메시지 처리에 필요한 부가 정보Body: (필수) 실제 전달하고자 하는 핵심 데이터 (Call과 Response)Fault: (선택) 처리 중 발생한 에.. 2026. 3. 31.
[MaaS] Kong API Gateway 핵심 요건 및 솔루션 상세 비교 분석 Maas 개발을 위해 이것저것 알아봐 달라는 말씀을 하셔서 찾다가 발견한 Kong 🦍 Kong이란?마이크로서비스 아키텍처(MSA)가 표준이 되면서 시스템이 여러 개의 서버로 나눠졌고, 모든 서버가 인증이나 로깅 같은 공통 로직을 중복해서 처리해야 하는 문제가 발생했습니다. Kong은 이러한 문제를 해결하기 위해 모든 트래픽의 대문 역할을 해주는 API Gateway 솔루션 중 하나입니다.결과적으로 Kong은 클라이언트와 백엔드 서비스 사이에 위치하여, 비즈니스 로직과 공통 관심사(인증, 인가, 로깅 등)를 완벽하게 분리하고 백엔드 서버의 부담을 획기적으로 줄여줍니다. Kong의 장점검증된 압도적 성능 (NGINX 기반): Kong은 고성능 웹 서버인 NGINX를 기반으로 동작합니다. 대규모 트래픽이 몰.. 2026. 3. 20.