database-design

190 개의 포스트

모델 서빙의 라우팅 현황 (새 탭에서 열림)

넷플릭스는 대규모 개인화 경험을 제공하기 위해 수백 개의 모델과 초당 100만 건의 요청을 처리하는 중앙 집중식 머신러닝(ML) 모델 서빙 플랫폼을 운영하고 있습니다. 이 플랫폼은 'Switchboard'라는 라우팅 계층을 통해 클라이언트 마이크로서비스와 복잡한 ML 모델 인프라를 분리하여, 클라이언트의 수정 없이도 새로운 모델을 신속하게 실험하고 배포할 수 있는 환경을 구축했습니다. 이를 통해 넷플릭스는 모델 추론뿐만 아니라 데이터 전처리 및 특징 추출을 포함한 전체 워크플로우를 표준화된 API로 추상화하여 혁신의 속도를 높이고 있습니다. ### 넷플릭스의 워크플로우 중심 모델 정의 * 넷플릭스에서 모델은 단순한 추론 함수(`score(features)`)를 넘어, 입력 데이터 변환, 특징(feature) 계산, 추론, 후처리를 모두 포함하는 독립적인 '워크플로우'로 정의됩니다. * 클라이언트는 사용자 ID나 국가와 같은 최소한의 컨텍스트만 제공하며, 모델 서빙 플랫폼이 필요한 데이터를 다른 마이크로서비스에서 가져와 직접 특징을 계산합니다. * 이러한 구조 덕분에 클라이언트는 모델의 내부 로직이나 데이터 의존성을 알 필요가 없으며, 모델의 아키텍처가 변하더라도 클라이언트 코드를 수정할 필요가 없습니다. ### 중앙 집중형 라우팅 엔진, Switchboard * 넷플릭스는 표준 API 게이트웨이나 서비스 메시가 제공하지 못하는 실험 플랫폼과의 통합, gRPC 지원, 도메인 특화 라우팅을 구현하기 위해 자체 프록시 서비스인 'Switchboard'를 개발했습니다. * Switchboard는 클라이언트 요청을 적절한 모델 인스턴스와 클러스터 샤드로 전달하는 역할을 수행하며, 초당 100만 건 이상의 요청을 처리하면서도 높은 가용성을 유지합니다. * 모델 배포 시 섀도 모드(Shadow mode), 카나리 배포(Canary), 롤백 등을 클라이언트 모르게 수행할 수 있어 안전한 운영이 가능합니다. ### 인프라 복잡성을 감추는 모델 샤딩 분리 * 모델은 트래픽 패턴, SLA, CPU/메모리 요구사항에 따라 여러 연산 클러스터 샤드(VIP 주소)에 분산 배치됩니다. * 서빙 플랫폼은 이러한 물리적 배치 상태를 클라이언트로부터 은폐하여, 인프라의 변경이나 모델의 샤드 이동이 클라이언트 서비스에 영향을 주지 않도록 설계되었습니다. * 이를 통해 ML 연구자는 인프라 제약 없이 자유롭게 실험을 설계하고 모델을 배포할 수 있습니다. ### 'Objective' 기반의 추상화 계층 * 플랫폼은 'Objective'라는 열거형(Enum) 단위를 통해 모든 요청을 관리하며, 이는 비즈니스 목적(예: 콘텐츠 추천, 결제 사기 탐지)을 나타냅니다. * Objective는 요청이 전달될 특정 서빙 클러스터와 모델 유형/버전을 결정하는 기준이 됩니다. * 또한, 각 Objective는 고유한 API 규격을 정의하여 서로 다른 도메인의 클라이언트가 동일한 방식으로 플랫폼과 통신할 수 있도록 표준화합니다. 성공적인 대규모 ML 시스템을 구축하려면 모델의 생명주기를 클라이언트 애플리케이션으로부터 완전히 격리해야 합니다. 넷플릭스의 사례처럼 워크플로우 단위의 모델 정의와 'Objective' 중심의 라우팅 추상화를 도입함으로써, 인프라의 복잡성을 관리하면서도 머신러닝 혁신의 속도를 극대화할 수 있습니다.

동적 워크플로우 소개: 테넌트를 따르는 내구성 있는 실행 (새 탭에서 열림)

Cloudflare는 멀티테넌트 SaaS나 AI 에이전트처럼 런타임에 코드가 생성되는 환경을 지원하기 위해 'Dynamic Workflows'를 도입했습니다. 이는 기존의 정적 배포 방식에서 벗어나, 각 테넌트가 작성한 고유한 워크플로우 코드를 동적으로 로드하고 실행할 수 있게 해주는 내구성 있는 실행(Durable Execution) 솔루션입니다. 개발자는 이를 통해 개별 테넌트나 세션마다 서로 다른 비즈니스 로직을 가진 워크플로우를 격리된 샌드박스 환경에서 안전하고 신속하게 구동할 수 있습니다. ### 정적 워크플로우 배포의 한계 * 기존 Cloudflare Workflows는 `wrangler.jsonc` 설정 파일에 워크플로우 클래스를 미리 정의해야 하는 정적 바인딩 구조를 가졌습니다. * AI가 사용자별로 코드를 생성하거나, 각 저장소마다 고유한 파이프라인을 갖는 CI/CD 서비스와 같은 현대적인 플랫폼에서는 모든 테넌트의 로직을 미리 정의하는 것이 불가능합니다. * 컴퓨트(Dynamic Workers)와 스토리지(Durable Object Facets)는 이미 동적 배포가 가능해졌으나, 장기 실행이 필요한 워크플로우 영역은 여전히 테넌트별 맞춤화가 어려운 공백으로 남아 있었습니다. ### 동적 워크플로우의 구조와 작동 방식 * `@cloudflare/dynamic-workflows` 라이브러리는 약 300줄의 TypeScript 코드로 구성되며, 'Worker Loader'가 각 테넌트의 코드로 호출을 라우팅하는 역할을 수행합니다. * 워크플로우 엔진이 `run(event, step)` 함수를 호출할 때, 라이브러리는 수 시간 또는 수일 후에도 해당 워크플로우를 생성했던 정확한 테넌트의 코드를 찾아 실행을 재개합니다. * 테넌트는 표준 `WorkflowEntrypoint`를 사용하여 평범한 워크플로우 코드를 작성하며, 자신이 동적으로 관리되는 환경에 있다는 사실을 인지할 필요 없이 독립적인 실행 환경을 보장받습니다. ### 주요 기능 및 기술적 이점 * **기존 기능 완전 계승**: 워크플로우 상태 확인(`.status()`), 일시 중지(`.pause()`), 재시도, 동적 단계 실행, `step.sleep()`을 이용한 장기 대기, `step.waitForEvent()` 등의 모든 기능을 그대로 사용할 수 있습니다. * **고성능 격리 환경**: 싱글 디지트 밀리초(단위 수 밀리초) 내에 격리된 샌드박스 Worker가 생성되어 보안성과 속도를 동시에 확보합니다. * **확장성**: Workflows V2 아키텍처를 기반으로 설계되어, 계정당 초당 300개의 새로운 인스턴스 생성과 최대 50,000개의 동시 인스턴스 처리를 지원하여 에이전트 중심의 서비스 확장에 최적화되어 있습니다. AI 에이전트가 스스로 도구를 작성하고 실행하거나, 고객마다 고유한 비즈니스 자동화 로직을 부여해야 하는 SaaS 플랫폼을 구축 중이라면 Dynamic Workflows가 최적의 대안이 될 것입니다. 이 시스템을 통해 인프라 관리의 부담 없이 테넌트별로 특화된 내구성 있는 워크플로우를 무한히 확장할 수 있습니다.

글로벌 파트너십과 오픈 리소스를 통한 과학적 영향력 촉진 (새 탭에서 열림)

