게이트웨이·실행 기반
gateway-component-search dev 배포 완료. Pod 정상, ALB 타깃 healthy, Redis·IRSA·인증 필터 검증 완료.
검색 API의 Pod·Service·Pod SG·IRSA 준비 완료, ECR 이미지 pull 확인.
Algorithm Cell 이슈 관리업무 관리자를 위한 쉬운 설명
현재 구현 대상은 표·차트를 포함한 Visual Summary다. Rust 서버에 올리는 데이터는 I.I.S Semantic Component(IIS 증분 정보)이며, 예전 comp-sign 시그니처와는 다른 것이다. 실행 기반은 준비되어 있고, 남은 것은 그 데이터의 추출·적재·로딩과 이석님의 일정이다. PR #865·CloudFront 연결은 별도 잔여 항목이고, 지우님은 추후 석님 백업으로 합류 예정이다.
자료를 읽는 기준. 구현 범위는 “Visual Summary, 표·차트 포함”을 우선하고, Rust 서버에 올리는 것을 I.I.S Semantic Component 로 부른다 — 이 자리를 “시그니처”라고 적던 것을 2026-09-10 에 정확한 이름으로 바로잡았다. 인프라 상태는 후속 Slack 공유를 따르고, 9월 9일 그림은 초기 기록으로 구분한다. Frame 관련 개념은 기존 사전 문서를 근거로 설명하며 현재 코드·배포를 직접 조회한 것은 아니다.
후속 슬랙 공유를 현재 상태의 기준으로 사용한다. 게이트웨이 dev 배포와 검색 서버의 실행 기반이 준비되었고 ECR 이미지도 받아지고 있다. 검색 API를 실제로 제공하려면 이석님이 표·차트를 포함한 Visual Summary 처리와 그에 맞는 데이터 로딩·검색을 구현해야 한다. 인프라 측의 “스냅샷만 로딩되면 뜬다”는 말은 실행 준비 상태에 관한 것이며 현재 기능 범위 전체가 완성됐다는 뜻은 아니다. 외부 요청 경로를 완성하는 CloudFront 연결과 PR #865 검토·머지는 별도로 남아 있다.
gateway-component-search dev 배포 완료. Pod 정상, ALB 타깃 healthy, Redis·IRSA·인증 필터 검증 완료.
검색 API의 Pod·Service·Pod SG·IRSA 준비 완료, ECR 이미지 pull 확인.
인프라 측 표현으로는 “스냅샷만 로딩되면 뜨는 상태”. 기존 작업 파일을 찾아보고, 없으면 일부 데이터를 만들어 보겠다고 이석님이 답변했다. 파일 확보·업로드·로딩 완료를 확인한 상태는 아니다.
PR #865는 이석님이 검토·일부 수정 중이며 머지는 아직 확인되지 않았다.
CloudFront 라우팅은 DevOps에 요청 완료, 반영 대기. 두 작업의 경로 규약을 맞춰야 한다.
인프라 담당자는 별도 기한을 걸지 않고 IUI Rust 검색 API 제공 일정에 맞춰 정식 태스크로 진행해 달라고 요청했다. 이석님은 일을 두 번 하지 않도록 Visual Summary에 맞춰 한 번에 진행하려는 계획을 밝혔다. 인프라 인수인계는 남은 작업을 마친 뒤 공유할 예정이다.
“인프라가 준비됨”은 “사용자 경로 전체가 이미 동작함”과 다르다. CloudFront 연결, API 경로 계약, 스냅샷 로딩·실제 검색 결과를 각각 확인한다. stg·prod 전체 검증 완료를 뜻하는 공유도 아니다.
Rust 서버에 구현할 것은 Visual Summary이며 표·차트를 포함한다. 그리고 서버에 올라가는 데이터의 정확한 이름은 I.I.S Semantic Component 다. 이 문서가 종전에 이 자리를 “시그니처”라고 적던 것은 부정확한 표현이라 2026-09-10 에 바로잡았다.
이름만 바꾼 것이 아니다. 과거 comp-sign의 “컴포넌트 → 시그니처”와는 만드는 주체(I.I.S. 증분 추출)도, 단위(컴포넌트 안의 경계 노드)도, 적재 경로(DB → Rust 메모리)도 다른 산출물이다. 기존 인프라 메모의 시그니처 용어와 “일반 검색 우선·표차트 후속” 순서는 초기 계획으로만 남긴다.
| 말 | 무엇을 가리키나 | 이번 업무에서 읽는 방법 |
|---|---|---|
| Visual Summary | 내용을 제목·항목·값·단위·관계·표/차트 데이터 등으로 구조화하는 규격과 데이터 | 이번 Rust 작업이 지원할 기준. 프로그램 언어의 이름이나 파일 창고의 이름이 아님 |
| Frame / comp-frame | Visual Summary 기반 검색 문서에서, 사용자 내용과 디자인을 같은 슬롯 구조로 비교하는 표현과 구현 | 사용자 쪽에는 넣을 내용, 디자인 쪽에는 대응 노드·용량 등이 들어감. 이 코어의 Rust 이관 계획이 문서에 있음 |
| I.I.S Semantic Component | I.I.S.(증분 정보 구조화기)가 컴포넌트 안의 경계 노드마다 뽑아 두는 의미 단위 정보 | Rust 서버에 올라가는 것이 바로 이것이다. 종전에 이 문서가 “시그니처”라고 부르던 자리 — 2026-09-10 에 정확한 이름으로 정정 |
| 시그니처 / comp-sign | 이전 컴포넌트 검색·매칭 방식의 용어와 패키지 | 위 항목과 다른 것이다. 현재 Visual Summary 구현의 동의어로도, Rust 에 올리는 데이터의 이름으로도 쓰지 않음 |
| Rust 서버 | 실제 처리 코드를 구현하고 실행하는 장소·기술 | Visual Summary를 다루는 처리·검색을 제공하는 서버. Visual Summary 자체와 같은 종류의 개념이 아님 |
| S3 / 스냅샷 | 검색에 사용할 준비된 데이터 파일의 저장소 / 사본 | 담기는 것은 I.I.S Semantic Component 다. 예전 comp-sign 시그니처 파일이 그대로 호환된다고 가정하지 않음 |
사용자 내용 → Visual Summary → 검색용 비교 형태(쿼리 Frame). 넣을 글, 항목, 표·차트의 데이터 구조를 보존해 검색에 사용한다.
디자인 데이터 → 대응 정보 추출 → 후보 Frame. 어떤 종류의 내용을 받을 수 있고, 어느 노드에 무엇을 넣을지 비교할 자료를 준비한다.
근거: Frame 문서 §2는 사용자 쪽 입력을 Visual Summary YAML의 structure, 디자인 쪽 입력을 IIS 경계 지도 또는 RLSC 규칙으로 설명한다. 같은 문서 §1·§8은 코어를 Rust의 frame-search API로 옮기는 계획을 기록한다. 현재 배포 완료를 뜻하는 설명은 아니다.
Visual Summary에는 비교할 항목과 숫자·단위 같은 구조가 남는다. 검색은 이를 받아 줄 표나 차트 디자인을 찾는 쪽이다. “표·차트 지원”은 단순히 문장을 읽는 데 그치지 않고 그 데이터가 표·차트 후보와 매칭되는지까지 확인해야 한다. 실제 화면에 데이터를 넣는 대치·렌더 처리까지 이번 Rust 작업에 포함하는지는 별도 범위 확인이 필요하다.
Frame 문서 §7에는 2026-09-08 D-15로 comp-sign·comp-match import를 끊고 필요한 계산을 복사했다고 적혀 있다. 따라서 “시그니처를 Visual Summary라고 이름만 바꾼 것”으로 설명하지 않는다. 이 기록이 서비스 전체에서 과거 코드가 사라졌다는 뜻도 아니다.
같은 문서 §8에는 표·차트 타입·쿼리 추출은 있지만 후보 적재기가 Table·Chart 컴포넌트를 건너뛴다고 적혀 있다. 이는 해당 문서의 기록 시점 상태다. 현재 목표가 표·차트 포함으로 확인됐으므로, 이 누락이 해소됐는지와 Rust 쪽 지원 상태를 확인해야 한다.
“Visual Summary 구현”만으로 요약 생성 전체를 Rust로 옮긴다고 단정하지 않는다. 요약 생성, 입력 해석, 디자인 정보 추출, 검색·순위, 대치·렌더는 구분되는 단계다. 각 단계의 실행 위치와 이번 범위가 어디까지인지 명시해야 한다.
초기 그림에는 ArgoCD 첫 sync의 PermissionDenied, 게이트웨이 미배포, SNAPSHOT_PATH 미설정으로 인한 Pod 종료가 기록돼 있었다.
후속 공유에서는 게이트웨이 dev 배포와 검색 서버 실행 기반 준비가 완료되었다고 명시했다. 따라서 초기 배포 권한 오류를 현재의 독립적인 미해결 과제로 계속 표시하지 않는다. 현재 애플리케이션 쪽 핵심은 스냅샷 로딩과 검색 API 제공이다. ArgoCD 오류의 개별 해결 내역을 별도로 조회한 것은 아니다.
아래는 관리 관점의 권장 작업 순서다. 이석님이 Visual Summary에 맞춘 제공 일정을 정하면, 이를 기준으로 정식 태스크를 등록한다. 기능의 적용 범위와 검증용 파일 준비는 함께 조율할 수 있다.
현재 대상은 Visual Summary이며 표·차트를 포함한다. 어떤 입력을 읽고 어떤 데이터를 추출하며 어떤 검색 결과를 반환하는지 정한다. 기존 Frame 문서에 적힌 표·차트 후보 적재 누락의 해소 여부도 확인한다. 규약 버전·작업 범위·검증 기준을 정해 중복 작업을 줄이려는 이석님의 계획과 맞춘다.
완료 증거: 작업 범위·의존사항·예상 제공일이 정리되고, 인프라 잔여 작업과 연결된 태스크가 있다.
원용석님이 기존 작업 파일 업로드를 요청했다. 이석님은 “찾아보겠다. 없으면 일부만 만들어 보겠다”고 답변했다. 이 답변은 후속 Slack의 파일 확보 계획이다. 현재는 확보한 파일이 Visual Summary/Frame 검색에 맞는 데이터인지, 표·차트가 포함되는지부터 확인해야 한다. 예전 comp-sign 시그니처 스냅샷을 그대로 쓸 수 있다고 가정하지 않는다 — 지금 담아야 하는 것은 I.I.S Semantic Component 다.
완료 증거: 사용할 파일의 위치·형식·버전·포함 범위가 확인된다. 부분 샘플로 기동 확인에 성공한 것과 전체 데이터 검색 준비 완료를 구분한다.
현재 Visual Summary/Frame 방식에 맞는 데이터를 가져와 메모리에 올리고, 입력 해석·후보 비교·검색 처리를 연결한다. 실행 기반 준비는 완료로 공유됐다. 텍스트 사례와 표·차트 사례가 실제 후보를 찾아 반환하는지 확인한다. 초기 로딩 시간을 측정·공유하고 readyz 기준을 협의한다.
완료 증거: dev Pod가 로딩을 마치고 유지되며 검색 결과 키를 반환한다. 사용 데이터 범위와 초기 로딩 시간이 기록되고, 요청을 받을 준비 상태 기준이 정해진다.
이석님은 PR #865를 검토하며 일부 수정 중이다. 프리픽스 서빙·SEARCH_TOKEN 제거·admin 비활성의 계약을 검토하고, 머지·적용 상태를 확인한다. 게이트웨이 dev 배포는 완료됐으며 CloudFront 규칙은 DevOps 반영 대기다. FE가 활성 버전을 넣어 검색하고 기존 백엔드에서 실제 컴포넌트 자료를 가져오는 흐름을 검증한다.
완료 증거: PR 반영과 경로 규칙이 맞고, FE → 게이트웨이 → Rust → 결과 키 → 기존 백엔드 자료 조회가 성공한다.
이 자리는 오래 열려 있던 질문이었다. 종전 안내는 “시그니처를 만든다”로 적었다가 그것이 부정확하다고 판단해 “Visual Summary 처리에 필요한 정보를 뽑는다”는 모호한 표현으로 물러나 있었다. 2026-09-10 공유로 답이 왔다 — 추출하는 것은 I.I.S Semantic Component 이고, 컴포넌트는 BE 로, 이 IIS 정보는 Rust 서버로 간다.
Frame 문서의 두 방향 중 이 추출은 「디자인 컴포넌트 쪽」이다 — 사용자 입력에서 쿼리를 만드는 방향이 아니라, 이미 있는 컴포넌트에서 비교당할 후보 정보를 미리 뽑아 두는 방향이다. 표·차트의 구조·데이터를 어디까지 담을지는 여전히 명시해야 한다.
아직 미확인: 22일 목표가 추출 패키지 완성인지 전체 데이터 적재 완료인지, Rust 코드 구현을 어디까지 포함하는지. 이전 안내의 comp-sign 함수 이름을 이 작업의 완료 기준으로 사용하지 않는다.
이 도식은 단계를 구분하기 위한 설명이다. 22일 완료 범위가 어디까지인지는 여기서 확정하지 않는다. S3에서 파일을 내려받는 “로딩”과 원본에서 정보를 만드는 “추출”도 서로 다른 작업이다.
| 버전 | 판단 |
|---|---|
| 2.7 | 부적합 — 29일 cut off · 10.13 dev 전달이라 Visual Summary 출시 타임라인에 안 맞는다 |
| 2.6 | 이 버전을 기준으로 Visual Summary 를 추출한다 |
| 2.5 | 부적합 — RLSC 추출이 절반만 진행돼 복제·재활용할 수 없다 |
09.29 에 dev 로 전달되는 component 데이터를 기준으로 I.I.S Semantic Component 증분 정보를 뽑아, 컴포넌트는 BE 로, IIS 정보는 Rust 서버로 보낸다.
출처 — 2026-09-10 Slack 스레드(정원석·이석·홍지혜)를 사용자가 대화로 전달한 것이다. 저장소에는 기록이 없다 — mordor-wiki 의 projects/mordor/slack-logs/2026-09.md 는 09-02 까지만 담고 있어(2026-09-11 확인) 걸 링크가 없다. 원문 스레드 링크가 확보되면 여기에 건다.
| 회차 | 어떻게 하나 | 누가 |
|---|---|---|
| 이번 | IIS 증분 정보를 수기로 뽑아 DB 에 insert — 파이프라인에 넣지 않는다 | 재영님 |
| 이번 | DB 적재가 끝나면 그 데이터를 Rust 메모리에 올리는 작업 | algorithm cell |
| 다음 회차부터 | pipeline workflow 에 IIS step 추가 · 기존 upload step 에 upload target 으로 rust server 추가(기존 S3 적재와 함께) | — |
이석님이 물은 것 — 「IIS Semantic Component 검색 데이터 추출 패키지」를 언제까지 만들면 되는지, 이번만 파이프라인 예외가 가능한지, 이전 데이터(v2.6)를 특정해 검색 데이터만 뽑을 수 있는지. 앞의 둘은 답이 왔고(수기 적재로 예외, 다음 회차 편입), 추출 패키지의 기한은 아직 미정이다.
출처 — 2026-09-10 Slack 스레드(정원석·이석·홍지혜)를 사용자가 대화로 전달한 것이다. 저장소에는 기록이 없다 — mordor-wiki 의 projects/mordor/slack-logs/2026-09.md 는 09-02 까지만 담고 있어(2026-09-11 확인) 걸 링크가 없다. 원문 스레드 링크가 확보되면 여기에 건다.
| 일정·인력 | 확인된 공유 내용 | 관리자가 확인할 것 |
|---|---|---|
| 팀 리더 원석님 희망 일정 | “추출”을 22일까지 완료했으면 좋겠다. 대화 시점상 9월 22일로 해석한 희망 일정 | 현재 Visual Summary 기준으로 쿼리/디자인 중 어느 쪽 추출인지, 표·차트 포함 산출물, Rust 구현·전체 데이터 범위와 완료 판정 확인. 전체 운영 배포의 확정 마감으로 확대하지 않음 |
| 인프라 측 일정 | 별도 기한을 걸지 않음. 이석님의 Rust 검색 API 제공 일정에 맞춰 정식 태스크로 진행 요청 | 원석님의 추출 희망 일정과는 별도다. PR #865·CloudFront·인수인계 일정을 앱 제공 계획과 맞춤 |
| 지우님 백업 합류 | 추후 지우님이 이석님 백업으로 합류 예정 — 사용자 추가 공유 | 합류일과 구체 지원 범위는 미정. 코드·데이터 경로·배포/검증 방법·남은 이슈 공유를 인수인계 항목으로 제안 |
9월 9일 작업 로그의 “22일 전에 체크 완료 목표”와 이번 “22일까지 추출 완료 희망”은 표현이 다르다. 동일한 완료 지점을 가리키는지 확인 전에는 하나의 확정 마감으로 합치지 않는다. 현재 주담당은 이석님이며 지우님이 이미 합류했거나 주담당을 대체한 것으로 표시하지 않는다.
| 업무 | 최신 공유 상태 | 관리자가 받을 답 |
|---|---|---|
| 게이트웨이 dev 배포 | 완료. Pod·ALB 타깃·Redis·IRSA·인증 필터 검증 완료 | 완료 이력으로 보관. CloudFront 미반영과 구분 |
| 검색 API 실행 기반 | Pod·Service·Pod SG·IRSA 준비 완료, ECR 이미지 pull 확인 | 스냅샷 로딩 후 실제 기동·검색 결과 |
| PR #865 | 이석님 검토·일부 수정 중. 리뷰·머지 남음 | 프리픽스 서빙·토큰 제거·admin 비활성의 리뷰 완료, 머지·적용 여부 |
| CloudFront 라우팅 | 인프라 측에서 DevOps 요청 완료, 반영 대기 | PR #865와 경로 계약 일치, 외부 요청 경로 확인 |
| 인프라 인수인계 | 잔여 작업 완료 후 공유 예정 | 인수인계 자료와 시점. 지우님 합류 시에도 참고할 항목 정리 |
| 서머리 응답의 활성 버전 | 기존 공유에서 백엔드 추가 완료, FE 연동 예정 | Visual Summary에 맞춘 응답·요청의 버전 계약 |
| 버전 JSON 발행 | 기존 그림: dev 업로드 완료, PR #1616 리뷰 대기. 후속 변경 언급 없음 | 발행 작업의 현재 반영 상태 확인 |
| 전체 파일·증분 파이프라인 | 기존 파일 탐색 예정. 현재 Visual Summary/Frame 방식과의 호환·표차트 포함 여부 재확인. 증분은 기존 Mordor 선행 계획 | 파일 확보 결과, 현 규격과의 호환·표차트 누락 여부, 전체/부분 구분과 제공 일정 |
| 버전 정책·운영 관측 | 전환·롤백은 석님 검토 필요. Datadog·OpenSearch·k6 개인 담당은 미명시 | 정책 합의와 담당자·검증 일정. 지우님 역할로 임의 배정하지 않음 |
도서관으로 비유하면 Rust는 도서 검색대, 기존 백엔드는 책과 상세 자료를 제공하는 시스템이다. 현재 Rust 작업은 Visual Summary를 기준으로 적합한 디자인 후보를 찾도록 구현하는 것이다. 실제 컴포넌트 자료 조회는 기존 백엔드에 남기는 인프라 합의가 있으며, 현재 Frame 방식의 반환 필드는 다시 확인해야 한다.
miricanvas-iuiEKS는 여러 프로그램을 띄우고 관리하는 운영 공간이다. 그 안에서 실행되는 단위를 Pod라고 부른다. dev·stg·prd는 같은 구조를 사용하는 개발·검증·운영 환경이다.
실제 응답은 Rust → 게이트웨이 → FE로 돌아온다. 마지막 단계는 FE가 기존 백엔드에 보내는 별도의 자료 조회 요청이다. 외부에서 이 흐름으로 들어오는 CloudFront 경로는 아직 반영 대기다. 게이트웨이는 /component-search/api/**를 앞부분 제거 없이 전달하므로, Rust의 프리픽스 서빙(PR #865)과 같은 규칙을 써야 한다.
현재 범위: Visual Summary 처리·검색, 표·차트 포함. “일반 시그니처 검색 먼저, 표차트는 나중”, “상위 50개 키만 반환”은 초기 시그니처 이관 메모의 내용이다. 현재 구현의 범위·순서·응답 계약으로 자동 적용하지 않는다. 요약 생성, 정보 추출, 후보 검색·매핑, 실제 자료 조회·대치·렌더 각각의 담당과 실행 위치를 확인한다.
제안 · 논의중 컴포넌트 검색을 검증 → 검색 → 기록 세 번의 호출로 나누자는 제안이다. 가르는 줄이 하나 있다 — 사용자에게 보여 줄 것은 두 번째에서 끝나고, 세 번째는 그 뒤에 남는 뒷정리다. 아직 합의된 규약이 아니며 아래 「정해야 하는 것」이 남아 있다.
IUI 서버와 BE 서버 간 결합은 최대한 지양한다. 두 서버가 직접 부르지 않고 FE가 셋을 차례로 부르는 조율자가 된다. 둘을 잇는 끈은 검색 UUID 하나뿐이다 — BE가 1단계에서 발급하고, FE가 들고 있다가 3단계에 돌려준다.
세로선 셋은 각 서버의 시간축이다. 가로 화살표가 호출 한 번이고, 위에서 아래로 시간이 흐른다. BE와 IUI 사이에는 가로선이 없다 — 그것이 이 제안의 핵심이다.
| 단계 | 방향 | 보내는 것 | 받는 것 |
|---|---|---|---|
| 1 · 검증 요청 | FE → BE | 유저정보 · 사용자 input 텍스트 | — |
| FE ← BE | — | 검색 UUID · 상태값 | |
| 상태값이 OK 일 때만 2단계로 간다. 아니면 검색을 시작하지 않는다. | |||
| 2 · 검색 요청 | FE → IUI | 검색 | — |
| FE ← IUI | — | VisualSummary · 검색 결과 | |
| 사용자에게 보여 줄 것은 여기서 다 나왔다. 3단계는 응답을 기다리게 하지 않는다. | |||
| 3 · DA 정보 저장 | FE → BE | 검색 UUID · VisualSummary | — |
| FE ← BE | — | ACK | |
잘못된 입력으로 검색을 돌리지 않는다
검증이 검색보다 먼저 끝난다. 거절할 요청이면 IUI 서버는 부르지도 않으므로, 검색 자원을 쓰기 전에 걸러진다.
DA 저장이 사용자 응답을 늦추지 않는다
사용자 응답은 2단계에서 끝난다. 3단계는 그 뒤에 일어나므로, 기록이 느려도 화면이 기다리지 않는다.
BE와 IUI가 서로를 모른다
두 서버 사이에 호출이 없다. 한쪽의 배포·장애·스키마 변경이 다른 쪽 호출 계약을 건드리지 않는다. 공유하는 것은 검색 UUID 하나다.
1단계와 3단계는 다른 요청이다. 그 사이에 2단계가 끼어 있고, 3단계가 들고 오는 VisualSummary는 BE가 본 적 없는 IUI의 산출물이다. 검색 UUID가 그 둘을 같은 검색으로 묶는 유일한 열쇠다 — 이것이 없으면 BE는 어느 검증에 대한 기록인지 알 수 없고, 결국 IUI에 직접 물어보게 되어 지양하려던 결합이 생긴다.
아래는 이 제안이 아직 답하지 않은 것들이다. 구현 전에 정해야 한다.
출처: 사용자가 공유한 컴포넌트 검색 호출 순서(2026-09-16). 코드에서 확인하지 않았다 — 엔드포인트·필드명·상태값은 이 문서에 적힌 것이 전부이고, 구현된 것을 옮긴 것이 아니다. 단계 이름과 주고받는 값은 공유된 표기를 그대로 썼다.
S3는 AWS가 제공하는 파일 보관 서비스다. 사람에게 구글 드라이브가 있다면, 서버에게는 이런 파일 보관소가 있다고 생각하면 된다. 버킷(bucket)은 파일을 담는 보관함이다. 이번 작업은 환경별 S3 버킷 3개를 만들어 두었다.
miricanvas-component-search-{env}
Visual Summary/Frame 검색에 필요한 후보 데이터 파일. 준비된 데이터 사본을 “스냅샷”이라고 부른다. 표·차트 포함 여부와 형식·버전 필드를 확인해야 한다. 초기 comp-sign 메모의 「컴포넌트 버전 × 시그니처 버전」 키를 그대로 쓸지는 미확정이다.
현재 활성 버전과 사용할 수 있는 버전을 적어 둔 안내문. 그림에는 designcontent/data-version/ 경로로 표시되어 있다.
실행할 Rust 코드와 필요한 실행 환경을 포장한 컨테이너 이미지가 들어 있다.
Rust가 검색에 사용할 목록 파일과 버전 안내 파일이 들어 있다. 프로그램이 이 파일을 읽어야 실제 검색을 할 수 있다.
기존 인프라 방향은 검색용 데이터를 S3 파일로 관리하고 Rust가 메모리에 올려 검색하는 것이다. 현재 데이터는 Visual Summary/Frame 규격에 맞아야 한다. 초기 메모의 comp-sign 시그니처 17만 건과 메모리 예상치를 I.I.S Semantic Component 의 규모·사용량으로 적용하지 않는다 — 단위가 컴포넌트가 아니라 경계 노드라 건수부터 다시 세야 한다. 별도 DB를 두지 않는 결정은 Rust 검색 서버의 데이터 관리 방식에 관한 것이며, 기존 백엔드의 DB까지 없앤다는 뜻은 아니다. ADMIN 기능은 보류되었다.
SNAPSHOT_PATH는 서버 안의 로컬 검색 데이터 파일 경로를 알려 주는 설정이다. SNAPSHOT_URL은 원격 데이터 주소를 가리키는 설정 이름으로 그림에 등장한다. S3의 파일 주소와 서버 안의 파일 경로는 다른 값이다.
초기 그림에는 S3 로더 미구현이 표시됐고, 후속 공유에서도 스냅샷 로딩이 남은 핵심 작업으로 안내됐다. 파일 가져오기 → 읽기 → 메모리 적재를 완성하고, 실제 코드가 요구하는 입력과 배포 설정을 맞춰야 한다. 다운로드를 정확히 어느 단계에서 실행할지는 석님과 인프라 담당자의 확인이 필요하다.
관리자가 물을 내용: “어느 S3 파일을, 누가 언제 내려받아, 서버가 어떤 경로·방식으로 읽나요?”
위 목록은 확인할 항목이다. 자료에서 실제 미구현으로 명시된 것은 S3 로더이며, 각 가능성을 현재 발생한 오류로 단정하지 않는다.
도서관의 옛 목록에 적힌 책 위치와 현재 책장 위치가 다르면 책을 못 찾는다. 여기서도 Rust가 예전 데이터로 찾은 컴포넌트 키를 백엔드가 새 데이터 기준으로 조회하면 실패할 수 있다. 특히 서버를 한 대씩 교체하는 롤링 배포 중에는 구·신 서버가 함께 떠 있으므로 버전 관리가 중요하다.
| 상황 | 공유된 동작·방향 | 확인할 점 |
|---|---|---|
| 서버를 처음 켬 | S3 버전 안내를 보고 초기 데이터를 미리 읽음 | 최신 활성 버전과 가용 목록 중 어디까지 읽을지. 로딩 후 준비 완료 시점 |
| 요청 버전이 메모리에 있음 | 바로 해당 버전으로 검색 | FE가 보낸 버전과 실제 검색 버전이 일치하는지 |
| 요청 버전이 메모리에 없음 | 그 버전 파일을 S3에서 읽은 후 검색. 이를 lazy 로딩이라고 부름 | 새 버전을 읽는 시간, 로딩 중 요청 처리 방식 |
| 보관할 메모리가 부족함 | 오래 요청받지 않은 버전부터 내보내는 방향(LRU) | 버전 수·메모리 상한. 실측 후 확정으로 표시됨 |
| 새 버전 전환·문제 발생 | 여러 버전을 함께 보관하고 전환. 롤백용 2세대 보유 방향 | 전환 신호와 롤백 절차. 보유 정책과 LRU의 우선순위 합의 |
정해진 방향과 남은 결정을 나누어 관리한다. S3 + JSON, FE의 버전 전달은 기존 인프라 공유의 방향이다. 현재 Visual Summary 규약·후보 데이터에서 어떤 버전 필드를 사용할지는 다시 맞춰야 한다. 전환 트리거와 초기 로딩 범위, 메모리 상한의 세부 정책은 확정이 필요하다. 회의 메모에 남은 “필요 시 DB” 선택지는 이미 확정된 필수 DB 구축 업무로 잡지 않는다.
전체 데이터를 매번 다시 읽는 대신 추가·변경분을 S3에서 주기적으로 확인해 반영하는 계획이다. 이 자료에서는 갱신 중 요청 대기열 처리를 잠시 멈추는 방향을 논의했다. Mordor에서 변경분 파일과 목록을 만드는 파이프라인이 먼저 필요하다. 석님 로더 구현만으로 완료되는 작업은 아니다.
아래는 관리용으로 제안하는 완료 기준이다. “빌드 성공”과 “S3 파일 업로드”만으로 기능 배포 완료를 표시하지 않고, 실제 사용 경로가 어느 단계까지 동작하는지 확인한다.
처리 전 요청은 queue라는 대기줄에 쌓인다. 부하가 높으면 서버를 추가하는 scale out을 검토하고, 예상 대기 시간이 한도를 넘으면 오류를 반환한다.
예상 대기 시간은 요청 한 건의 평균 처리 시간 × 대기 요청 수로 이해하면 된다. 실제 임계값과 서버 추가 시점은 테스트로 확인해야 한다.
추가한 서버도 S3 데이터를 읽는 시간이 필요하다. 초기 기동, scale out 후 활성화, 없는 버전의 로딩, 증분 반영 시간을 각각 측정한다.
readyz는 “요청을 받아도 되는가”, healthz는 서버의 상태를 확인하는 용도다. 실제 검사 항목은 구현과 설정에서 합의한다.
Datadog은 처리 시간·자원 사용량 같은 운영 지표를, OpenSearch는 로그 검색을 위한 준비다. 컨테이너 재배포 후에도 오류 기록을 확인하도록 수집을 연결한다.
k6는 요청을 만들어 보내는 부하 테스트 도구다. 담당자와 결과 확인 일정을 따로 지정해야 한다.
| 근거 | 이 문서에서 사용한 내용 |
|---|---|
| 사용자가 제공한 “Rust 서버 (IUI 서버 독립) — 싱크 공유 내용” | DB 미사용 방향, 검색 이관 범위, S3·FE 버전 전달, dev 기동 오류, 담당자 협의, 로딩 시간·운영 준비 항목 |
| 첨부 그림 “comp-pass Rust 서버 인프라 조망 (component-search-api)” 상태 표기 2026-09-09 18:49 | 초기 구조·상태의 근거. ArgoCD 권한 오류·게이트웨이 미배포는 이 시점의 기록이며, 후속 공유가 있는 상태는 최신 내용으로 갱신 |
| 사용자가 제공한 후속 Slack 대화 ↗ | 게이트웨이 dev 검증·검색 API 실행 기반 준비 완료, CloudFront 요청, PR #865 검토·수정 중, Visual Summary에 맞춘 진행 의도, 기존 파일 탐색·부분 제작 검토. 사용자 제공 본문을 사용했으며 링크를 별도 조회한 것은 아님 |
| 2026-09-10 Slack 스레드 사용자 전달 · 저장소 미기록 정원석·이석·홍지혜 · 링크 없음 slack-logs/2026-09.md 는 09-02 까지 | v2.6 기준 추출(2.7 은 타임라인 부적합, 2.5 는 RLSC 절반만). 09.29 dev 전달 component 데이터로 I.I.S Semantic Component 증분 추출 → 컴포넌트는 BE, IIS 정보는 Rust. 이번 회차는 수기 DB insert(재영님), 적재 후 algorithm cell 이 Rust 메모리 적재. 다음 회차부터 pipeline 에 IIS step + upload target 에 rust server 추가 |
| 사용자의 최신 범위 정정·추가 공유 | 현재 Rust 구현은 Visual Summary이며 표·차트도 포함. 종전의 “이번 구현에는 시그니처가 없다”는 확인은 2026-09-10 공유로 「Rust 에 올리는 것은 I.I.S Semantic Component」로 구체화됐다. 원석님의 22일 추출 완료 희망, 지우님 백업 합류 예정도 유지. 추출 패키지 기한·합류일·상세 역할은 미정 |
| 과거 Component Signature 문서 §3 | 이전 안내의 용어 해석 근거였으나, 현재 Rust 작업의 추출 정의로 사용하지 않도록 정정. 과거 문서의 정의 자체를 삭제한 것은 아님 |
| Visual Summary Frame 문서 | 쿼리·후보 Frame, Visual Summary 슬롯 구조, comp-sign import 분리, Rust 코어 이관 계획, 기록 시점의 표·차트 후보 적재 누락. 현재 배포 상태를 확인한 근거로는 사용하지 않음 |
| 9월 9일 작업 로그 · Pod Sync | “Rust 개발 타임라인 정하기. 22일 전에 체크 완료 목표로”라는 기존 기록. 이번 추출 희망 일정과 동일한 마일스톤인지 미확인 |
| 관리 관점의 재구성 | 네 가지 권장 작업 순서, 담당자별 확인 질문, dev·전체 연동·운영 준비의 완료 기준. 신규로 합의된 일정이나 담당 배정을 뜻하지 않음 |
| 사용자가 공유한 컴포넌트 검색 호출 순서 · 2026-09-16 | 검증 → 검색 → DA 저장 세 단계, 검색 UUID 로 1·3 단계를 잇는 방식, IUI·BE 직접 결합 지양. 제안 단계이고 코드에서 확인하지 않았다 — 엔드포인트·필드명·상태값은 미정이다 |
VisualSummary payload 범위, 검색 UUID 의 수명과 IUI 전달 여부.miricanvas-iui · 구현: rust/comp-pass · 계획 문서: docs/comp-pass-server-plan.md/component-search/api/**. 초기 API는 /v1/search, Frame 문서의 Rust 계획은 POST /v1/frame-search. 현재 API 경로·입출력을 확정하고 PR #865·CloudFront와 맞출 것8080 · 준비·상태 확인: /readyz, /healthzPORT, SNAPSHOT_URL, CONFIG_URL, POLL_INTERVAL_SECS=60. 초기 기동 오류가 요구했던 설정: SNAPSHOT_PATH이 식별자들은 공유 자료를 옮긴 참고 정보다. 이 문서를 작성하며 저장소 코드·PR·클러스터의 최신 상태를 직접 조회한 것은 아니다.