Platform Engineering

엔터프라이즈 에이전트 플랫폼의 프론트엔드·백엔드·데이터 계층

Engineering 17

Engineering · Knowledge Graph

DB 원본과 지식 그래프를 맞추는 법: 증분 키를 버리고 행 지문으로 추가·변경·삭제를 감지하기

외부 DB 테이블을 LLM 없이 그래프로 만드는 기능에서, 사용자가 고르는 증분 키는 값만 바뀐 행·시각이 되돌아간 행·지워진 행을 놓쳤습니다. PK keyset 전수 읽기와 sha256 행 지문 비교로 원본이 진실인 동기화를 만들고, 실패한 회차의 지문이 그래프보다 앞서지 않도록 지문을 먼저 비우고 가리켜지는 행은 자리 노드로 남겨 실패 경로를 닫았습니다.

2026.10.1111분플래티어 · XGEN
Engineering · Security · Governance

nginx 기본 502 페이지가 가리킨 곳: 응답에 실린 신원 헤더와 클라이언트 헤더 위조 경로

원격 조회가 불가능한 폐쇄망의 문서 다운로드 502를 응답 본문 형태로 가설을 하나씩 배제해, 게이트웨이가 서비스용 신원 헤더를 브라우저 응답에도 실어 앞단 nginx의 헤더 버퍼를 넘기는 구조로 좁혔습니다. 조사 중 클라이언트가 보낸 신원 헤더가 서비스까지 전달되던 위조 경로를 찾아, 이미 검증된 보안 수정을 이식해 막았습니다.

2026.10.0611분고객사 구축 · 은행
Engineering · Knowledge Graph

10만 노드 지식 그래프 뷰어: 렌더링 최적화에서 '무엇을 그릴 것인가'로 옮겨 간 문제

온톨로지 그래프를 브라우저에서 탐색하려고 Three.js InstancedMesh 렌더러와 Web Worker 물리 연산을 만들었지만, 컬렉션이 커지자 병목은 무엇을 그릴지로 옮겨 갔습니다. CDP 프로파일링으로 리프 노드가 비용의 대부분임을 확인해 구조 우선 샘플링으로 CPU 점유를 25%에서 7%로 낮추고, 렌더 상한 밖의 노드는 서버 검색으로 찾아 불러오게 했습니다.

2026.10.0210분플래티어 · XGEN
Engineering · Platform Engineering

온톨로지 엔진의 이식성: 커밋 258개 격차를 파일 단위로 맞추고 출력 동일성으로 라이브러리를 검증하기

같은 온톨로지 기능을 고객 배포 라인과 다른 서비스에 반복해서 싣는 비용을 줄이려고, 고객 라인을 파일 단위와 3-way 병합으로 제품 라인에 맞추고 빌드 로직을 환경 의존 없는 라이브러리로 옮겼습니다. 동일성은 실코퍼스 14,924청크의 출력 대조로 증명했고, 남은 연동 코드 약 12,000줄은 호스트가 네 가지 포트만 구현하면 되는 어댑터 계층으로 분리하자고 제안했습니다.

2026.09.2813분플래티어 · XGEN
Engineering · Delivery · Operations

재색인을 요청-응답에서 백그라운드 작업으로: 30초 타임아웃 뒤에 있던 UI와 백엔드의 계약 불일치

요청 하나 안에서 전 청크 재임베딩까지 끝내던 재색인 API가 클라이언트 30초 타임아웃에 걸려 실패처럼 보이고 중복 실행되던 문제를, 202 응답과 상태 조회, Redis 사본과 SET NX로 다중 파드에서도 컬렉션당 한 작업만 도는 구조로 바꿨습니다. 두 파드 시나리오 테스트가 상태 조회 순서 결함을 잡아냈습니다.

2026.09.229분플래티어 · XGEN
Engineering · Delivery · Operations

루프백 웹소켓이 열리지 않던 이유: 영업점 단말 화면 호출과 크롬 Local Network Access 실측