구글 리서치는 책임감 있고 포용적이며 엄격한 연구 원칙을 바탕으로 오픈 사이언스를 추진하며, 전 지구적 파트너십과 공개 리소스를 통해 과학적 발견의 가속화를 도모하고 있습니다. 오픈소스 소프트웨어와 데이터셋을 공유함으로써 연구자들이 성과를 재현하고 확장할 수 있는 환경을 조성하며, 이는 단순히 기술적 혁신에 머무르지 않고 전 세계적인 사회적 진보를 이끄는 촉매제 역할을 합니다. 구글은 트랜스포머 아키텍처부터 전문화된 의료 및 기후 모델에 이르기까지 다양한 자원을 공개하여 전 세계 연구 생태계의 역량을 강화하는 데 집중하고 있습니다. **글로벌 파트너십과 연구 생태계 협력** * 유씨 산타크루즈(UCSC) 유전체 연구소, 자넬리아 연구 캠퍼스, 인도 의학 연구소(AIIMS) 등 전 세계 주요 기관과 협력하여 전문 분야별 연구를 심화하고 있습니다. * 인간 범유전체 연구 컨소시엄(HPRC), 지구 바이오게놈 프로젝트(EBP), NIH BRAIN 이니셔티브와 같은 거대 글로벌 컨소시엄에 참여하여 인류 공통의 과제 해결에 기여합니다. * 인도, 한국, 일본, 호주를 시작으로 지역별 과학 개발자 커뮤니티를 구축하기 위한 투자를 확대하여 실질적인 기술 실천 공동체를 형성하고 있습니다. **분야별 핵심 오픈소스 도구 및 데이터셋** * **유전체학:** DeepVariant, DeepConsensus, DeepPolisher 등 딥러닝 기반 도구를 통해 DNA 분석의 정밀도를 높였으며, 이를 통해 전 세계적으로 250만 명의 전장 유전체 분석을 지원했습니다. * **뇌과학:** 1.4페타바이트 규모의 인간 뇌 조직 데이터셋(H01)과 쥐 시각 피질 지도(MICrONS)를 공개했으며, Neuroglancer 및 TensorStore 같은 도구로 페타스케일의 고해상도 뇌 지도를 탐색하고 분석할 수 있게 했습니다. * **지구 및 기상 모델링:** 18억 개의 건물 감지 데이터를 포함한 'Open Buildings', 하이브리드 기상 모델인 'NeuralGCM', 산불 연구를 위한 'FireBench' 등을 통해 기후 변화 대응과 재난 예측을 돕고 있습니다. * **헬스케어:** MedGemma를 포함한 의료용 파운데이션 모델(HAI-DEF)은 480만 회 이상의 다운로드를 기록 중이며, '오픈 건강 스택(OHS)'은 10개국 이상에서 6,500만 명의 수혜자를 위한 디지털 건강 솔루션 구축에 활용되고 있습니다. **오픈 사이언스가 창출한 실질적 성과** * **유전체 연구 혁신:** UCSC와의 협업을 통해 유전적 변이 식별 오류를 50% 줄였으며, 이는 인류의 다양성을 보다 정확하게 반영하는 범유전체 참조 자료 구축으로 이어졌습니다. * **기상 예측과 농업 지원:** 시카고 대학교 연구팀은 NeuralGCM을 활용해 인도 몬순의 시작을 한 달 전 예측하는 데 성공했으며, 이 정보는 3,800만 명의 인도 농민에게 전달되어 작물 재배 최적화에 기여했습니다. * **의학적 발견:** 존스 홉킨스 대학교 연구진은 구글이 공개한 H01 뇌 데이터셋을 분석하여 기존 학설에 없던 새로운 신경 세포 통신 방식을 발견했으며, 이는 알츠하이머와 같은 질환 연구에 새로운 전기를 마련했습니다. * **인도주의적 활동:** UN 난민기구(UNHCR)는 Open Buildings 데이터를 활용하여 난민 거주지의 재난 대응 샘플링을 최적화하고 해수면 상승에 따른 위험도를 평가하고 있습니다. 오픈 사이언스는 기술적 장벽을 허물고 전 세계 연구자들이 동등한 출발선에서 혁신을 이룰 수 있게 합니다. 연구자와 개발자들은 구글 리서치가 공개한 MedGemma나 NeuralGCM과 같은 특화된 모델과 방대한 데이터셋을 적극 활용함으로써, 각자의 도메인에서 연구의 재현성을 확보하고 사회적 임팩트가 큰 발견을 더 빠르게 도출할 수 있을 것입니다.

Agents can now create Cloudflare accounts, buy domains, and deploy (새 탭에서 열림)

이제 AI 에이전트는 사람이 직접 대시보드에 접속하거나 신용카드 정보를 입력할 필요 없이, 스스로 클라우드플레어 계정을 생성하고 도메인을 구매하여 서비스를 배포할 수 있게 되었습니다. 클라우드플레어는 스트라이프(Stripe)와의 협업을 통해 '스트라이프 프로젝트(Stripe Projects)' 내에서 작동하는 새로운 프로토콜을 도입했으며, 이를 통해 에이전트가 소프트웨어 개발을 넘어 프로덕션 환경 구축까지 원스톱으로 처리할 수 있는 환경을 마련했습니다. 사용자는 최초의 권한 승인과 이용 약관 동의 외에는 복잡한 설정 과정에 개입할 필요가 없어 서비스 배포의 마찰력이 획기적으로 줄어들었습니다. **에이전트의 완전 자동화된 배포 흐름** * 사용자가 스트라이프 CLI를 통해 프로젝트를 초기화하면, AI 에이전트는 사용자의 스트라이프 계정 정보를 바탕으로 클라우드플레어 계정을 자동 생성하거나 기존 계정을 연결합니다. * 에이전트는 API 토큰을 발급받고, 도메인을 등록하며, 코드를 즉시 프로덕션 환경에 배포하는 모든 과정을 스스로 수행합니다. * 이 모든 과정은 사람이 대시보드에 들어가 API 토큰을 복사하거나 결제 수단을 수동으로 등록하는 단계 없이 하나의 흐름으로 진행됩니다. **상호운용성을 위한 세 가지 핵심 구성 요소** * **발견(Discovery):** 에이전트는 REST API 형태의 카탈로그를 조회하여 클라우드플레어의 도메인 등록과 같은 사용 가능한 서비스를 스스로 파악하고 선택할 수 있습니다. * **인증(Authorization):** 스트라이프가 신원 제공자(Identity Provider) 역할을 수행하여 사용자를 증명하면, 클라우드플레어는 즉시 계정을 프로비저닝하고 보안이 유지되는 자격 증명을 에이전트에게 반환합니다. * **결제(Payment):** 에이전트에게 실제 카드 번호를 공유하지 않고 스트라이프의 결제 토큰을 사용하며, 기본적으로 월 100달러의 지출 한도를 설정하여 예기치 못한 비용 발생을 방지합니다. **플랫폼 확정성 및 스타트업 지원** * 이 프로토콜은 스트라이프뿐만 아니라 로그인된 사용자를 보유한 어떤 플랫폼이든 '오케스트레이터' 역할을 맡아 클라우드플레어와 통합할 수 있도록 설계되었습니다. * 클라우드플레어는 이번 협업을 기념하여 스트라이프 아틀라스(Stripe Atlas)를 통해 법인을 설립하는 신규 스타트업에게 10만 달러 상당의 클라우드플레어 크레딧을 제공합니다. * 이를 통해 개발자들은 인프라 설정이라는 번거로운 작업에서 벗어나 AI 에이전트와 함께 아이디어를 프로덕션 수준의 서비스로 더욱 빠르게 전환할 수 있습니다. 에이전트 중심의 개발 환경을 구축하려는 개발자나 플랫폼 운영자라면 클라우드플레어의 'Code Mode MCP 서버'와 'Agent Skills'를 활용해 보시기 바랍니다. 인프라 구축의 모든 단계가 API화되어 있으므로, 사용자의 개입을 최소화하면서도 안전하고 확장 가능한 배포 자동화 시스템을 구현할 수 있습니다.

올해의 교육자 (새 탭에서 열림)

Grammarly는 학생들의 추천을 통해 교육 현장에서 커뮤니케이션의 가치를 실현하는 교사를 선정하는 ‘올해의 교육자상(Educator of the Year Award)’을 신설하고, 첫 번째 수상자로 센트럴 플로리다 대학교(UCF)의 훔베르토 로페즈 카스티요(Humberto López Castillo) 교수를 선정했습니다. 로페즈 카스티요 교수는 복잡한 학술적 개념을 대중의 언어로 번역하는 법을 가르치며, AI를 도구로서 비판적으로 수용하는 '계산기 원칙'을 통해 미래 지향적인 교육 모델을 제시합니다. 그의 교육 철학은 기술의 발전 속에서도 인간의 판단력과 청중 중심의 소통이 가장 강력한 힘이라는 점을 강조합니다. **학생의 목소리로 증명된 교육의 힘** - 이번 시상식은 학생들이 직접 교수님이 자신의 학업 여정과 글쓰기, 기술에 대한 사고방식을 어떻게 변화시켰는지 공유하는 비디오 제출 방식으로 진행되었습니다. - 첫 수상자인 로페즈 카스티요 교수는 "정교하면서도 접근하기 쉬운 언어"를 구사하도록 이끌어주었다는 제자 바르단 아바라디(Vardhan Avaradi)의 추천을 통해 선정되었습니다. - 소아과 의사이자 4개 국어 구사자, 공중보건 연구자라는 그의 다채로운 배경은 개인과 공동체를 동시에 아우르는 독특한 교육 철학의 기반이 되었습니다. **청중의 눈높이에 맞춘 커뮤니케이션 훈련** - 로페즈 카스티요 교수의 수업에서 학생들은 학술적 동료만을 위한 글쓰기에서 벗어나, 완전히 다른 청중에게 정보를 전달하는 과제를 수행합니다. - 공중보건이라는 복잡한 주제를 유치원생을 위한 그림책, HIV 환자의 삶을 다룬 보드게임, 결핵에 관한 랩 송, 역학을 다룬 팟캐스트 등으로 변주하며 소통 능력을 기릅니다. - 이는 소아과 의사로서 아이, 부모, 학회 전문가에게 각각 다르게 설명해야 했던 실전 경험에서 우러나온 교육 방식으로, 학생들이 졸업 후에도 실질적인 소통 역량을 갖추게 합니다. **비판적 사고를 전제로 한 AI 활용, '계산기 원칙'** - 교수는 AI를 금지하는 대신, 마치 수학 시간의 '계산기'처럼 강력하지만 인간의 비판적 사고가 뒷받침되어야 하는 도구로 정의합니다. - AI가 존재하지 않는 참고문헌을 생성(환각 현상)했을 때, 이를 처벌하기보다 소스를 확인하고 비판적으로 검토하는 '가르침의 순간'으로 활용하여 AI 문해력을 높입니다. - 실제 연구에서도 국립보건원(NIH)의 'All of Us' 데이터셋을 활용해 인구 집단을 분류하고 위험을 예측하는 머신러닝 프로젝트를 학생과 함께 진행하며, 인간이 주도하는 책임감 있는 AI 활용의 본보기를 보여줍니다. 교육의 미래는 단순히 새로운 도구를 채택하는 것에 있지 않습니다. 로페즈 카스티요 교수의 사례처럼, 도구를 현명하게 사용하는 법을 가르치고 목적 중심의 커뮤니케이션을 통해 소통의 대상인 '사람'을 놓치지 않는 태도를 길러주는 것이 AI 시대 교육자가 나아가야 할 방향입니다.

AI 시대에 인증 과제를 해결할 차세대 표준 후보, ID-JAG (새 탭에서 열림)

AI 에이전트가 다양한 기업용 서비스와 연동되는 과정에서 발생하는 인증 및 인가 복잡성을 해결하기 위해 **Identity Assertion JWT Authorization Grant(ID-JAG)**라는 새로운 표준안이 주목받고 있습니다. ID-JAG는 기존 SSO의 신뢰 모델을 API 접근 영역으로 확장하여, 기업 IdP가 중앙에서 권한 정책을 일원화해 관리하고 검증 가능한 JWT를 통해 안전하게 토큰을 교환하도록 돕습니다. 이를 통해 사용자 경험을 개선하고 보안 가시성을 확보함으로써, 복잡한 연동 구조가 AI 도입의 병목이 되지 않도록 하는 것이 핵심입니다. **ID-JAG의 개념과 기술적 배경** * SSO를 통해 확립된 IdP(Identity Provider)에 대한 신뢰를 앱 간 API 호출이나 에이전트 서비스 연동에 적용하는 방식입니다. * OAuth 2.0 Token Exchange(RFC 8693)와 JWT Profile for OAuth 2.0 Authorization Grants(RFC 7523)라는 기존의 두 표준 기술을 결합하여 작동합니다. * IdP가 서명한 검증 가능한 JWT를 일종의 '소개장'으로 발행하고, API 리소스 측 인가 서버가 이 소개장을 신뢰하여 최종 액세스 토큰을 발행하는 구조입니다. **핵심 구성 요소와 작동 흐름** * **주요 주체:** 요청 에이전트(AI 등), 기업 IdP(중앙 정책 보유), 인가 서버(대상 앱의 서버), 리소스 서버(실제 API)의 네 가지 역할로 구분됩니다. * **작동 프로세스:** 사용자가 에이전트에 로그인하여 ID 토큰 획득 → IdP에 토큰 교환을 요청하여 ID-JAG 발급 → 인가 서버에 ID-JAG를 제시하고 최종 액세스 토큰 획득 → 리소스 서버 API 호출 순으로 진행됩니다. * **권한 판단의 주체 변화:** 개별 서비스 간의 파편화된 관계 대신, 조직 전체를 관리하는 기업 IdP와 인가 서버 간의 신뢰 관계로 허가 판단 시점이 이동합니다. **조직의 운영 및 보안 측면의 이점** * **사용자 경험(UX) 개선:** 새로운 도구를 연동할 때마다 나타나는 권한 동의 화면(Consent Screen) 절차를 IdP 관리자 정책에 통합하여 사용자의 번거로움을 줄입니다. * **보안 가시성 확보:** 모든 서비스 연결 관계가 IdP로 집중되므로, 누가 어떤 에이전트를 통해 어떤 데이터에 접근했는지 중앙 로그를 통해 명확하게 감사(Audit)할 수 있습니다. * **중앙 집중형 리스크 통제:** 승인되지 않은 '섀도우 AI'의 접근을 차단하고, 보안 사고 발생 시 개별 엔드포인트를 수정할 필요 없이 IdP 단에서 즉각적으로 권한을 제어할 수 있습니다. * **토큰 스프롤(Sprawl) 방지:** 장기 유효한 API 키나 리프레시 토큰 대신 동적으로 발행되는 ID-JAG를 사용하여 시스템 곳곳에 흩어진 인증 정보 노출 리스크를 낮춥니다. **도입 시 고려 사항 및 실용적 제언** * **표준화 상태 유의:** 현재 IETF 드래프트 단계이며 RFC로 최종 확정된 사양이 아니므로, 향후 변경 가능성을 염두에 둔 유연한 아키텍처 설계가 필요합니다. * **사전 신뢰 관계 구축:** 요청 에이전트가 IdP와 인가 서버 모두에 OAuth 클라이언트로 등록되어야 하며, 각 주체 간의 명시적인 신뢰 설정이 선행되어야 합니다. * **결론:** AI 에이전트 도입으로 인해 파편화된 권한 관리에 어려움을 겪는 기업이라면, ID-JAG를 통해 인가 정책을 중앙화하고 보안 표준을 프로토콜 기반의 동적 신뢰 구조로 전환하는 전략적 검토가 권장됩니다.