에이전트 답변과 현황판에서 영업점 단말 업무 화면을 여는 루프백 웹소켓 연동을 방향별로 판정해 구현했습니다. 시연 PC에서 연결이 1ms 만에 실패하던 원인을 크롬 Local Network Access로 확정해 정책으로 풀었고, 그 뒤 드러난 채팅 코드펜스 파서 결함까지 고쳤습니다.

2026.09.2212분고객사 구축 · 은행
Engineering · Knowledge Graph

출처는 생산 지점에서, 원본도 같은 정책으로: RAG 출처 표시 파이프라인 재정비

답변 출처가 검색 모드에 따라 사라지거나, 검색 노드 없이도 붙거나, 원본 열람이 마스킹 정책을 우회하고, 큰 CSV 출처가 브라우저를 멈추던 문제를 차례로 추적했습니다. 출처는 백엔드 생산 지점에서 결정하고, 원본도 청크와 같은 정책을 거치며, 뷰어는 보이는 만큼만 그린다는 원칙으로 정리했습니다.

2026.09.1411분플래티어 · XGEN
Engineering · Retrieval · RAG

판단 주체가 없는 사전 검색: 규칙 엔진에서 LLM 사전 검색으로, 노드 교체 없이 엔진 전환하기

매 턴 코드가 검색하는 사전 검색 모드가 특정 조항을 못 찾던 원인을 판단 주체의 부재로 정의하고, 규칙 엔진을 거쳐 검색어·폴더 선택만 LLM에 맡기는 구조로 다시 설계했습니다. 엔진은 노드 ID를 바꾸지 않고 관리 설정으로 전환하며, 배포 뒤 드러난 404·스트리밍·마스킹 결함까지 정리했습니다.

2026.08.3113분플래티어 · XGEN
Engineering · Agent Engineering

jermes-app: PC와 폰을 pod로 연결한 에이전트 런타임과, 클러스터는 세우고 보고는 틀린 5회 실험

XGEN 코드를 고치지 않고 사용자의 PC와 폰을 pod로 연결해 로컬 자원을 도구로 쓰는 에이전트 런타임을 만들었습니다. 같은 k3s 과제를 5회 맡겨 과제 완수 3회, 정확한 보고 0회라는 격차를 계측하고, 한 번의 호출로 끝나는 검증 도구와 파괴적 명령 차단으로 대응했습니다.

2026.08.3111분개인 프로젝트
Engineering · Retrieval · RAG

시간 상한은 탐색에만, 합성 지연은 스트리밍으로: 근거 누출 사고에서 시작한 검색 지연 재설계

질문당 총시간을 보장하려고 건 25초 하드 상한이 합성 LLM에 4초만 남겨, 내부 근거가 답변으로 새는 사고로 이어졌습니다. 로그와 단계별 계측으로 지연의 대부분이 합성 대기임을 확인하고, 상한은 탐색에만 두고 체감 지연은 합성 입력의 문자 예산과 답변 스트리밍으로 다뤘습니다.

2026.08.2710분플래티어 · XGEN
Engineering · Platform Engineering

엑셀 요청이 항상 실패하던 문서 생성 도구: 폴백 대신 계산되는 데이터 시트로 변환하기

LLM이 마크다운으로 넘긴 엑셀 요청이 항상 실패하던 렌더러 분기를 단순 폴백이 아닌 데이터 시트 변환으로 고쳐 숫자·표시형식·틀고정을 살렸습니다. 셀 검색 도구 부재와 반복 한도 계산 오류로 편집이 중단되던 문제, 코드 생성 없이 차트를 그리는 경로도 함께 정리했습니다.

2026.08.2611분고객사 구축 · 은행
Engineering · Platform Engineering

목록 렉의 원인은 분할 방식이 아니라 페이로드였다: GET 336개 전수 측정과 하위호환 서버 페이지네이션