GitLab CI/CD 및 Duo를 이용한 탐지 테스트 자동화 (새 탭에서 열림)

GitLab의 신호 엔지니어링(Signals Engineering) 팀은 보안 모니터링 파이프라인이 예기치 않게 중단되는 '침묵하는 실패'를 방지하기 위해 자동화된 탐지 테스트 프레임워크인 **WATCH(Weekly Attack Testing for Continuous Health)**를 개발했습니다. 이 프레임워크는 스테이징 환경에서 실제 악성 행위를 시뮬레이션함으로써 로그 수집부터 SIEM 탐지, SOAR 알림 라우팅에 이르는 전체 과정을 엔드투엔드(End-to-End)로 검증합니다. 이를 통해 보안팀은 인프라 변경이나 설정 오류 속에서도 핵심 탐지 로직이 상시 정상 작동한다는 확신을 얻을 수 있습니다. ### 기존 탐지 검증 방식의 한계 * **로그 재주입의 맹점:** 단순히 과거의 악성 로그를 SIEM에 다시 밀어 넣는 방식은 실제 로그 소스에서 SIEM으로 데이터가 흐르는 '로그 수집(Ingestion)' 단계의 오류를 포착할 수 없습니다. * **배포와 실행의 간극:** '코드로서의 탐지(Detections as Code)' 파이프라인은 탐지 규칙이 성공적으로 배포되었는지는 확인할 수 있지만, 실제 환경에서 해당 규칙이 트리거되어 경보까지 이어지는지는 보장하지 못합니다. * **환경의 가변성:** 로그 스키마 변경, SIEM 업데이트, 파이프라인 오설정 등 탐지 시스템을 망가뜨릴 수 있는 변수는 무수히 많으며, 이는 실제 사고 발생 시 경보가 울리지 않는 치명적인 결과로 이어질 수 있습니다. ### WATCH 프레임워크의 작동 원리 * **무작위 스케줄링:** 매주 GitLab CI/CD 파이프라인이 활성화된 모든 테스트를 탐색하고, 이를 일주일 중 무작위 시간대에 분산 배치합니다. 이는 테스트가 예측 가능해지는 것을 막고 실제 위협 상황과 유사한 환경을 조성합니다. * **사전 알림 및 등록:** 테스트 실행 직전, WATCH는 SOAR 시스템에 '사전 알림'을 보내 예상되는 탐지 항목을 등록하고 추적 가능한 기록을 생성합니다. * **공격 시뮬레이션:** 스테이징 환경에서 관리자 계정 비밀번호 재설정이나 수상한 API 호출과 같은 실제 공격 행위를 스크립트로 실행합니다. * **알림 상관관계 분석:** SIEM에서 발생한 경보가 실제 침해 사고인지 WATCH 테스트인지 판별하기 위해 '실행 시간, 행위자 식별자(IP/ID), 탐지 규칙 ID'라는 세 가지 요소를 대조합니다. 이를 통해 테스트 경보가 실제 사고 대응팀(SIRT)으로 에스컬레이션되는 것을 방지합니다. ### GitLab CI/CD를 활용한 파이프라인 구조 * **`schedule_pipelines` 단계:** 전체 테스트를 그룹화하고 무작위 실행 시간이 설정된 하위 파이프라인을 생성하여 일주일간의 테스트 일정을 관리합니다. * **`run_tests` 단계:** 할당된 시뮬레이션을 실제로 수행하며, 실행 통계와 SOAR 레코드 ID를 저장하여 후속 단계에서 검증할 수 있도록 준비합니다. * **`pages` 단계:** SOAR 시스템을 쿼리하여 경보가 정상적으로 생성 및 라우팅되었는지 최종 확인합니다. 결과는 GitLab Pages 대시보드에 업데이트되며, 탐지 실패 시 보안팀의 슬랙 채널로 즉시 알림을 보냅니다. 상용 침해 및 공격 시뮬레이션(BAS) 도구는 비용이 많이 들고 개별 기업의 특수한 탐지 스택에 맞춤화하기 어렵습니다. GitLab의 WATCH 사례처럼 자사의 CI/CD 인프라와 SOAR를 결합한 자동화 프레임워크를 구축하면, 저비용으로도 보안 모니터링 시스템의 건강 상태를 지속적으로 검증하고 신뢰도를 높일 수 있습니다.

에이전트에게 결제 능력을 부여하기 (새 탭에서 열림)

Stripe은 AI 에이전트가 인터넷 경제의 능동적인 주체로 참여할 수 있도록 '에이전트용 Link 지갑(Link’s wallet for agents)'과 '에이전트용 Stripe Issuing'을 출시했습니다. 이 서비스는 에이전트에게 일회용 가상 카드나 공유 결제 토큰(SPT)을 발급하여 기존 결제 시스템에서 안전하게 구매를 수행할 수 있게 하며, 사용자는 앱을 통해 결제 요청을 검토하고 승인할 수 있는 통제권을 갖습니다. 결과적으로 복잡한 결제 인프라를 직접 구축할 필요 없이 AI 에이전트가 실질적인 상거래를 수행할 수 있는 기반을 마련해 줍니다. ### 에이전트용 Link 지갑의 작동 방식 * **보안 결제 수단 제공**: 에이전트는 사용자의 실제 카드 정보를 직접 보지 못하며, 대신 일회용 가상 카드나 SPT(Shared Payment Token)를 할당받아 결제를 진행합니다. * **OAuth 기반 권한 부여**: 사용자는 표준 OAuth 흐름을 통해 자신의 Link 지갑에 대한 접근 권한을 에이전트에게 부여할 수 있습니다. * **실시간 승인 프로세스**: 에이전트가 결제 요청을 생성하면 사용자는 Link의 웹 또는 모바일 앱(iOS/Android)에서 알림을 받고, 금액, 통화, 가맹점 등의 정보를 확인한 후 최종 승인합니다. * **다양한 결제 수단 추상화**: 현재 카드와 SPT를 지원하며, 향후 스테이블코인 및 기계 전용 결제 프로토콜 등으로 지원 범위를 확대할 예정입니다. ### 에이전트용 Stripe Issuing을 통한 맞춤형 인프라 * **API 기반 커스터마이징**: 독자적인 에이전트 지갑이나 카드 서비스를 구축하려는 기업은 Stripe Issuing API를 통해 온보딩, 자금 흐름, 지출 한도 등을 직접 설계할 수 있습니다. * **정교한 지출 제어**: 카드 수준의 권한 설정, 트랜잭션 승인 시점의 사기 방지 제어, 실시간 카드 활동 모니터링 기능을 제공합니다. * **자금 관리 최적화**: 가상 카드 발급부터 자금 보관, 지출 모니터링까지 에이전트 금융 워크플로우에 필요한 모든 하부 구조를 지원합니다. ### 주요 활용 사례 및 비즈니스 확장성 * **비즈니스 자동화**: 개발자는 에이전트를 활용해 기업의 반복적인 지출이나 프로그램 방식의 구매 워크플로우를 자동화할 수 있습니다. * **핀테크 및 SaaS**: 핀테크 제공업체는 실시간 지출 관리 시스템에 에이전트 발행 카드를 내장할 수 있으며, 수직형 SaaS 플랫폼은 중소상공인(SMB) 고객에게 자사 브랜드의 에이전트 결제 기능을 제공할 수 있습니다. * **마켓플레이스 효율화**: 판매자가 물류, 공급업체 결제, 주문 이행 등을 에이전트를 통해 자동 처리하도록 지원하여 운영 효율을 높일 수 있습니다. 개인 비서나 쇼핑 에이전트와 같은 소비자 지향 AI 서비스를 개발하는 기업이라면, 직접 복잡한 지갑 인프라를 구축하기보다 2억 명 이상의 사용자를 보유한 Link 지갑 기능을 도입하는 것이 효율적입니다. 보다 세밀한 금융 로직과 브랜드 경험이 필요한 경우에는 Stripe Issuing API를 활용하여 독자적인 에이전트 결제 생태계를 구축하는 것을 권장합니다.

GitLab을 사용하여 소프트웨어 개발을 쉽게 가르치는 방법 (새 탭에서 열림)

워싱턴 대학교의 Stephen G. Dame 강사는 'GitLab for Education' 프로그램을 활용해 대규모 소프트웨어 개발 강의의 과제 배포 및 피드백 과정을 효율적으로 관리하고 있습니다. GitLab의 그룹 및 하위 그룹 구조를 통해 복잡한 권한 설정을 체계화하고, 실제 현업과 유사한 워크플로우를 교육 현장에 도입하여 학생들에게 실무적인 개발 환경을 제공하는 것이 핵심입니다. 이를 통해 교강사는 행정적 부담을 줄이면서도 학생 개개인에게 구체적이고 맥락 있는 코드 리뷰를 전달할 수 있습니다. ### 그룹 및 하위 그룹을 활용한 체계적 구조 설계 * GitLab의 고유한 '그룹(Groups)' 및 '하위 그룹(Subgroups)' 기능을 사용하여 대학 부서, 강의, 역할별로 계층적인 구조를 설계합니다. * 최상위 그룹(예: UWTeaching) 아래에 개별 강의 하위 그룹을 두고, 그 안에 강의 자료, 학생 전용 그룹, 채점자 그룹 등을 구분하여 관리합니다. * 권한 상속 기능을 활용해 학생들에게는 '리포터(Reporter)' 권한을 부여함으로써, 강의용 템플릿 코드를 복제(Clone)하거나 가져올(Pull) 수는 있지만 원본 소스에 직접 푸시(Push)할 수는 없도록 제어합니다. * 학생들은 개인별 비공개 저장소를 생성하여 자신의 버전 히스토리를 관리하고, SSH 키 설정을 통해 로컬 환경이나 가상 머신에서 원활하게 작업할 수 있습니다. ### REST API 기반의 관리 자동화 * 수강생이 많은 대규모 강의의 경우, GitLab REST API와 Python 스크립트를 활용해 학생별 하위 그룹 생성 및 멤버 추가 과정을 자동화할 수 있습니다. * 학생의 사용자 이름을 기반으로 개인별 비공개 하위 그룹을 생성하고, 학기 종료 시점에 맞춰 권한이 자동으로 만료되도록 '만료일(Expiration date)'을 설정하여 보안을 유지합니다. * 이러한 자동화 워크플로우는 수동 관리에서 발생할 수 있는 실수를 방지하고 교강사가 교육 콘텐츠에 더 집중할 수 있는 시간을 확보해 줍니다. ### 머지 리퀘스트(Merge Request)를 통한 실무형 피드백 * 학생들은 과제 제출 시 '머지 리퀘스트(MR)'를 생성하며, 강사는 이를 통해 변경된 코드의 차이점(Diff)을 한눈에 확인하고 검토합니다. * 강사는 특정 코드 라인에 직접 인라인 댓글을 남겨 단순히 틀린 부분을 지적하는 것을 넘어, 왜 수정이 필요한지 맥락 있는 피드백을 제공합니다. * 학생들은 실제 현업의 필수 프로세스인 버전 관리와 코드 리뷰를 자연스럽게 경험하며 추상적인 개념이 아닌 실전적인 개발 습관을 체득하게 됩니다. ### 실용적인 권장 사항 처음 GitLab을 교육에 도입한다면 단일 강의 그룹과 기본 과제 템플릿으로 간단하게 시작하여 점진적으로 구조를 확장하는 것이 좋습니다. 'GitLab for Education' 프로그램을 신청하면 Ultimate 등급의 기능을 무료로 사용할 수 있으므로, 무제한 리뷰어 설정과 추가 컴퓨팅 리소스를 활용하여 교육의 질을 높일 것을 추천합니다.

양자 컴퓨터가 등장하기 10년 전 우리가 양자 내성 암호를 도입한 이유 (새 탭에서 열림)

토스페이먼츠는 20년 된 레거시 시스템을 개편하며 수만 가맹점의 결제 안정성을 유지하는 동시에, 미래의 보안 위협에 대비한 기술적 도약을 시도했습니다. 특히 기존 암호화 체계를 무력화할 수 있는 양자 컴퓨팅의 위협에 선제적으로 대응하기 위해, 4년에 걸친 단계적 로드맵을 통해 양자 내성 암호(PQC)를 성공적으로 도입했습니다. 이는 단순히 기술적 업그레이드를 넘어 가맹점과의 복잡한 이해관계를 조정하며 이뤄낸 보안 인프라 현대화의 결실입니다. **레거시 보안 개편의 현실적 난관** * **가맹점 호환성 문제**: 브라우저와 달리 서버 간 통신(API)은 노후화된 인프라에서 실행되는 경우가 많아, 최신 보안 프로토콜 적용 시 수만 가맹점의 결제가 중단될 위험이 큼. * **기술적 소통의 장벽**: 보안 업그레이드에 필요한 복잡한 기술 용어는 전담 개발팀이 없는 영세 가맹점주들에게 큰 부담이 되며, 이는 전체 보안 수준을 높이는 데 병목 현상을 일으킴. * **보수적 운영 원칙의 충돌**: "망가지지 않았다면 건드리지 않는다"는 안정성 최우선의 원칙이 보안 고도화라는 변화의 의지와 충돌하는 지점이 발생함. **양자 컴퓨팅과 기존 암호 체계의 위협** * **전통적 암호 알고리즘의 한계**: 현재 널리 쓰이는 RSA, ECDSA는 소인수분해나 타원곡선 연산의 어려움에 기반하지만, 양자 컴퓨터는 이를 수 시간 내에 풀어낼 수 있음. * **Q-Day와 선점 공격(HNDL)**: 양자 컴퓨터가 암호를 해독하게 되는 'Q-Day'에 대비해야 함. 특히 지금 암호화된 데이터를 미리 수집해 두었다가 나중에 양자 컴퓨터로 복호화하는 'Harvest Now, Decrypt Later' 공격은 현재의 데이터 안전을 실질적으로 위협함. * **결제 데이터의 가치 유지**: 결제 정보는 시간이 지나도 가치가 유효하므로, 미래의 해킹 위협으로부터 보호하기 위해 지금 당장 강력한 암호 체계 도입이 필요함. **4단계 보안 프로토콜 고도화 과정** * **HTTP/3 도입 (2022)**: PG 업계 최초로 최신 웹 프로토콜을 도입하여 결제 속도를 개선하고, 최신 보안 규격인 TLS 1.3 사용을 강제할 수 있는 기반을 마련함. * **취약한 암호 스위트 제거 및 TLS 1.3 확산 (2022~2025)**: 보안성이 낮은 구형 암호화 방식들을 단계적으로 퇴출하고, 가맹점들의 환경을 최신 전송 계층 보안 프로토콜로 전환하도록 유도함. * **양자 내성 암호(PQC) 구현 (2026)**: 양자 컴퓨터의 공격에도 견딜 수 있는 차세대 암호 알고리즘을 최종적으로 적용하여 미래 지향적인 보안 체계를 완성함. 보안은 "현재 문제가 없다"고 해서 안주할 수 있는 영역이 아닙니다. 특히 결제 시스템처럼 민감한 정보를 다루는 서비스는 가맹점의 기술적 부채를 고려하면서도, 미래의 잠재적 위협인 양자 컴퓨팅 공격 등에 대비해 끊임없이 인프라를 현대화하는 선제적인 자세가 필요합니다.