채팅 목록 렉의 원인이 클라이언트 분할이 아니라 응답에 실린 캔버스 JSON 1.6MB였음을 실측으로 확인하고, 인자 없는 GET 336개를 전수 측정해 같은 부류를 소비처 기준으로 판정했습니다. 필드 경량화와 하위호환 서버 페이지네이션으로 고치면서 전환 과정의 필터 의미 회귀와 숨은 1,000건 상한도 함께 정리했습니다.

2026.08.1711분고객사 구축 · 은행
Engineering · Retrieval · RAG

날짜 경계처럼 보인 도구 멈춤의 실체: HWP 파서가 남긴 UTF-16 서로게이트와 보이지 않던 도구 오류

8월 5일 이후 보도자료만 멈추던 에이전트 도구를 첨부 형식별 전수 대조로 추적해, HWP 파서가 한컴 사설 영역 문자를 UTF-16 서로게이트 쌍으로 남겨 UTF-8 인코딩이 실패한 것과 도구 오류 이벤트가 UI로 전달되지 않던 것을 찾았습니다. 서로게이트를 무손실 복원하는 정규화를 발원지와 공통 길목에 적용했습니다.

2026.08.129분고객사 구축 · 은행
Engineering · Retrieval · RAG

컬렉션 데이터 소스: 휴면 스케줄러를 살리지 않고 provider 두 메서드로 원천을 늘린 증분 인덱싱

내부 파일 저장소 폴더를 컬렉션에 연결하면 변경분만 자동 인덱싱되는 데이터 소스를 바인딩·durable 작업 큐·해시 diff 골격으로 만들고, 휴면 상태의 저장소 동기화 기능을 되살리는 대신 API 도구를 provider로 흡수했습니다. DB 연결 창이 2분 넘게 멈추던 원인도 접속 시간 제한 누락과 이벤트 루프 차단으로 찾아 고쳤습니다.

2026.07.3112분플래티어 · XGEN
Engineering · Evaluation

광고 심의 에이전트: 판정 권한을 LLM에서 코드 검증기로 옮겨 실제 심의 34건의 판정을 고정하기

XGEN 캔버스로 광고 심의를 자동화하는 PoC에서 10/10이던 판정이 재실행에 8/10으로 흔들린 원인을 비결정성 세 층으로 분해했습니다. 최종 판정을 코드 검증기가 확정하게 바꾸고 추출과 심의를 6개 에이전트로 나눠, 실제 심의 34건 판정 34/34와 지적 재현율 67%를 얻었습니다.

2026.07.3012분개인 프로젝트
Engineering · Agent Engineering

플랫폼을 모르는 하네스 엔진: 코드 결합을 끊고 설정 진실원본을 하나로 모은 과정

공용 실행 코어 안에 있던 하네스를 독립 엔드포인트로 옮기고, 엔진이 알던 플랫폼 코드 2,251줄을 Protocol과 entry_points 뒤의 브리지 계층으로 넘겼습니다. 경로마다 달랐던 설정 조회는 우선순위 체인과 공용 매핑으로 모았고, 배포 이원화를 없애려 엔진을 SDK로 흡수한 뒤 다시 생긴 사본 분기까지 기록했습니다.

2026.06.1611분플래티어 · XGEN
Engineering · Delivery · Operations

전용 QA 노드를 범용 하네스 노드로 옮기며: 캡슐이 숨기던 기능과 엔진이 읽지 않던 채널

품질검사 전용 캡슐 노드가 암묵적으로 처리하던 이미지 입력, 서브툴 바인딩, 세션 전달, RAG 전달을 범용 하네스 노드로 옮기며 드러난 결함 15종을 고객사 개발 환경에서 실측하며 고쳤습니다. 그중 두 번은 수정값을 엔진이 읽지 않는 채널에 쓰고 있었고, 엔진 소스로 설정 해석을 재현해 살아 있는 채널로 다시 연결했습니다.

2026.06.1011분고객사 구축 · 대형 유통