넷플릭스의 카메라 파일 처리 규모 확장 (새 탭에서 열림)

넷플릭스는 전 세계에서 생성되는 방대한 양의 카메라 원본 푸티지를 효율적으로 처리하기 위해 '미디어 프로덕션 스위트(MPS)'를 구축하고, 이를 업계 표준 솔루션인 FilmLight API(FLAPI)와 통합했습니다. 자체 엔진을 처음부터 개발하는 대신 검증된 외부 기술을 클라우드 기반의 서버리스 환경에 내재화함으로써, 복잡한 메타데이터 관리와 고해상도 이미지 프로세싱의 일관성을 확보했습니다. 이를 통해 제작 현장의 수동 작업을 자동화하고 기술적 오류를 최소화하여 창작자들이 오로지 작품의 퀄리티에만 집중할 수 있는 확장성 있는 제작 생태계를 마련했습니다. ### 미디어 프로덕션 스위트(MPS)의 도입 배경 * **제작 복잡도 해소**: 글로벌 제작 규모가 커짐에 따라 파일 관리 업무(File Wrangling)가 창의적인 의사결정 시간을 잠식하고, 지역 및 업체별로 미디어 처리 방식이 일관되지 않는 문제가 발생했습니다. * **휴먼 에러 방지**: 수동으로 진행되는 미디어 관리 프로세스는 실수가 발생하기 쉽고 감사(Audit)가 어려워, 이를 자동화하고 표준화할 필요성이 커졌습니다. * **효율성 극대화**: 반복적인 워크플로우를 공통 플랫폼으로 통합하여 프로덕션부터 포스트 프로덕션까지의 미디어 이동을 간소화하고자 했습니다. ### 핵심 엔진으로서의 FilmLight API(FLAPI) 통합 * **신뢰성 있는 컬러 사이언스**: 업계에서 널리 사용되는 Baselight 및 Daylight의 엔진을 API 형태로 활용하여, 다양한 카메라 포맷에 대한 검증된 디베이어링(Debayering)과 컬러 처리를 보장받았습니다. * **최신 포맷 대응**: 매번 출시되는 새로운 카메라와 녹화 포맷에 대응하기 위해 자체 엔진을 유지보수하는 대신, 전문 파트너사인 FilmLight의 기술력을 활용해 유연성을 확보했습니다. * **인프라 호환성**: FLAPI를 도커(Docker) 이미지로 패키징하여 넷플릭스의 클라우드 인프라와 전 세계 프로덕션 컴퓨팅 센터에 동일하게 배포함으로써 작업의 일관성을 유지합니다. ### 메타데이터 파싱 및 워크플로우 검사 * **데이터 정규화**: 푸티지 입고 시 FLAPI를 통해 카메라 메타데이터를 추출하고, 이를 넷플릭스의 표준 스키마로 변환하여 하위 프로세스에서 검색 및 재사용이 가능하도록 만듭니다. * **자동화된 검증**: 타임코드 및 릴(Reel) 이름을 기반으로 푸티지를 매칭하고, 처리 과정에서 발생할 수 있는 오류를 추적하거나 파이프라인 전체의 유효성을 검사하는 데 활용합니다. ### VFX 플레이트 생성 및 결과물 자동화 * **정밀한 이미지 처리**: ASC FDL(Framing Decision Lists)을 활용한 크롭 및 디스퀴즈(De-squeeze), AMF(ACES Metadata Files)를 통한 일관된 컬러 파이프라인 적용으로 정확한 VFX 소스를 생성합니다. * **워크플로우 일관성**: 제작 현장의 데일리 작업부터 최종 완성 단계까지 동일한 컬러 변환이 적용되도록 보장하며, 이를 통해 VFX 업체 등 협업 파트너에게 정확한 OpenEXR 파일을 제공합니다. * **사전 검증**: 워크플로우 전문가가 워크스테이션에서 내린 결정사항을 클라우드 파이프라인에 그대로 적용하여 실제 촬영 시작 전 프로세스를 완벽히 검증할 수 있습니다. ### 클라우드 네이티브 미디어 팩토리 아키텍처 * **서버리스 및 컨테이너화**: 고성능 GPU 워크스테이션에 의존하는 전통적인 방식에서 벗어나, 리눅스 도커 이미지 기반의 서버리스 함수로 작업을 분산 처리합니다. * **CPU 기반 확장성**: 특정 고사양 하드웨어 대신 범용 CPU 인스턴스에서 작동하도록 최적화하여, 클라우드의 유연한 컴퓨팅 자원을 활용한 대규모 병렬 처리를 실현했습니다. * **상태 없는(Stateless) 운영**: 각 작업 단위가 독립적이고 상태를 유지하지 않도록 설계하여, 오류 발생 시 즉각적으로 재실행할 수 있는 높은 운영 신뢰성을 확보했습니다. 넷플릭스의 사례는 모든 기술을 내재화하기보다 업계 표준 솔루션을 클라우드 네이티브 환경에 전략적으로 통합함으로써 얻을 수 있는 확장성의 이점을 잘 보여줍니다. 대규모 미디어 처리가 필요한 기업이라면 단일 장비의 성능 향상보다는 작업을 원자화(Atomicity)하고 API 기반의 클라우드 병렬 처리 구조를 구축하는 것이 비용 효율성과 안정성 측면에서 유리합니다.

StarRocks 운영기: Resource Group으로 멀티테넌트 워크로드 격리하기 (새 탭에서 열림)

토스는 서비스 조회와 대규모 분석 쿼리를 하나의 플랫폼에서 처리하기 위해 StarRocks를 실시간 OLAP 엔진으로 도입하고, 다양한 워크로드가 공존하는 환경에서 리소스 그룹(Resource Group)을 통해 안정적인 운영 체계를 구축했습니다. 특히 CPU 우선순위 설정과 전용 코어 할당 방식을 전략적으로 선택하여, 대규모 배치 작업이 진행되는 중에도 서비스 쿼리의 응답 속도(SLA)를 일관되게 유지하는 최적의 격리 구조를 설계했습니다. **비즈니스 중요도에 따른 워크로드 분류** * 워크로드의 성격에 따라 서비스 쿼리, 서버 배치, 대규모 적재·백필, 모니터링·사용자 도구 순으로 우선순위를 정의했습니다. * 실시간 응답이 필수적인 서비스 쿼리는 가장 먼저 보호하고, 클러스터 전체에 부하를 줄 수 있는 대규모 적재나 단순 모니터링 조회는 하위 순위나 상한선을 두어 관리합니다. **가중치 기반의 유연한 리소스 분배 (cpu_weight)** * CPU 경합이 발생할 때 설정된 비율에 따라 리소스를 분배하는 방식으로, Linux CFS(Completely Fair Scheduler)와 유사한 자체 스케줄링 메커니즘을 사용합니다. * 리소스가 여유로울 때는 다른 그룹의 남는 자원을 빌려 쓸 수 있어(Borrowing), 일반적인 멀티테넌트 환경에서 리소스 효율성을 극대화하는 기본 설정으로 활용됩니다. * 내부적으로 파이프라인 드라이버가 100ms 타임 슬라이스 단위로 양보하며 동작하므로, 중요도가 높은 그룹이 더 많은 CPU 시간을 확보하게 됩니다. **물리적 코어 예약을 통한 배타적 격리 (exclusive_cpu_cores)** * 높은 SLA가 요구되는 특정 서비스의 경우, 물리적 코어를 전용으로 예약하여 다른 워크로드의 간섭을 완전히 차단합니다. * 이 설정은 단순히 논리적 할당에 그치지 않고, `pthread_setaffinity_np`를 통해 스레드를 코어에 바인딩하며 쿼리 실행을 위한 3벌의 ThreadPool(Driver, Scan, ConnectorScan)을 별도로 생성합니다. * 공유 리소스 풀과의 경합이 원천적으로 제거되므로, 헤비 배치 작업과 서비스 조회가 겹치는 상황에서도 응답 시간이 튀는 현상을 방지할 수 있습니다. **토스쇼핑 사례를 통한 단계적 최적화** * 초기에는 `cpu_weight` 조정을 통해 서비스 계정에 높은 우선순위를 부여했으나, 대규모 배치 작업 시 서비스 응답 속도가 불안정해지는 한계가 있었습니다. * 이를 해결하기 위해 서비스 전용 리소스 그룹에 `exclusive_cpu_cores`를 적용하여 물리적인 리소스 벽을 세웠습니다. * 결과적으로 분당 1,500건 이상의 서비스 요청이 발생하는 구간에서도 배치 작업의 영향 없이 안정적인 레이턴시를 확보하는 데 성공했습니다. **정교한 쿼리 매칭을 위한 Classifier 설계** * `user`, `role`, `query_type`, `db` 등의 속성을 기반으로 쿼리를 적절한 리소스 그룹에 할당하는 Classifier 규칙을 수립했습니다. * 운영 안정성을 위해 가급적 `user` 또는 `db` 단위로 그룹을 묶는 패턴을 권장하며, 이를 통해 특정 서비스나 배치 주체가 정해진 리소스 범위 내에서만 동작하도록 강제합니다. * CPU 제어 외에도 `mem_limit`과 `concurrency_limit`을 병행 설정하여 풀 스캔 쿼리의 메모리 독점이나 과도한 동시 접속으로 인한 클러스터 마비를 방지합니다. **실용적인 운영 제언** 가장 효율적인 운영 전략은 기본적으로 `cpu_weight`를 사용하여 리소스 효율을 높이되, 실시간 서비스와 같이 지연 시간에 민감한 워크로드에 한해서만 `exclusive_cpu_cores`를 단계적으로 도입하는 것입니다. 또한 리소스 그룹 설정 시 실제 물리 코어 수와 워크로드 간의 의존 관계를 면밀히 검토해야 예상치 못한 성능 저하를 막을 수 있습니다.

양자컴퓨터 시대에 대비한 양자내성암호 적용, 왜 10년 먼저 서비스에 적용했을까? (새 탭에서 열림)

토스페이먼츠는 20년 된 레거시 시스템을 개편하며 수만 개 가맹점의 안정성을 유지하는 동시에, 양자컴퓨터 시대를 대비한 보안 프로토콜 고도화를 성공적으로 완수했습니다. 보안은 '현재의 안전'뿐만 아니라 미래의 위협까지 선제적으로 대응해야 하는 영역이기에, 4년에 걸친 단계적 로드맵을 통해 가맹점의 부담을 최소화하며 양자내성암호(PQC)를 도입했습니다. 결제 데이터의 장기적 안전을 확보하기 위해 기술적 한계를 넘어서는 전사적 협업과 가맹점 밀착 지원이 이 과정의 핵심이었습니다. **보안 프로토콜 개선을 가로막는 관성과 현실적 제약** * **보수적 운영 원칙:** "돌아가면 건들지 마라"는 미션 크리티컬한 결제 서비스의 불문율이 보안 업데이트의 큰 장벽이 됩니다. * **가맹점의 낙후된 기술 스택:** 수만 개 가맹점 중에는 수십 년 전 기술 스택을 그대로 사용하는 곳이 많아, 최신 보안 정책 적용 시 결제가 중단될 위험이 큽니다. * **기술 지원의 한계:** 보안 용어에 익숙하지 않은 소상공인이나 전담 개발팀이 없는 가맹점은 단순 안내문만으로 대응하기 어려워 세밀한 기술 컨설팅이 필수적입니다. **양자컴퓨터의 위협과 '선수집·후복호화' 공격** * **기존 암호 체계의 붕괴:** 현재 사용되는 RSA, ECDSA 등은 양자컴퓨터의 압도적인 계산 능력 앞에서 사실상 무용지물이 됩니다. * **선수집·후복호화(Harvest Now, Decrypt Later):** 지금 암호화된 데이터를 미리 수집해두었다가 나중에 양자컴퓨터로 풀어보는 공격 방식으로, 결제 데이터처럼 장기적 가치를 지닌 정보에 치명적입니다. * **Q-Day 대비:** 실용 수준의 양자컴퓨터가 등장할 2030년경을 대비해, 데이터 유효 기간을 고려하면 지금 당장 암호 체계를 전환해야 합니다. **4단계 보안 프로토콜 고도화 로드맵** * **HTTP/3 도입 (2022):** 브라우저가 자동으로 최신 규약을 선택하게 함으로써 가맹점 작업 없이 보안성과 속도를 동시에 개선했습니다. * **취약 Cipher Suite 제거 (2022~2025):** 가장 고된 작업으로, 가맹점별 사용 환경을 분석해 3년 넘게 개별 기술 지원과 유예 기간을 거쳐 안전하지 않은 알고리즘을 퇴출했습니다. * **TLS 1.3 전면 도입 (2022~2025):** 구형 환경과의 호환성을 위해 TLS 1.2를 유지하면서도, 지원 가능한 클라이언트는 자동으로 더 안전한 1.3 버전을 쓰도록 기본값을 상향했습니다. * **양자내성암호(PQC) 도입 (2026):** PQC 지원 브라우저에는 최상위 보안 채널을 제공하고 미지원 환경에는 기존 암호를 제공하는 하이브리드 방식으로 연동 부담 없이 미래 위협에 대응했습니다. **조직적 협업과 실증적 성과** * **다학제적 팀워크:** 자체 데이터센터(IDC)를 관리하는 인프라 팀, AWS 환경을 담당하는 서버 플랫폼 팀, 그리고 가맹점 접점에서 기술 상담을 수행하는 TAM 팀의 유기적 협업이 성공의 열쇠였습니다. * **민간 보안 선도:** 정부의 '양자내성암호 전환 마스터플랜'에 발맞추어 민간 결제 생태계에서 선제적으로 기술 실증을 완료하여 결제 보안의 새로운 표준을 제시했습니다. 결제 서비스의 보안은 단순히 서버 설정을 바꾸는 기술적 작업을 넘어, 연결된 수많은 파트너와 함께 호흡하며 신뢰를 쌓아가는 과정입니다. 미래의 보안 위협은 이미 시작되었기에, 가맹점 환경을 배려하면서도 선제적으로 암호 체계를 전환하는 결단이 지속 가능한 비즈니스를 위한 필수 조건입니다.

토스플레이스 데이터봇 ‘판다(PANDA)’를 소개합니다 : 모든 팀원이 데이터 전문가처럼 일하는 방법 (새 탭에서 열림)

토스플레이스는 데이터 분석가에게 집중된 단순 추출 요청을 해결하고 전사적인 데이터 민주주의를 실현하기 위해 AI 데이터 분석 어시스턴트 ‘판다(PANDA)’를 개발했습니다. 판다는 단순한 챗봇을 넘어 표준 데이터 마트 정비와 에이전트 기반의 자율 루프 시스템을 통해 데이터 조회부터 실무 인사이트 제공까지 수행하며, 출시 후 전사 구성원의 70%가 활용하는 필수적인 도구로 자리 잡았습니다. 기술적 복잡함보다 비즈니스 맥락과 데이터 거버넌스에 집중함으로써, 누구나 데이터 분석가의 도움 없이도 정확한 의사결정을 내릴 수 있는 환경을 구축했다는 데 큰 의의가 있습니다. ### 데이터 신뢰성을 위한 표준 데이터 마트(SSOT) 구축 * AI가 일관된 답을 낼 수 있도록 Data Analysis와 Platform 팀이 협업하여 핵심 데이터를 단일화된 테이블로 정비했습니다. * **표준 네이밍 컨벤션:** 테이블명은 `{역할}_{도메인}_{주제}`(예: fact_device_error_log)로, 컬럼명은 `{접두어}_{대상}_{속성}_{접미어}`(예: is_merchant_active)로 규칙화하여 AI가 이름만으로도 데이터의 목적을 이해하게 했습니다. * 모든 테이블과 컬럼에 상세 설명을 추가하여 AI가 데이터를 정확하게 탐색할 수 있는 기반 정보를 제공했습니다. ### 데이터 선택의 정확도를 높이는 Scoring & Ranking 시스템 * 질문에 대해 매번 다른 테이블을 선택하는 문제를 방지하기 위해 유사도와 신뢰도를 결합한 점수 체계를 도입했습니다. * **최종 점수 산출:** `(질문-테이블 유사도) × (데이터 계층 가중치)` 공식을 적용합니다. * **계층별 가중치:** 전사 주요 지표(SSOT)는 4배, 검증된 표준 마트는 3배, 도메인 마트는 2배, 원시 로그 데이터는 1배의 가중치를 부여하여 가장 신뢰할 수 있는 소스를 우선 선택하게 합니다. * dbt tags를 활용해 관리되는 테이블만 Manifest 파일로 가져와 탐색 범위를 최적화했습니다. ### 비즈니스 맥락 연결과 에이전틱 루프(Agentic Loop) * ‘설치 매장’이나 ‘업종 분류’와 같은 비즈니스 용어 정의를 데이터 구조와 연결하여 AI가 단순 수치 이상의 맥락을 파악하도록 설계했습니다. * AI가 스스로 상황에 맞는 도구를 선택하고, 결과가 부정확할 경우 스키마를 다시 확인하여 쿼리를 수정 및 재실행하는 자율적 재시도 과정을 거칩니다. * '테이블 탐색 → 쿼리 실행 → 결과 검증 → 수정 → 최종 결과 도출'의 과정을 반복하며 정답률을 높이는 구조를 갖췄습니다. ### 실무 활용성을 고려한 답변 구조 및 성과 * 단순 숫자 나열이 아니라 **결과, 조회 기준, 실무 인사이트**라는 3단계 구조로 답변을 제공하여 사용자의 해석 시간을 단축했습니다. * 출시 직후 전체 팀원의 절반 이상이 사용했으며, 현재는 70%의 사용률을 기록하며 데이터 요청에 대한 심리적 문턱을 낮추고 실질적인 업무 방식의 변화를 이끌어냈습니다. * 개발자, 기획자 등 비데이터 직군에서도 활발히 사용하며 데이터 분석가의 리소스를 고부가가치 분석 업무에 집중할 수 있도록 지원합니다. 성질 급한 AI 모델의 성능에만 의존하기보다, **데이터의 표준화와 비즈니스 로직의 명확한 정의(Governance)**가 선행될 때 비로소 실효성 있는 AI 서비스가 완성된다는 점을 시사합니다. 사내 데이터 민주화를 고민한다면, 기술적 기교 이전에 AI가 읽기 좋은 데이터 환경을 만드는 것부터 시작할 것을 추천합니다.

신뢰할 수 있는 Rust Worker 만들기: wasm-bindgen에서의 패닉 및 중단 복구 (새 탭에서 열림)

Cloudflare Workers 환경에서 Rust로 작성된 WebAssembly(Wasm)는 예기치 못한 패닉(Panic)이나 중단(Abort)이 발생할 경우 런타임이 정의되지 않은 상태로 남아 동일한 인스턴스의 다른 요청까지 실패하게 만드는 '샌드박스 오염' 문제를 안고 있었습니다. 이를 해결하기 위해 Cloudflare는 `wasm-bindgen` 메인 프로젝트와 협력하여 Wasm 예외 처리 기능을 활용한 `panic=unwind` 지원과 중단 복구 메커니즘을 도입했습니다. 결과적으로 단일 요청의 실패가 전체 서비스 중단으로 이어지는 것을 방지하고, 상태 유지가 필요한 애플리케이션에서도 안정적인 오류 복구가 가능해졌습니다. ### 초기 대응 및 완화 전략 본격적인 기능 개선에 앞서, Cloudflare는 운영 환경에서의 피해를 최소화하기 위해 사용자 정의 패닉 핸들러와 JavaScript 프록시를 활용한 초기 완화책을 적용했습니다. * **패닉 핸들러 도입:** Rust 내부에 상태를 추적하는 패닉 핸들러를 설치하여 실패가 발생하면 전체 애플리케이션을 다시 초기화하도록 설정했습니다. * **Proxy 기반 간접 참조:** JavaScript 영역에서 Rust 호출 경계를 `Proxy`로 감싸 모든 진입점을 캡슐화하고, 실패 시 안전하게 Wasm 모듈을 재로드했습니다. * **한계점:** 이 방식은 서비스 가용성은 높였으나, 전체 애플리케이션을 재시작해야 하므로 메모리에 상태를 보관하는 Durable Objects 같은 서비스에서는 데이터 손실이 발생하는 단점이 있었습니다. ### Wasm 예외 처리를 통한 panic=unwind 구현 상태를 보존하면서 오류를 복구하기 위해 Wasm의 최신 표준인 예외 처리(Exception Handling) 제안을 활용하여 Rust의 패닉 언와인딩(Unwinding)을 구현했습니다. * **컴파일 옵션 변경:** `RUSTFLAGS='-Cpanic=unwind'`와 `-Zbuild-std`를 사용하여 표준 라이브러리가 언와인딩을 지원하도록 다시 빌드했습니다. * **wasm-bindgen 툴체인 업데이트:** Wasm 파서인 Walrus가 `try`, `catch`, `rethrow` 명령어를 인식하도록 수정하고, JavaScript와 Rust 경계에서 예외가 올바르게 전달되도록 개선했습니다. * **Boundary 처리:** Rust에서 발생한 패닉이 JavaScript의 `PanicError`로 변환되도록 했으며, `extern "C-unwind"`를 통해 함수 호출 경계를 넘나드는 언와인딩을 허용했습니다. * **클로저 안전성:** `MaybeUnwindSafe` 트레잇을 도입하여 언와인딩 시 안전하지 않은 참조를 캡처하는 클로저를 체크하고, 필요한 경우 패닉 시 즉시 중단되는 `Closure::new_aborting` 변형을 제공합니다. ### 중단(Abort) 복구 및 포이즌 필(Poison Pill) 메커니즘 메모리 부족(OOM)과 같이 언와인딩이 불가능한 '중단' 상황에서는 메모리 상태가 오염될 가능성이 높기 때문에, 해당 인스턴스의 재실행을 원천 봉쇄하는 전략을 사용합니다. * **포이즌 필 플래그:** `wasm-bindgen`은 이제 모든 Wasm 모듈에 내부 상태 플래그를 주입합니다. 만약 Rust 코드에서 중단이 발생하면 이 플래그가 즉시 설정됩니다. * **재실행 방지:** 이후 JavaScript에서 해당 Wasm 인스턴스의 어떤 함수라도 호출하려고 하면, Rust 코드를 실행하기 전에 플래그를 먼저 확인하여 즉시 JavaScript 에러를 발생시킵니다. * **안전성 보장:** 이를 통해 오염된 메모리 상태에서 코드가 다시 실행되어 발생할 수 있는 보안 취약점이나 예측 불가능한 동작을 완전히 차단합니다. Wasm 기반의 Rust 서비스를 운영한다면 최신 버전의 `wasm-bindgen`과 `workers` 라이브러리를 사용하고, 특히 Durable Objects와 같이 상태 보존이 중요한 경우 `panic=unwind` 설정을 활성화할 것을 권장합니다. 이는 단순한 안정성 향상을 넘어, Wasm이 네이티브 환경과 동등한 수준의 오류 복구 능력을 갖추게 되었음을 의미합니다.