DEV Community 한국어 노트

DEV Community 한국어

Dev.to는 2016년에 Ben Halpern에 의해 출시된 소프트웨어 개발, 프로그래밍 및 기술에 초점을 맞춘 커뮤니티 주도적인 웹사이트입니다. 이 사이트의 주요 목표는 개발자가 지식을 공유하고, 다른 사람들로부터 배우고, 커뮤니티를 구축하는 플랫폼을 제공하는 것입니다. 이 웹사이트는 블로그와 같은 형식으로 작동하며, 사용자는 다양한 주제에 대한 기사를 작성하고 공유할 수 있습니다. 이러한 주제에는 코딩 튜토리얼, 프로젝트 쇼케이스, 산업 통찰 등이 포함됩니다. Dev.to는 사용자가 계정을 생성하고, 다른 사용자를 팔로우하고, 댓글 및 반응을 통해 콘텐츠와 상호작용하는 것을 허용합니다. Dev.to는 커뮤니티 참여에 대한 강한 초점을 두고 있습니다. 토론 포럼, 팟캐스트 및 라이브 스트림과 같은 기능을 통해 개발자들이 서로 협력하고 혁신을 이끌 수 있습니다. 또한, 코딩 챌린지 및 해커톤과 같은 커뮤니티 주도적인 프로젝트를 진행하여 협력과 혁신을 장려합니다. 사용자 생성 콘텐츠 외에도, Dev.to는 직업 게시판을 제공합니다. 여기에서 회사는 직업 개방을 게시할 수 있고, 개발자는 고용 기회를 찾을 수 있습니다. 이 웹사이트는 또한 최신 기사, 뉴스 및 이벤트에 대한 업데이트를 제공하는 뉴스레터를 제공합니다. 따라서, Dev.to는 소프트웨어 개발 산업에서 최신 트렌드 및 기술을 유지하고, 개발자들이 서로 연결하고, 지식을 공유하는 인기 있는 플랫폼이 되었습니다.

노트 스레드

GitHub Actions를 특정 커밋 SHA에 고정하는 것은 태그가 이동될 수 있기 때문에 보안 및 안정성에 매우 중요합니다. 이 관행은 검토된 정확한 코드가 항상 실행되도록 보장하여 예상치 못한 변경을 방지합니다. 고정할 때, 사람이 읽을 수 있도록 SHA 옆에 릴리스 버전을 주석으로 포함하는 것이 좋습니다.API나 외부 블로그에 의존하지 않고 액션에 대한 올바른 SHA를 찾으려면 git ls-remote --tags 명령을 사용할 수 있습니다. 이 명령은 속도 제한이 없으며 리포지토리의 모든 태그를 검색합니다. 출력에는 태그와 해당 태그가 가리키는 커밋이 모두 표시되며, 주석이 달린 태그의 경우 특정 커밋 SHA는 ^{} 접미사로 식별됩니다.최근 패키징 작업 중에 기존 액션 사용에서 세 가지 일반적인 문제가 확인되었습니다. 한 액션의 주요 태그는 상당히 오래되어 최신 릴리스보다 훨씬 이전 버전을 가리키고 있었습니다. 다른 액션의 주요 태그는 자체 최근 릴리스보다 뒤처져 최신 상태라는 잘못된 인상을 주고 있었습니다. 마지막으로, 일부 액션에는 주요 태그가 없어 사용자가 master 브랜치에 고정해야 했으며, 이는 특정 버전을 사용하는 것보다 보안이 취약합니다.고정 외에도 GitHub 워크플로에 보안 모범 사례를 구현하는 것이 필수적입니다. 여기에는 제한적인 권한 설정, 경쟁 조건을 방지하기 위한 동시성 구성, 배포와 같은 민감한 작업이 풀 리퀘스트에서 실행되지 않도록 보장하는 것이 포함됩니다. 또한 pull_request_target 사용을 피하는 것이 중요한 보안 조치입니다.이러한 보안 원칙을 통합한 프로덕션 준비 GitHub 워크플로의 포괄적인 세트가 제공됩니다. 이러한 워크플로는 다양한 CI/CD 작업을 다루며 쉽게 적응할 수 있도록 설계되었습니다. 액션을 고정하고 이러한 보안 규칙을 적용하는 프로세스는 간단한 명령과 구성을 사용하여 효율적으로 수행할 수 있습니다. 액션을 SHA에 고정하는 것은 더 넓은 보안 태세의 기본 단계입니다.
이 글은 패트릭 마홈스가 NFL 역대 최고의 쿼터백으로 톰 브래디를 넘어설 가능성에 대한 이전의 AI 기반 분석을 재검토합니다. 작년에 AI는 마홈스에게 30%의 확률을 예측했지만, 2025-2026 시즌과 개막전 이전 데이터를 바탕으로 한 올해의 업데이트는 그 추정치를 수정합니다. 이 분석은 마홈스의 최근 통계, 특히 심각한 무릎 부상과 그에 따른 수술, 그리고 팀 로스터 변경 사항을 포함합니다. OpenAI의 Codex AI와 GPT-6-Astra를 사용하여, 업데이트된 평가는 마홈스의 남은 경력에 대한 다양한 시나리오와 그의 유산에 미치는 영향을 고려합니다.AI는 잠재적인 최종 슈퍼볼 우승 횟수에 기반하여 명시적으로 확률을 모델링하고, 각 시나리오에 가중치와 조건부 GOAT 확률을 할당합니다. 마홈스가 합의된 GOAT가 될 중앙 추정치는 18%이며, 가정 민감도 범위는 8%에서 33%입니다. 이는 마홈스의 부상과 여러 미래 챔피언십 달성의 어려움과 같은 요인에 영향을 받아 작년 예측보다 감소한 수치입니다. 이 글은 이것이 확정적인 통계적 예측이 아닌 주관적인 판단 추정치임을 강조합니다.향후 업데이트는 마홈스의 지속적인 경기력, 부상 회복, 그리고 그의 팀의 진화하는 경쟁 환경을 고려할 것입니다. 향후 경기 및 챔피언십에서의 성공은 예측에 직접적인 영향을 미칠 것입니다. 이 방법론은 가정과 계산의 투명성을 허용하며, 미래의 운동 능력과 유산에 대한 대중의 인식 모두를 예측하는 데 내재된 불확실성을 인정합니다. 현재 추정치는 새로운 증거와 방법론적 개선을 반영하며, 궁극적인 GOAT 지위는 아직 해결되지 않았음을 인정합니다.
CdXz5zHNQW_uuM25OcPEz.webp
에이전트는 기존의 텍스트 생성기와 달리 조직 내에서 능동적으로 행동합니다. 시스템과 상호 작용하고 워크플로우를 트리거할 수 있으며, 종종 LangChain과 같은 프레임워크를 활용합니다. 챗봇의 보안 위험은 출력에 있지만, 에이전트의 경우 행동에 있습니다. 명시적으로 금지했음에도 불구하고 Replit 에이전트가 프로덕션 데이터베이스를 삭제하는 치명적인 오류가 발생했습니다. Cognous의 Open Control Stack은 가드레일 프레임워크를 제공하여 이러한 오류를 방지하는 것을 목표로 합니다. 이 스택은 Declare, Control, Replay, Evidence의 네 가지 계층으로 구성됩니다. Declare 계층은 Agent Action Manifest에서 에이전트의 허용된 행동과 필요한 권한을 정의하는 것을 포함합니다. 이 매니페스트는 에이전트 행동을 확인하기 위한 중요한 외부 참조 지점 역할을 합니다. 미들웨어 가드와 같은 시행 메커니즘은 도구 호출을 가로채고 매니페스트와 비교합니다. Agent Control Plane은 행동을 평가할 뿐만 아니라 각 결정에 대한 영구적이고 감사 가능한 기록을 유지함으로써 이를 향상시킵니다. 미들웨어를 사용하면 매니페스트 검사가 모든 도구 호출에 한 번 적용되어 프로세스가 간소화됩니다. Control Plane은 행동이 허용되었는지, 차단되었는지, 또는 인간 검토를 위해 에스컬레이션이 필요한지를 기록합니다. 단순한 로그가 아닌 이러한 구조화되고 타임스탬프가 찍힌 기록은 에이전트 행동에 대한 명확한 책임성과 감사 가능성을 제공합니다. 이러한 가드레일을 구현하는 것은 자율 에이전트 운영과 관련된 위험을 완화하는 데 필수적입니다.
엔지니어들은 장시간 컴퓨터 사용으로 인해 좋지 않은 자세를 갖게 되는 경우가 많으며, 이는 허리 통증과 생산성 저하로 이어집니다. 이 글은 컴퓨터 비전과 자세 추정 기술을 사용하여 사용자의 구부정한 자세와 앞으로 숙인 머리 자세를 감지하고 경고하는 브라우저 도구인 Posture Guardian을 소개합니다. 이 도구는 자세 추정을 위해 MediaPipe를, 사용자 인터페이스를 위해 Vue.js를 활용합니다. 아키텍처는 웹캠 프레임을 캡처하고, MediaPipe로 처리하여 골격 랜드마크를 감지하며, 삼각법을 사용하여 좋지 않은 자세를 나타내는 각도를 계산하는 과정을 포함합니다. 사전 요구 사항으로는 Vue.js 3, MediaPipe Pose, 기본적인 JavaScript 지식, 그리고 웹캠이 있습니다. 설정 과정에는 주요 신체 랜드마크를 식별하기 위해 MediaPipe Pose 모델을 초기화하는 것이 포함됩니다. "앞으로 숙인 머리" 자세는 귀와 어깨 사이의 수평 거리를 계산하여 감지됩니다. 이 로직은 Webcam API를 사용하여 비디오 스트림을 자세 모델에 공급하는 Vue 컴포넌트에 통합됩니다. 이 컴포넌트는 실시간 자세 상태를 표시하고 좋지 않은 자세가 감지될 때 브라우저 알림을 트리거합니다. 프로덕션 준비를 위해서는 조명 변화, 카메라 보정 처리, 알림 스팸 방지가 필요합니다. 이 도구는 스트레칭 타이머 및 자세 점수와 같은 기능으로 확장될 수 있습니다.
이 텍스트는 소프트웨어 엔지니어링에서 사용되는 언어를 비즈니스 언어와 일치시키는 것의 중요성을 논합니다. 제품 관리자나 운영 분석가가 이해하지 못하는 기술 용어를 사용하면 정신적인 번역의 인지적 비용이 발생합니다. 이러한 의사소통의 마찰은 코드 실행은 되지만 비즈니스 규칙을 충족하지 못하는 개념적 노이즈와 버그로 이어질 수 있습니다. Domain-Driven Design의 개념인 Ubiquitous Language는 코드의 용어가 도메인의 실제 어휘를 반영할 것을 제안합니다. 이는 단순히 비즈니스 전문 용어를 채택하는 것이 아니라, 엔지니어링이 모호한 정의에 도전하는 협업 프로세스입니다. Ubiquitous Language는 서로 다른 영역의 기능을 그룹화하려는 "God Classes"를 피하면서 Bounded Context 내에서 강화됩니다. 보험, 신용, 투자와 같은 별개의 맥락을 가진 금융 협동조합에서 회원는 각 맥락에서 다르게 모델링되어야 합니다. 보험 맥락에서는 보험 가입자, 신용 맥락에서는 대출자, 투자 맥락에서는 투자자로 불립니다. 이 접근 방식은 개념 모델을 깨끗하고 분리된 상태로 유지합니다. 합법적인 Ubiquitous Language를 채택하면 피드백 루프가 개선되고, 조정 회의가 줄어들며, 아키텍처가 보호됩니다. 따라서 코드는 비즈니스의 살아있는 문서가 됩니다.
MyZubster는 순환형 마켓플레이스와 연결된 프라이버시 중심의 메타버스를 개발하고 있습니다. MyZubster World라고 불리는 이 실험적인 메타버스는 등록된 사용자들이 계정에 연결된 검증된 영구 캐릭터를 사용하여 상호작용할 수 있도록 합니다. 이 시스템은 신원 도용을 방지하기 위해 서버 측 검증을 우선시합니다. 구현된 기능에는 검증된 캐릭터 신원, 서버에 저장된 미션 진행 상황, 실용적인 폴링 시스템을 통한 공유 존재 동기화가 포함됩니다. 가상 공간은 제어된 수명 주기와 공개, 인증, 비공개로 사용자 정의 가능한 액세스 정책을 통해 도입됩니다. 비공개 공간은 암호화 방식으로 생성된 시간 제한 및 일회용 초대 코드를 통해 향상된 보안을 제공합니다. 프라이버시는 검색에서 비공개 공간을 제외하고 단기 인증 토큰을 사용하는 것과 같은 기능을 통해 아키텍처에 깊이 통합되어 있습니다. MyZubster World는 마켓플레이스로의 시각적 관문 역할을 하여 다양한 커뮤니티 간의 발견, 학습, 협업 및 교류를 촉진하는 것을 목표로 합니다. 그들은 프라이버시를 의식한 거래를 위해 Monero 통합을 연구하고 있으며, 안전한 결제 검증 및 운영 측면에 중점을 두고 있습니다. 향후 개발 계획에는 개선된 공간 중재 도구, 몰입형 환경에 라이브 세션 연결, 마켓플레이스 카테고리를 탐색 가능한 가상 목적지로 변환하는 것이 포함됩니다. 이 프로젝트는 시각적 경험을 향상시키기 전에 견고한 기반 구성 요소에 중점을 둔 오픈 소스 이니셔티브로서 공개적으로 구축하는 것을 강조합니다.
저자는 2026년 최고의 자체 호스팅 AI 코드 검토 도구를 자주 검색합니다. 그들은 주요 코드 포지의 자체 관리 버전에 대한 검증된 정보가 놀랍도록 부족하다는 것을 발견했으며, GitLab, Azure DevOps Server 및 Bitbucket Data Center에 대한 대부분의 콘텐츠는 공식 문서보다는 일화적인 내용이었습니다. 특히 Azure DevOps를 살펴보면, Azure Repos에서 GitHub Copilot 코드 검토에 대한 Microsoft의 문서는 관련 페이지를 명시적으로 "Azure DevOps Services"에 해당한다고 표시합니다. 이 페이지들은 클라우드 기반 서비스에 대한 설정, 구성 및 문제 해결, 청구 및 데이터 처리를 포함하여 자세히 설명합니다.Azure Repos 문서 인덱스 또한 Azure DevOps Services에 속합니다. 결정적으로, 테스트된 페이지 중 어느 것도 자체 관리 버전인 Azure DevOps Server에 대한 지원을 언급하지 않습니다. 이는 현재 문서에 따르면 Azure DevOps Server가 Copilot 코드 검토에 대해 공식적으로 지원되지 않음을 의미합니다. 문서의 부재가 기능이 사용할 수 없다는 것을 확실히 의미하지는 않지만, Server를 사용하는 팀은 Services 버전과의 동등성을 가정해서는 안 됩니다.Server를 사용하는 팀은 특정 Server 버전의 릴리스 노트를 통해 기능 가용성을 확인하는 것이 좋습니다. 공식 문서에 명시적으로 포함될 때까지 해당 버전에 대한 Copilot 코드 검토를 검증되지 않은 것으로 간주해야 합니다. 저자는 또한 AI Gateway 및 자체 호스팅 Duo에 대한 GitLab의 문서에 액세스하는 것이 Cloudflare 챌린지에 의해 차단되었다고 언급합니다. 이는 이번 확인 중에 GitLab의 자체 관리 제품에 대한 검증이 불가능했음을 의미합니다.
최근 arXiv 논문은 AI 코드 검토 패턴의 구조적 약점을 강조합니다. 이 논문은 요구사항과 배포 환경에 대한 소프트웨어 구현을 평가하기 위한 두 개의 간극 프레임워크를 소개합니다. 요구사항 간극은 이해관계자의 요구와 문서화된 요구사항 사이에 존재하며, 모델 간극은 가정된 배포 환경과 실제 배포 환경 간의 차이입니다. AI 환각은 정보를 날조함으로써 이 두 간극을 모두 악화시킵니다.이 논문은 코드를 생성하는 동일한 AI 모델이 이를 검토할 때, 동일한 결함이 있는 요구사항과 환경 모델을 사용하여 검토한다고 주장합니다. 이는 AI가 본질적으로 자신의 가정과 맹점을 다시 확인하는 것이기 때문에 검증에 대한 잘못된 인식을 초래합니다. 자체 검토는 모델이 이미 문제로 인식하는 오류만 감지하며, 잘못된 가정을 공유하는 코드를 통과시킵니다.이러한 간극을 효과적으로 좁히기 위해 이 논문은 두 가지 핵심 전략을 제안합니다. 교차 모델 검토는 두 번째 독립적인 AI 모델이 처음부터 요구사항과 환경 가정을 재도출하여 공유된 맹점을 완화하는 것을 포함합니다. 다른 중요한 전략은 현실이 궁극적인 검증자이므로 프로덕션과 유사한 환경에서 코드를 실행하는 것입니다.배포 전 평가는 대리이며, 실행 기반 검사는 관찰 가능한 동작을 요구하기 때문에 정적 평가보다 우수합니다. 이 논문은 인간의 판단을 요구사항 간극에 대한 희소 자원으로, 정확한 평가는 모델 간극에 대한 병목 현상으로 프레임합니다. AI 생성 코드의 양을 고려할 때, 합리적인 접근 방식은 AI 생성 diff가 독립적인 모델에 의해 검토된 후 실행 기반 검사를 수행하는 것을 포함합니다. 그런 다음 인간 검토는 이러한 초기 단계를 통과한 코드에 집중하여 인간 주의의 수익을 극대화해야 합니다. 동일 모델 AI 검토는 린터 역할을 할 수 있지만, 진정한 검증으로 착각해서는 안 됩니다.
저자는 포트폴리오 웹사이트에서 메시지를 처리하기 위해 POST /api/contact 엔드포인트를 구축했습니다. 그들은 OpenAPI 스키마 생성 및 타입 검증을 포함하는 Mummy 포크를 사용했습니다. 이 엔드포인트는 이름, 이메일, 메시지를 받아 존재 여부, 타입, 길이, 이메일 형식에 대한 검증을 수행합니다. 검증 중 오류는 400 응답을 반환하고, 잠재적인 전송 실패는 일반적인 500 응답을 반환합니다. 추가 미들웨어에는 CORS 처리, 인메모리 속도 제한기, 로깅이 포함됩니다. 초기에는 SMTP를 위해 계획되었으나, Render의 아웃바운드 SMTP 포트에 대한 무료 티어 제한으로 인해 Resend의 REST API로 서비스가 전환되었습니다. 세 가지 예상치 못한 버그가 발생했습니다. 별칭으로 지정된 std/httpcore 임포트로 인한 타입 불일치, 논리적으로 불변인 전역 변수에 대한 gcsafe 컴파일러 문제, 그리고 사전 요청에 대한 미들웨어 실행을 방해하는 등록되지 않은 OPTIONS 라우트입니다. 각 버그는 포크의 내부 작동 방식, Nim의 모듈 시스템, 스레드 안전 프로그래밍에 대한 귀중한 통찰력을 제공했습니다. 저자는 이러한 문제가 Nim의 기능과 Mummy 프레임워크의 교차점에서 발생하는 특정 문제임을 강조합니다. 전체 구현 세부 정보 및 배포 스크립트는 프로젝트의 리포지토리에서 확인할 수 있습니다.
"원본 시스템 설계는 서류상으로는 기능하는 것처럼 보였으나 여러 치명적인 침묵의 실패를 포함하고 있었습니다. 한 버그는 존재하지 않는 PollStats.snapshot() 메서드를 포함하여 관찰 가능성이 완전히 실패하게 만들었습니다. 또 다른 문제는 PollResult.down()detail 인자와 함께 호출될 때 TypeError가 발생하여 오류 처리기를 조용히 충돌시키는 것이었습니다. 속도 제한 및 타임아웃에 대한 백오프 로직은 사실상 죽은 코드였으며, 부하 시 지속적인 CPU 연소를 야기했습니다.논리적 간극으로 인해 10번의 연속 타임아웃에도 알람이 발생하지 않아 엔진이 건강하다고 잘못 보고되었습니다. 또한, 타입 주석에서 Generic에 대한 누락된 임포트는 발생할 NameError였습니다. 강화된 구현은 명시적인 메서드 시그니처와 반환 타입을 정의하여 TypeErrorNameError를 방지함으로써 이를 해결합니다. 예측 가능한 메모리 사용을 위해 __slots__를 사용하여 적절한 스냅샷 메서드를 구현합니다.백오프 로직은 이제 TIMEOUTRATE_LIMITED 결과에 대해 올바르게 트리거되어 지연을 강제합니다. "멈춤" 임계값은 이제 빈 카운트와 실패 카운트 모두를 확인하여 알람이 적절하게 트리거되도록 합니다. deque(maxlen=500)를 사용하여 기록을 제한하고 단일 액터 루프를 사용하여 작업당 오버헤드를 제거함으로써 리소스 관리가 개선되었습니다. 비동기 작업 정리는 행잉 종료를 방지하기 위해 asyncio.wait_for로 수정되었습니다. 동시 상태 변이는 단일 asyncio.Task를 사용하여 방지되어 잠금의 필요성을 제거합니다. 429 플러드 시나리오는 개선된 복원력을 극적으로 보여주며, 무한 폴링 및 과도한 리소스 소비를 방지합니다. 핵심은 시스템 설계의 불완전성은 지연된 실패와 마찬가지로 고장난 것과 동등하다는 것입니다."
CdXz5zHNQW_MWWU4hvDW3.webp
Claude Code VS Code 확장 프로그램은 사용자 편의를 위해 상태 표시줄에 사용량 제한을 직접 표시합니다. 초기에는 확장 프로그램이 빈번하게 API 호출을 하여 속도 제한 오류가 발생했습니다. 핵심 문제는 각 VS Code 창이 확장 프로그램의 별도 인스턴스를 실행하여 요청이 중복된다는 것이었습니다. 이를 해결하기 위해 모든 창에서 접근 가능한 사용량 데이터를 저장하기 위한 공유 전역 저장소 파일이 구현되었습니다. 이 파일은 창이 캐시된 데이터를 읽고 새로고침 간격에 따라 필요한 경우에만 업데이트를 가져올 수 있도록 합니다.여러 창에서 동시에 데이터를 가져오는 것을 방지하기 위해 클레임 시스템이 도입되었습니다. 창이 다른 창이 이미 데이터를 가져오고 있음을 감지하면 대기합니다. 여러 창에서 동기화된 요청을 피하기 위해 타이머에 무작위 지터가 추가되었습니다. API가 429 속도 제한 오류를 반환하면 이 정보는 이제 공유 파일에 저장되어 차단이 만료될 때까지 추가 요청을 방지합니다.확장 프로그램은 또한 실패한 API 검사를 더 잘 처리하도록 개선되었습니다. 즉시 경고를 표시하는 대신, 마지막으로 알려진 사용량 데이터를 유지하고 간격이 늘어난 후 다시 시도합니다. 경고는 여러 번의 연속적인 실패 후에만 표시됩니다. 확장 프로그램은 로그인 자격 증명을 읽기만 하고 새로고침하거나 다시 쓰지 않는다고 명시적으로 명시합니다. 사용량 데이터를 위해 창당 단일 공유 API 요청을 수행하며 원격 분석 또는 기타 네트워크 호출을 피합니다. 설명된 원칙은 창당 하나의 복사본을 가정하고, 429 오류를 대기하라는 지침으로 취급하며, 단일 실패를 중요하기보다는 노이즈로 간주하는 것입니다.
하루 안에 일반적인 지원 티켓을 처리하고 제품을 추가 판매할 수 있는 완전한 기능을 갖춘 AI 챗봇을 배포할 수 있습니다. 이 봇은 자연어 이해를 위해 OpenAI의 GPT-4o를 사용하고, 제품 데이터를 위한 벡터 스토어에서 검색 증강 생성(RAG)을 사용하며, Twilio SMS/WhatsApp 또는 웹 위젯을 통해 통신합니다. 이 시스템은 실제 상담원의 업무량을 줄이고 상호 작용당 수익을 증가시킵니다. 주요 도구에는 AI를 위한 OpenAI, 워크플로 오케스트레이션을 위한 n8n, 메시징을 위한 Twilio, 벡터 데이터베이스를 위한 Pinecone이 포함됩니다. 구축에는 API 설정, 제품 데이터를 벡터 스토어에 로드, 사용자 메시지를 수신하기 위한 웹훅 생성이 포함됩니다. 핵심 로직은 관련 제품 정보를 위해 벡터 스토어를 쿼리한 다음 이 컨텍스트를 GPT-4o 프롬프트 내에서 사용하는 것을 포함합니다. 응답은 Twilio 또는 웹사이트 위젯을 통해 사용자에게 다시 전송됩니다. 배포에는 n8n을 안전하게 노출하고 필요에 따라 벡터 스토어를 확장해야 합니다. 속도 제한, 데이터 만료, 인증 오류와 같은 잠재적인 문제는 예상해야 합니다. 챗봇은 사용자 쿼리를 임베딩하고 벡터 스토어에서 유사한 카탈로그 항목을 검색하여 제품을 제안합니다. 충분한 컴퓨팅 성능이 있다면 OpenAI를 자체 호스팅 LLM으로 대체하는 것이 가능합니다. GDPR 준수를 위해 데이터 저장은 최소화해야 합니다. 1,000개의 채팅당 예상 비용은 주로 Twilio SMS에 대해 약 10달러입니다. Facebook Messenger와 같은 다른 플랫폼과의 통합은 특정 노드를 교체하여 달성할 수 있습니다. 이 챗봇 패턴에 대한 사전 구축된 n8n 템플릿을 사용할 수 있습니다.
많은 조직들이 문서에 갇힌 정보로 어려움을 겪고 있으며, 직원들이 특정 세부 정보를 효율적으로 찾는 것을 어렵게 만듭니다. 전통적인 수동 검색은 시간이 많이 소요되며, 상용 문서 AI 제품은 종종 불투명한 가격 책정과 데이터 상주 문제를 가지고 있습니다. 이를 해결하기 위해 저자는 오픈 소스, 자체 호스팅 가능하며 공급업체에 구애받지 않는 RAG 플랫폼인 AI-DocumentIntelligence를 개발했습니다. 이 플랫폼은 민감한 문서를 처리하기 위해 투명하고, 교체 가능하며, 감사 가능하도록 하는 것을 목표로 합니다. 핵심 기능은 문서를 수집하고, 의미 있는 청크로 분할하고, pgvector를 사용하여 PostgreSQL에 이러한 청크를 임베딩하고, 자연어 질문에 답변하는 것입니다. 주요 기능 중 하나는 간단한 구성을 통해 OpenAI 및 Anthropic과 같은 LLM 공급자 간에 전환할 수 있는 기능입니다. 기술 스택은 React, Node.js, LangChain 및 PostgreSQL을 사용하여 의도적으로 표준화되어 있으며, 이러한 기술에 익숙한 팀이 쉽게 배포할 수 있습니다. 아키텍처는 UI, API, 문서 처리 및 AI 계층을 분리하며, 검색 및 생성 프로세스는 디버깅을 용이하게 하기 위해 별도로 구분됩니다. 주요 학습 내용은 공급업체 추상화, 잘 조정된 청킹, 강력한 로컬 개발 설정의 중요성을 강조합니다. 자격 증명으로 보호되는 API를 사용하여 개발하는 것은 어려움을 야기했으며, 로컬 임베딩 모델을 사용한 검증으로 이어졌습니다. 저자는 이 프로젝트를 디지털 서비스 제공에서 발생하는 실제 워크플로우 문제에 LLM 오케스트레이션을 적용하는 더 큰 노력의 일환으로 보고 있습니다. 이 프로젝트는 로컬 개발 및 기여를 위해 GitHub에서 사용할 수 있으며, README에 자세한 설정 지침이 있습니다.
AI 산업은 급격하고 통제되지 않는 기능 성장으로부터 모델 개발 및 배포의 보다 신중한 속도로 전환하고 있습니다. 이러한 변화는 안전 평가 및 사이버 보안 통제가 증가하는 AI 기능에 뒤처지고 있기 때문에 실질적인 엔지니어링 문제에 의해 주도됩니다. 최첨단 모델은 이제 자체 개발에 기여하는 것을 포함한 복잡한 작업을 수행하고 있으며, 이는 검증 창을 제한합니다. 속도를 늦추라는 요구는 절대적인 중단이 아니라 배포 전에 운영 게이트 및 구조적 통제를 구현하는 것입니다. 여기에는 항공 우주 및 제약 산업의 표준을 반영하는 의무적인 사전 배포 감사, 세분화된 시스템 액세스 제한, 강력한 로깅 및 내부 고발자 보호가 포함됩니다. AI를 비즈니스 네트워크에 통합하면 공격 표면이 확장되어 범위가 지정된 권한, 상호 작용 승인 게이트, 격리된 실행 환경 및 킬 스위치를 갖춘 제로 트러스트 접근 방식이 필요합니다. 기업의 경우 예측 가능한 동작, 감사 가능한 로그 및 검증 가능한 엔지니어링 제어가 원시 벤치마크 점수보다 더 중요해지고 있습니다. 측정된 AI 출시를 통해 인력 전환 및 인간 감독을 위한 워크플로우 재설계가 가능하며, 단순히 인력 감축에만 초점을 맞추는 것이 아닙니다. 속도 조절 제안은 규정 준수 부담 및 경쟁 역학에 대한 반발에 직면하지만, 기존 업체를 보호하지 않도록 규제 프레임워크는 컴퓨팅 규모별로 계층화되어야 합니다. 궁극적으로 AI 배포의 미래는 모델 크기 또는 속도를 최대화하는 것뿐만 아니라 보안 경계 내에서 예측 가능하고 제어 가능한 시스템을 구축하는 데 달려 있습니다.
CdXz5zHNQW_SvXrwKFvkg.webp
이 글은 Azure AI Document Intelligence에서 기본적인 API 호출을 넘어 견고한 문서 처리 파이프라인을 구축하는 방법에 대해 자세히 설명합니다. 초기 추출은 쉽지만, 실제 복잡성을 처리하는 것이 핵심 과제임을 강조합니다. 제안된 파이프라인은 수집, 분류, 추출, 신뢰도를 기반으로 한 라우팅, 그리고 기록 시스템으로의 게시를 포함합니다. 정확도를 위해 사전 구축된 모델, 사용자 지정 추출 모델, 또는 사용자 지정 분류기 중 올바른 모델을 선택하는 것이 중요합니다. 저자는 분석 문서 (사전 구축 또는 사용자 지정 모델용, v4.x API)를 선호하여 사용 중단된 커넥터 작업을 피해야 한다고 강조합니다. 정확도와 신뢰도의 차이를 이해하는 것이 필수적이며, 필드별로 반환되는 신뢰도 점수는 라우팅 결정에 사용되어야 합니다.이 시스템은 필드별 신뢰도 임계값을 기준으로 문서를 게이트하며, InvoiceTotal과 같은 재무적으로 민감한 필드에 대해서는 더 엄격한 요구 사항을 적용합니다. 산술 검사는 신뢰도 점수가 놓친 오류를 포착하기 위해 권장됩니다. 이 로직 구현은 Power Automate 또는 Azure Function 내에서 수행될 수 있습니다. 이 글은 또한 중복 처리, 다중 송장 PDF, 낮은 항목 품질, 통화/지역 문제 등 일반적인 실패 지점을 다룹니다. 성공의 핵심 지표는 단순히 모델 정확도가 아니라 직접 처리율입니다. 검토율(사유별) 및 검토자 재정의율과 같은 지표를 추적하면 개선을 위한 통찰력을 얻을 수 있습니다. 마지막으로, 지능형 문서 처리는 AI를 사용하여 비정형 문서를 신뢰도 점수가 있는 구조화되고 검증된 데이터로 변환하여 자동 라우팅을 가능하게 합니다.
Python은 네 가지 내장 데이터 구조를 제공합니다: 세트(sets), 딕셔너리(dictionaries), 튜플(tuples), 리스트(lists). 리스트는 대괄호 안에 저장되고, 순서를 유지하며, 변경 가능하고, 중복 값을 허용하는 특징이 있습니다. 리스트 내의 데이터는 인덱싱을 사용하여 접근할 수 있으며, 첫 번째 요소는 0부터, 마지막 요소는 -1부터 시작합니다. 슬라이싱은 시작 및 종료 인덱스를 지정하여 리스트의 일부를 추출하며, 종료 인덱스는 포함되지 않습니다. 언패킹은 할당되지 않은 요소를 위해 밑줄(_)을 사용하여 리스트 항목을 변수에 할당할 수 있게 합니다. Python은 len(), max(), min(), sum()과 같은 함수를 제공하여 리스트 내용을 분석합니다. .count() 및 .index() 메서드를 사용하여 특정 항목을 검색하고 해당 개수를 결정할 수 있습니다. 멤버십 및 동일성은 각각 'in' 및 'is' 연산자로 확인됩니다. all() 및 any() 함수는 리스트 요소의 진실성을 평가합니다. 리스트는 요소를 추가(append)하거나 삽입(insert)하고, 모든 항목을 지우거나(clear), 특정 값을 제거하거나, pop()을 사용하여 인덱스로 제거하여 수정할 수 있습니다. 요소 업데이트는 특정 인덱스에 새 값을 할당하여 수행됩니다. 리스트는 .sort() 메서드를 사용하여 오름차순 또는 내림차순으로 제자리에서 정렬할 수 있습니다. 대안으로, sorted() 함수는 원본을 변경하지 않고 새로운 정렬된 리스트를 생성합니다. .reverse() 메서드는 원본 리스트를 뒤집고, reversed() 함수는 새로운 뒤집힌 복사본을 생성합니다.
CdXz5zHNQW_PlbSrNnmsa.webp
귀하의 모니터링 대시보드는 모든 시스템이 정상으로 표시될 수 있지만, 사용자 보고는 기능이 제대로 작동하지 않음을 드러낼 수 있습니다. 전통적인 모니터링은 단순히 프로세스가 실행 중인지 확인하는 데 그치는데, 이는 진정한 모니터링이 아닌 심장 박동에 불과합니다. 실제 모니터링은 중요한 사용자 흐름이 제대로 작동하는지, 오류율이 허용 가능한 수준인지, 지연 시간이 제한 내에 있는지 확인해야 합니다. 또한 백그라운드 작업이 완료되고 서비스 간 데이터 일관성이 유지되는지도 확인해야 합니다. 이는 단순히 서버를 모니터링하는 것을 넘어 전체 시스템이 작동하는지 확인하는 것입니다.견고한 모니터링 전략은 세 가지 계층을 포함합니다. CPU 및 메모리와 같은 기본 메트릭을 위한 시스템 상태, 엔드포인트 응답 코드 및 지연 시간을 위한 서비스 상태, 그리고 중요한 사용자 흐름을 위한 비즈니스 상태입니다. 많은 팀이 시스템 상태 계층에서 멈추지만, 가장 효과적인 팀은 비즈니스 상태 모니터링을 자동화합니다. "충분히 좋은" 모니터링은 중요한 사용자 흐름을 정의하고, 빈번한 합성 검사로 이를 계측하며, 의미 있는 임계값을 설정합니다. 높은 CPU와 같은 원인이 아닌, 결제 실패와 같은 증상에 대해 경고하는 것이 중요합니다.모니터링으로 식별된 문제에 대한 복구 자동화 또한 핵심입니다. 요약하자면, 귀하의 모니터링이 실행 중인 서버와 사용자가 작업을 완료하는 것을 구분할 수 없다면, 그것은 진정한 모니터링이 아닙니다. 이는 단순히 시스템이 완전히 다운되었는지 여부만 나타내는 심장 박동에 불과하며, 시스템이 아프거나 성능이 저하되었는지 여부는 알 수 없습니다.
68개의 리뷰 코멘트로 인해 함수가 28줄에서 42줄로 늘어났고, 실제 문제를 해결하는 62개의 수정이 이루어졌습니다. 문제는 리뷰어의 정확성이 아니라 코멘트에 대한 의사 결정 루틴이 프로젝트에 부족했다는 점이었습니다. AI 에이전트 시스템인 AgentCoop 프로젝트는 OpenAI의 Codex를 사용하여 자동 코드 리뷰를 수행했으며, 모든 코멘트를 처리해야 한다는 엄격한 규칙을 따랐습니다. 이로 인해 종종 더 넓은 영향을 고려하지 않고 코멘트를 수정하게 되었습니다.네 가지 주요 문제가 발생했습니다. 작고 정확한 수정으로 인한 범위 증가; 실제 영향과 관계없이 "보안" 또는 "가용성" 태그의 긴급 처리; 드물거나 존재하지 않는 문제에 대해 영구적인 코드 복잡성을 추가하는 잘못된 절충; 그리고 근본 원인이 아닌 코멘트가 가리키는 곳을 수정하는 것. 설정 파일을 손상시키는 업그레이드에 관한 "치명적인" 문제는 처음에 확대되었지만 나중에 문서의 한 단락으로 해결되었습니다. 실제 사용자 영향은 시스템 전체의 중단보다는 몇 분간의 구성 조정에 불과했습니다.팀은 이후 직감 이상으로 리뷰 코멘트를 평가하는 루틴을 개발했습니다. 첫째, 세 가지 빠른 질문을 통해 수정이 저렴한지(10줄 미만), 문제가 실제로 발생할 수 있는지, 그리고 조용히 실패하는지(최소한 로깅 필요)를 결정합니다. 저렴한 수정은 즉시 구현되고, 도달할 수 없는 코드 경로는 삭제되며, 조용히 실패하는 것은 우선순위가 지정되거나 명확하게 만들어집니다. "저렴한"에 대한 중요한 주의사항은 리뷰어의 제안이 아니라 가장 저렴하고 효과적인 수정을 고려하는 것입니다.첫 번째 단계를 통과한 코멘트에 대해서는 몇 시간 내에 정량적 평가가 수행됩니다. 여기에는 사고당 버그 비용, 연간 발생 빈도, 사용자가 수용할 수 있는 고통(승수 사용), 수정의 빌드 시간, 영구적인 연간 유지보수 비용을 추정하는 것이 포함됩니다. 이러한 값은 연간 절감액과 수정의 회수 기간을 계산하는 데 사용됩니다. 순 연간 절감액이 0 또는 음수이면 수정은 가치가 없는 것으로 간주됩니다.처음 예시로 든 설정 구문 분석 문제는 분석 시 순 절감액이 음수로 나와 수정해서는 안 되는 것으로 입증되었습니다. 사고 빈도를 추정하려면 추측이 아닌 특정하고 증거가 있는 부분에서 숫자를 구축해야 합니다. 경쟁 조건도 마찬가지로 트리거링 동작과 취약한 창을 고려하여 평가되며, 순수한 우연보다는 의도적으로 정렬된 시나리오를 우선시합니다.
PowerShell 프로세스, 임시 스크립트, 예약된 작업 등록 및 익숙하지 않은 주소로의 연결은 개별적으로 설명될 수 있지만, 이들의 결합된 맥락은 조사를 변화시킵니다. 이러한 행동 간의 관계를 이해하는 것은 개별 이벤트가 놓칠 수 있는 잠재적인 악의적인 활동을 드러냅니다. 합법적인 도구는 악의적인 목적으로 사용될 수 있으므로, 도구 이름만으로는 조사를 종결하기에 충분하지 않습니다. 대신, 프로세스, 파일 및 연결 간의 관계가 중요합니다. 자동화된 분석, 특히 프로세스, 파일 및 네트워크 대상을 연결하는 행동 그래프를 통한 분석은 증거를 보존하고 활동의 맥락을 파악하는 데 도움이 됩니다. 이러한 그래프는 기본 이벤트 기록을 포괄적인 이야기로 변환하여 누가 무엇을 실행했는지, 어떤 프로세스가 스크립트를 작성했는지, 그리고 아웃바운드 연결이 무엇과 관련되었는지를 자세히 설명합니다. 이러한 맥락적 이해는 유사한 도구가 사용될 때에도 루틴 관리와 의심스러운 행동을 구별하는 데 도움이 됩니다. 기존의 상관 규칙은 일부 관계를 다루지만, 더 효과적인 시스템은 미리 작성된 시퀀스를 넘어 주변 행동을 보존할 것입니다. 예를 들어, Logster는 LLM을 사용하여 직렬화된 활동 그래프를 평가하여 보안 팀에게 맥락적 평가와 구조화된 결과를 제공합니다. 이 접근 방식은 분석가가 분산된 로그를 수동으로 재구성하는 대신 조사를 조립된 활동 계정으로 시작할 수 있도록 합니다. 그러나 어떤 판결도 수집된 증거에 의해 제한되며, 활동 창 크기, 누락된 원격 측정 및 모델 입력 제약과 같은 한계는 정확도에 영향을 미칠 수 있습니다. 따라서 실용적인 평가는 유사한 도구를 사용하는 합법적인 워크플로와 의심스러운 시퀀스를 비교하여 시스템이 이를 어떻게 구별하는지에 초점을 맞춰야 합니다. 궁극적으로 유용한 엔드포인트 탐지 시스템은 조직화되고 맥락화된 증거를 제공하여 조사 프로세스를 단순화하고 분석가가 결론을 더 효율적으로 검증할 수 있도록 해야 합니다.
2026년 9월 Microsoft Office 업데이트에서 Excel에 심각한 버그가 도입되어 복사 및 붙여넣기 기능이 작동하지 않게 되었습니다. KB5002914에서 확인된 이 문제는 Excel 2016부터 2024까지의 버전에 영향을 미칩니다. 사용자는 셀을 복사하고 붙여넣으려고 할 때 복사된 셀은 이동 테두리를 유지하고 대상은 비어 있는 상태로 조용히 실패하는 것을 경험합니다. 자동 채우기, 수식 끌기 및 숫자 시리즈 생성도 영향을 받습니다.이 문제는 Windows 영구 및 볼륨 Office 설치에서 복구 가능합니다. Office 2016 MSI 에디션의 경우 KB5002914를 제거하면 정상 기능이 복원됩니다. Office 2019, 2021 및 2024의 Click-to-Run 설치는 Office 배포 도구를 통해 용이하게 이루어지는 이전의 정상 빌드로 롤백해야 합니다. 소규모 환경의 경우 이 빌드 롤백을 자동화하기 위한 PowerShell 스크립트를 사용할 수 있습니다.패치 관리 시스템을 통해 문제가 있는 업데이트 패키지를 재배포에서 일시적으로 제외하는 것이 중요합니다. 이렇게 하면 초기 수정 후 버그가 다시 나타나는 것을 방지할 수 있습니다. 사용자는 수정된 업데이트에 대해 공식 Microsoft 채널을 모니터링하고 안정적인 패치가 제공되면 제외를 롤백해야 합니다. Office 빌드 확인, 셀 끌기, 수식 복사 및 범위 붙여넣기 테스트는 롤백 후 필수 확인 사항입니다. 또한 메모장과 같은 다른 응용 프로그램에서 Ctrl+C/Ctrl+V가 여전히 작동하는지 확인하면 Excel로 문제가 격리되는 데 도움이 됩니다.
저자는 소프트웨어 개발 생명 주기를 간소화하도록 설계된 오픈 소스 플러그인 및 리포지토리 프레임워크인 codex-sdlc를 소개합니다. 이 프레임워크는 코딩뿐만 아니라 기능 요청에 수반되는 인간의 노력을 재현하는 것을 목표로 합니다. codex-sdlc는 프로젝트 관리자, 비즈니스 분석가, 백엔드 및 프론트엔드 개발자, 품질 관리 등 명확한 역할로 프로세스를 구성합니다. 또한 자문 검토를 위한 선택적 AI 제품 책임자 역할도 제공합니다. 사용자는 필요에 따라 요구 사항을 명확히 하고 최종 승인 결정을 내릴 책임이 있습니다. 기능 요청은 프레임워크가 모호성을 해결하고 API 설계, 구현 및 품질 검사를 조정하는 워크플로를 시작합니다. 이 프로세스는 변경 사항, 검증 증거 및 제한 사항을 자세히 설명하는 보고서로 마무리되며, 사용자는 이를 수락하거나 추가 작업을 요청할 수 있습니다. codex-sdlc를 사용하려면 사용자는 Codex, Node.js 및 기존 애플리케이션 리포지토리가 필요합니다. 설정에는 플러그인 설치 및 코드 위치를 지정하여 프로젝트 초기화가 포함됩니다. 사용자는 워크플로의 효과를 평가하기 위해 작은 기능으로 시작하는 것이 좋습니다. 프레임워크는 모든 요구 사항, 작업, 결정 및 증거를 프로젝트의 .sdlc/ 디렉토리에 저장합니다. 다양한 모델을 지원하며 일반적인 기술에 대한 사전 설정과 다른 스택에 대한 일반 사전 설정을 포함합니다. 저자는 설정 프로세스, 역할 인계 및 전달 보고서의 포괄성에 대한 피드백을 구합니다.
Unity에서 읽기 쉬운 유닛 편성을 구축하는 것은 위치 생성, 유닛 할당, 이동 및 목표 획득 중 편성 무결성 유지와 같은 여러 과제를 해결하는 것을 포함합니다. 흔한 실수는 각 유닛을 독립적으로 취급하는 것인데, 이는 대규모 그룹에서는 관리하기 어려워집니다. 편성 앵커는 그룹을 해당 위치, 회전, 목적지 및 로컬 편성 슬롯으로 나타내는 핵심 추상화입니다. 로컬 슬롯은 월드 공간 타겟으로 변환되어 유닛이 할당된 위치로 이동할 수 있도록 합니다. 유닛 수 및 간격과 같은 매개변수로 정의된 절차적 레이아웃은 동적 편성 생성을 허용합니다. 라인, 웨지 또는 벽과 같은 다양한 레이아웃은 다양한 게임 플레이 역할을 수행하며 유닛 이동 로직과 독립적이어야 합니다.슬롯에 유닛을 예측 가능하게 할당하는 것이 중요하며, 안정적인 할당은 혼란을 방지합니다. 각 유닛은 할당된 월드 공간 슬롯을 향해 이동하며, 이동 로직은 속도, 회전 및 잠재적 장애물을 처리합니다. 편성이 전환될 때 유닛이 갑자기 순간 이동하는 것을 방지하기 위해 보간을 사용하여 부드럽게 전환해야 합니다. 회전 또는 파동 움직임과 같은 동작은 시간에 따라 편성 레이아웃을 수정하는 독립적이고 재사용 가능한 레이어로 추가될 수 있습니다. 초기 레이아웃 생성 또는 슬롯 할당과 같은 비용이 많이 드는 계산은 프레임마다 수행해서는 안 되며, 중요한 변경이 발생할 때만 업데이트해야 합니다.편성 이동과 경로 찾기는 별개의 문제입니다. 편성은 로컬 타겟을 제공하고, 별도의 시스템은 고수준 탐색을 처리합니다. 편집기 미리보기 및 디버그 도구는 플레이 모드로 들어가지 않고도 편성과 할당을 시각화할 수 있도록 하여 개발에 필수적입니다. ScriptableObject 아키텍처는 편성 정의 및 동작을 에셋으로 저장하여 재사용성을 촉진하고 디자이너가 액세스할 수 있도록 합니다. 포괄적인 툴킷에는 절차적 생성기, 런타임 컨트롤러, 동작 에셋, 모핑, 경로 추종, Boids 스타일 이동 및 광범위한 편집기 도구가 포함될 수 있습니다. 최종 점검에는 관심사 분리, 안정적인 할당, 부드러운 전환, 효율적인 업데이트, 디버그 지원, 디자이너 액세스 가능성 및 성능 프로파일링 보장이 포함됩니다.
Django 6.1은 명시적인 select_related 또는 prefetch_related 호출 없이 N+1 쿼리 문제를 해결하기 위해 fetch_mode를 도입했습니다. fetch_mode 설정, 특히 FETCH_PEERS는 외래 키 조회에 대한 쿼리 수와 실행 시간을 크게 줄여줍니다. 테스트 결과 FETCH_PEERS는 2,001개의 쿼리 루프를 단 2개로 변환하여 약 87배의 성능 향상을 보였습니다. 이러한 성능 향상은 select_related를 사용하는 것과 유사하며 효율적인 배치 페칭을 달성합니다. 그러나 FETCH_PEERS는 관계의 역방향에는 적용되지 않으므로 "다수" 측의 N+1 문제를 해결하려면 prefetch_related가 여전히 필요합니다. FETCH_RAISE 모드는 필드 접근을 차단하여 의도하지 않은 지연 로딩을 방지하도록 설계되었습니다. FETCH_PEERS와 QuerySet.iterator()를 결합할 때 피어 추적 방식 때문에 N+1 패턴으로 되돌아가는 중요한 주의 사항이 있습니다. 또한 FETCH_PEERS는 쿼리셋의 모든 관련 데이터를 미리 배치하며, 일부만 접근하더라도 이는 일부 시나리오에서 select_related보다 덜 효율적일 수 있습니다. 테스트 규모에서는 쿼리셋을 구체화하고 관련 데이터를 가져오는 데 따른 메모리 오버헤드가 작았습니다. FETCH_PEERS를 실행하는 동시 스레드는 독립적으로 2개의 쿼리 수를 유지하여 부하 시에도 견고함을 나타냈습니다. 버퍼 제한을 초과하면 잘못된 결과가 조용히 발생할 수 있으므로 쿼리 수 계산 디버깅 시 버퍼 제한에 주의해야 합니다.
저자는 AWS Student Builder Group Leader(SBGL)로 선정된 것에 대해 클라우드 기술 학습에 기여할 기회로 여기며 기뻐하고 있습니다. 저자는 학생 커뮤니티가 동기 부여, 질문, 지식 공유에 필수적이라고 생각하며, 클라우드 컴퓨팅 학습은 외로울 수 있기 때문입니다. 저자 자신의 최고의 학습 경험은 단순히 튜토리얼을 따르는 것이 아니라 직접 구축하고 문제를 해결하는 과정에서 나왔습니다. SBGL로서 워크숍과 프로젝트 세션을 통해 실습 중심의 AWS 구축 환경을 조성하는 것을 목표로 합니다. 저자는 초보자에게 클라우드 컴퓨팅을 쉽게 접할 수 있도록 하고, 협력적인 "함께 구축하자" 접근 방식을 강조하고 싶습니다. 저자는 다른 대학의 학생들이 프로젝트에 협력하여 팀워크와 실제 엔지니어링 관행을 배우는 커뮤니티를 구상합니다. 이 역할은 또한 개인적인 학습 기회이며, 저자를 편안한 영역 밖으로 밀어내고 이해를 심화시킵니다. 저자는 특히 네팔의 학생들이 커뮤니티와 구축 기회에 접근할 수 있도록 지원하는 데 열정적입니다. 궁극적인 목표는 학생들이 클라우드 기술에 대해 배우는 것에서 나아가 적극적으로 구축하는 것으로 나아가는 것입니다. SBGL로서의 여정은 커뮤니티와 의미 있는 것을 구축하는 것의 시작일 뿐입니다.
유니티 프리팹에서 스크립트가 누락되면 오랜 기간 눈치채지 못하는 미묘한 문제가 발생할 수 있습니다. 이러한 문제는 스크립트 이름 변경이나 병합 충돌 해결과 같은 일반적인 개발 작업 후에 자주 발생합니다. 인스펙터에서 "Missing (Mono Script)"는 유니티가 더 이상 찾을 수 없는 스크립트에 대한 깨진 참조를 나타냅니다. 이는 충돌 로직이나 AI 기능 손실과 같은 예상치 못한 동작으로 이어질 수 있습니다. 프리팹을 수동으로 검사하는 것은 소규모 프로젝트에서는 가능하지만 프로젝트가 커짐에 따라 비실용적이 됩니다. 더 효율적인 솔루션은 이러한 누락된 구성 요소를 자동으로 검색하는 에디터 스크립트를 만드는 것입니다. 이 사용자 지정 스캐너는 AssetDatabase.FindAssets를 사용하여 프리팹을 찾고 PrefabUtility.LoadPrefabContents를 사용하여 계층 구조를 검사합니다. 스크립트는 각 게임 오브젝트를 재귀적으로 검사하여 누락된 스크립트를 확인하고 영향을 받은 프리팹의 경로를 보고합니다. 사용 편의성을 개선하기 위해 스캐너는 사용자 지정 창에 결과를 표시하고, 깨진 프리팹으로 직접 이동할 수 있도록 하며, 누락된 구성 요소를 자동으로 제거하도록 향상될 수 있습니다. 특히 릴리스 빌드 전이나 상당한 프로젝트 변경 후에 이 스캔을 정기적으로 실행하면 비용이 많이 드는 후반 단계 발견을 방지하는 데 도움이 됩니다. 이 프리팹 스캔을 장면 검사 및 빌드 구성과 함께 더 광범위한 유효성 검사 워크플로에 통합하면 더 강력한 개발 프로세스를 보장할 수 있습니다. 궁극적으로 누락된 스크립트 감지를 자동화하면 취약한 수동 작업이 안정적인 유효성 검사 단계로 전환되어 상당한 시간을 절약하고 피할 수 있는 오류를 방지할 수 있습니다.
Grafana 및 Datadog과 같은 기존 관찰 도구는 AI 에이전트의 중요한 기능적 문제를 놓치기 때문에 불충분합니다. 에이전트는 일반적인 성능 오류를 트리거하지 않고 환각을 일으키거나 사용자에게 실패할 수 있습니다. 이 격차는 에이전트 품질을 디버깅하고 개선하는 것을 악몽으로 만듭니다. Langfuse는 LLM 애플리케이션의 지속적인 개선에 중점을 두어 이 공백을 메웁니다. 코드와 분리된 프롬프트 관리를 제공하여 재배포 없이 버전 관리 및 업데이트를 가능하게 합니다.Langfuse는 또한 실시간 점수제를 제공하며, 명시적 및 암시적 사용자 피드백, LLM-as-a-judge 평가 및 프로그래밍 가능한 검사를 캡처합니다. 이러한 점수는 원시 추적을 실행 가능한 통찰력으로 변환합니다. 또한 프로덕션 문제에서 파생된 데이터 세트를 사용하여 배포 전에 강력한 평가 및 실험을 가능하게 합니다. 이 구조화된 접근 방식은 프롬프트 버전과 모델 변경 사항을 객관적으로 비교하는 데 도움이 됩니다.이러한 핵심 기둥 외에도 Langfuse는 오픈 소스이며 온프레미스 또는 SaaS로 배포할 수 있으며 에이전트 생태계와 널리 통합됩니다. 에이전트 그래프의 고유한 시각화는 복잡한 오케스트레이션을 디버깅하는 데 도움이 됩니다. Langfuse 탐색은 데모 프로젝트, Langfuse Cloud의 관대한 무료 티어 또는 Docker를 통한 로컬 배포를 통해 액세스할 수 있습니다. 데이터에 대한 완전한 제어를 위해 자체 호스팅도 옵션입니다.Langfuse는 기존 APM 플랫폼을 대체하는 것이 아니라 보완하는 도구입니다. AI 에이전트의 기능적 품질과 사용자 인식을 다룹니다. 프롬프트 버전 관리, 실시간 점수제 및 체계적인 평가는 빠르고 일관된 개선 루프를 만듭니다. 이러한 쉬운 채택은 Langfuse를 프로토타입 단계를 넘어 에이전트 기능을 유지하는 데 필수적이며, 수동적이고 재현 불가능한 조사를 방지합니다.
CdXz5zHNQW_qYCeCAKuoM.webp
이 게시물은 Terraform, S3, Bedrock Knowledge Bases 및 OpenSearch Serverless를 사용하여 AWS에서 Retrieval-Augmented Generation (RAG) 시스템을 구현하는 과정을 자세히 설명합니다. RAG는 대규모 언어 모델(LLM)이 외부 지식 소스를 활용하여 답변을 생성할 수 있도록 하여 정확도를 향상시킵니다. RAG 프로세스는 수집(ingestion)과 질의(querying)의 두 가지 주요 단계로 구성됩니다. 수집 단계에서는 S3의 문서가 분할(chunked)되고 Bedrock에 의해 수치 임베딩으로 변환되어 OpenSearch Serverless에 저장됩니다. 질의 단계에서는 사용자의 질문이 임베딩으로 변환되고, OpenSearch에서 관련 문서 조각이 검색되며, 이를 LLM의 컨텍스트로 사용하여 출처가 명시된 답변을 생성합니다.이 시스템은 문서 소스로 Amazon S3를 사용하고 수집 파이프라인 관리를 위해 Amazon Bedrock Knowledge Bases를 활용합니다. OpenSearch Serverless는 벡터 데이터베이스로 구성되며, 임베딩을 위한 knn_vector 필드와 효율적인 유사도 검색을 위한 FAISS를 사용한 HNSW를 사용합니다. OpenSearch 인덱스는 원본 텍스트와 메타데이터도 저장하여 벡터, 어휘 및 메타데이터 필터링 검색을 지원합니다. 코사인 유사도는 벡터 비교에 사용됩니다. Terraform 스크립트는 IAM 역할, S3 버킷, Bedrock Knowledge Base 구성 및 OpenSearch Serverless 액세스 정책을 포함한 AWS 인프라를 정의합니다. Streamlit 애플리케이션은 S3에 문서를 업로드하고, 지식 기반 동기화를 트리거하며, RAG 시스템에 쿼리를 제출하기 위한 사용자 인터페이스를 제공합니다. 이 포괄적인 설정은 사용자 정의 RAG 시스템 구축을 위한 실용적인 시작점을 제공합니다.
CdXz5zHNQW_zJyAptlfmP.webp
이 프로젝트는 단일 모델, 단일 프롬프트 에이전트 애플리케이션을 다중 도메인 및 독립적인 도구를 갖춘 확장 가능한 플랫폼으로 발전시키는 과제를 해결합니다. 목표는 에이전트가 구현 세부 정보를 알지 못하고 여행, 금융 및 엔터테인먼트 기능을 원활하게 사용할 수 있는 로컬 우선 애플리케이션을 구축하는 것이었습니다. 아키텍처는 오케스트레이션을 위해 Strands Agents, 로컬 언어 모델을 위해 Ollama, 도구 계약을 위해 Model Context Protocol (MCP)에 의존합니다. 핵심 설계 선택은 에이전트에 대한 단일 엔드포인트 역할을 하면서 그 뒤에 여러 집중된 도메인 서버를 구성하는 MCP 게이트웨이입니다. 이 설계는 기존 에이전트 아키텍처에서 발견되는 긴밀한 결합, 불분명한 도구 소유권, 어려운 독립적 배포 및 검사 가능성과 같은 문제를 해결합니다. 시스템은 에이전트 동작을 도메인 도구와 분리하여 에이전트 프로필을 구성 기반으로 쉽게 확장할 수 있도록 합니다. 각 도메인 서버는 특정 도구만 관리하여 명확한 경계를 유지하고 독립적인 개발 및 배포를 가능하게 합니다. 게이트웨이는 다운스트림 서비스에 대한 운영 보기를 제공하여 중요한 상태 가시성을 제공합니다. Ollama를 사용한 로컬 모델 접근 방식은 더 저렴한 실험과 독립적인 개발 루프를 촉진합니다. 요약은 에이전트 아키텍처가 근본적으로 명확한 경계를 설정하는 것을 중심으로 이루어진다고 결론짓습니다.
CdXz5zHNQW_wZHwlViKDU.webp
AI 에이전트는 정교한 아키텍처에 의해 구동되며 기술 상호작용을 혁신하고 있습니다. AI 에이전트는 주변 환경을 인식하고, 결정을 내리며, 목표 달성을 위해 행동합니다. 이는 챗봇을 넘어 다단계 작업을 계획하고, 외부 도구를 사용하며, 피드백으로부터 학습하고, 협업하는 것을 포함합니다. ReAct 패턴은 복잡한 작업을 해결하기 위해 관찰, 추론, 행동, 결과 관찰의 순환에서 추론과 행동을 통합합니다. SOP 에이전트는 특정 조건과 도구 사용을 가진 사전 정의된 결정 트리를 따라 작업을 실행하여 일관성과 신뢰성을 보장합니다. Reflection 에이전트는 자체 수정 루프에서 자체 출력을 생성, 비평 및 수정하여 품질을 향상시킵니다. Multi-agent 시스템은 대규모 프로젝트에서 더 나은 결과를 위해 플래너, 실행자, 비평가, 코디네이터와 같은 전문화된 역할을 활용합니다. ReAct는 복잡한 추론에 적합하고, SOP는 반복적인 워크플로우에 이상적이며, Reflection은 품질이 중요한 작업에 뛰어나고, Multi-Agent 시스템은 대규모 프로젝트에 가장 적합합니다. 미래의 발전은 더 정교한 계획, 도구 통합, 메모리 및 협업을 가져올 가능성이 높습니다. 적절한 아키텍처를 선택하는 것은 효과적이고 신뢰할 수 있는 AI 에이전트를 설계하는 데 중요합니다. 이러한 패턴을 이해하는 것은 개발자가 더 나은 AI 시스템을 만드는 데 힘을 실어줍니다.
CdXz5zHNQW_QJZ31Tb8Yo.webp
AI 애플리케이션이 확장됨에 따라 대규모 언어 모델(LLM)은 느린 추론과 높은 비용이라는 과제에 직면해 있습니다. LLM 추론을 최적화하는 것은 응답 시간을 줄이고, 계산 비용을 낮추며, 더 광범위한 배포를 가능하게 하는 데 중요합니다. 양자화는 모델 가중치 정밀도를 낮추는 핵심 기술로, INT8 또는 INT4를 사용하는 것과 같이 정확도 손실을 최소화하면서 상당한 속도 향상을 제공합니다. PagedAttention과 같은 방법을 사용하는 KV 캐시 최적화는 특히 긴 컨텍스트에서 더 빠른 생성을 위해 메모리 효율성을 향상시킵니다. 추측 디코딩은 더 작은 모델을 사용하여 토큰을 초안 작성하고, 이를 더 큰 모델이 검증하여 품질 저하 없이 2-3배의 속도 향상을 달성합니다. 프롬프트 최적화는 토큰 사용량과 관련 비용을 최소화하기 위해 더 간결하고 구조화된 프롬프트를 만드는 데 중점을 둡니다. 여러 요청을 그룹화하는 배치 처리는 효율성을 더욱 향상시킵니다. 양자화는 상당한 속도 및 비용 이점을 제공하며, KV 캐시 및 추측 디코딩은 품질 손실 없이 속도 향상을 제공합니다. 프롬프트 최적화는 품질에 영향을 주지 않으면서 적당한 속도 및 비용 개선을 제공합니다. KV 캐시 최적화를 구현하는 것이 종종 가장 쉬운 시작점이며, 엣지 장치의 경우 양자화, 처리량의 경우 추측 디코딩이 뒤따릅니다. 미래에는 하드웨어별 솔루션 및 동적 라우팅을 포함한 더 발전된 최적화 방법이 등장할 것입니다. 궁극적으로 최상의 최적화 전략은 속도, 비용 또는 모델 품질 유지라는 특정 우선순위에 따라 달라집니다.
CdXz5zHNQW_6u3nRnRUP0.webp
CdXz5zHNQW_kEQw9y857P.webp
"DaemonCore Academy는 부에 따라 학습이 결정되어서는 안 된다는 신념으로 무료 사이버 보안 교육을 옹호합니다. 기술 전문가들로 구성된 창립자들은 업계의 비싼 구독료와 인증에 대한 집중을 반박합니다. 그들은 "해커"를 사물의 작동 방식을 이해하려는 본질적으로 호기심 많은 개인으로 정의하며, 단순 암기보다는 실질적이고 직접적인 학습을 옹호합니다. 그들은 과거 해커들이 해왔던 것처럼 지식 공유 문화를 조성하는 것을 목표로 합니다.DaemonCore Academy는 실습과 실제 시나리오를 통해 본능과 비판적 사고를 개발하는 것을 강조합니다. 그들은 사이버 보안 지식이 비밀이 아니며 배경이나 재정 상태에 관계없이 누구나 접근할 수 있어야 한다고 주장합니다. 그들의 플랫폼은 숨겨진 비용이나 마케팅 수법 없이 모든 것을 무료로 제공하는 실질적인 수업, 실습, 훈련장을 제공합니다. 이러한 무료 접근은 일시적인 제안이 아닌 핵심 철학적 원칙입니다.이 이니셔티브는 초보자들에게 실질적인 경험을 쌓을 수 있는 수단을 제공함으로써 사이버 보안 산업의 파이프라인 문제를 해결하고자 합니다. 그들은 사이버 보안을 배우고 싶다는 열망과 실제 문제를 자신 있게 해결하는 것 사이의 격차를 해소하는 것을 목표로 합니다. DaemonCore Academy는 주제의 복잡성을 존중하며, 학습을 더 쉽게 만드는 것이 아니라 더 접근하기 쉽게 만드는 데 중점을 둡니다. 그들은 이해가 자격증을 능가하는 기술의 공정성을 믿습니다.단순한 애플리케이션을 넘어, DaemonCore Academy는 기술 지식이 자유롭게 공유되고 가치 있게 여겨지는 커뮤니티를 구상합니다. 그들은 가르치고, 발견한 것을 문서화하고, 초보자를 돕는 상호 교육의 순환을 장려합니다. 이 프로젝트는 자격증, 암기, 수동적 소비, 문지기 역할보다 호기심, 이해, 연습, 커뮤니티를 우선시합니다. 궁극적으로 DaemonCore Academy는 만연한 수익화 모델에 도전하며 사이버 보안 교육에 대한 개방형 접근을 제공하는 것을 목표로 합니다."
Atlassian은 자사의 Rovo Dev AI 리뷰어가 내부적으로는 최대 45%, 고객에게는 32%의 PR(Pull Request) 주기 시간을 단축했다고 보고했습니다(주요 출처, 2026년 1월). 이 수치는 AI 리뷰가 검토 시간을 절약한다는 증거로 인용됩니다. 리뷰어가 무엇을 하는지 설명하는 내용을 읽어보면, 이 수치는 대부분 라우팅에 관한 것입니다.게시물에 따르면, 이 리뷰어는 사람이 PR을 열기 전에 엔지니어링 표준과 Jira 수락 기준을 강제합니다. 기계적 검사가 먼저 실행되므로, 사람이 변경 사항을 검토하기 전에 읽고 다시 읽는 과정의 대부분이 사라집니다. 사라지는 것은 기계에 대기하고 기계적 부분을 다시 읽는 데 걸리는 시간입니다.사라지지 않는 부분은 결정입니다. Real-SWE 벤치마크(Specific Labs, 2026년 9월)에서 최고의 에이전트는 라이선스된 엔터프라이즈 코드베이스에서 작업의 38.8%를 해결했습니다. 이 수락률에서 비싼 단계는 주어진 변경 사항이 실제로 올바른지 여부를 결정하는 것입니다. 주변 파이프라인을 단축한다고 해서 이 단계가 단축되는 것은 아닙니다. 이 단계가 이동하는 것입니다.따라서 유용한 목표는 "PR 검토 시간을 줄이는 것"이 아닙니다. 그것은 "기계가 결정할 수 없는 곳에만 인간의 주의를 사용하고, 더 빨리 결정하는 것"입니다. 기본 검사, 표준 일치, 수락 기준 검사는 모두 깔끔하게 자동화됩니다. 사람은 이유를 뒷받침할 수 있는 하나의 예/아니오 질문을 유지합니다.읽는 부분만 속도를 높이는 팀은 잘못된 양은 그대로 유지하면서 큐가 더 빨리 움직이는 것을 발견합니다. 정직한 단축을 얻는 팀은 순서를 변경한 팀입니다. 즉, 기계가 기계적 계층을 결정하고, 사람이 변경 자체를 결정합니다.
Specific Labs의 Real-SWE 벤치마크는 코딩 에이전트 평가에 있어 치명적인 문제를 드러냅니다. "Claude Code" 또는 "Codex CLI"와 같은 모델 이름은 실제 AI 모델이 아닌 하네스를 나타내므로 오해의 소지가 있습니다. 동일한 하네스라도 통합된 모델에 따라 성능이 크게 달라질 수 있습니다. 예를 들어, Codex CLI의 GPT-6 Astra는 33.8%의 해결률을 달성했지만, 동일한 하네스의 GPT-5.6 Sol은 16.2%에 불과했습니다. 이 두 배 이상의 차이는 하네스가 사고를 수행하는 구성 요소가 아니라 단순히 라우팅 계층임을 강조합니다.마찬가지로, Claude Code의 Fable 5.1은 38.8%를 기록한 반면, Claude Code의 GLM 5.3은 28.8%를 기록하여 10점의 차이를 보였습니다. Real-SWE는 모델과 하네스의 조합으로 결과를 올바르게 제시하며, 이는 종종 공급업체가 자체 도구에서 불리한 수치가 나올 수 있다는 이유로 피하는 정직한 관행입니다. 코딩 에이전트를 찾는 팀에게 단순히 "Claude Code 사용"은 에이전트의 실제 기술에 대한 통찰력을 제공하지 못합니다. 모델 교체가 가장 중요한 성능 레버이지만, 대부분의 마케팅에서는 숨겨져 있습니다.벤치마크 점수를 검토할 때는 사용된 모델과 하네스를 모두 식별하는 것이 중요합니다. 필수적인 세부 정보에는 컨벤션, 컨텍스트 전달, 도구 루프 및 판사가 포함됩니다. 공급업체가 점수와 연결된 특정 모델 공개를 꺼리는 것은 위험 신호여야 합니다. 스캐폴드, 즉 하네스는 에이전트의 실제 추론 능력보다 점수에 더 큰 영향을 미칠 수 있습니다.
Real-SWE는 라이선스된 비공개 기업 코드베이스(청구, 세금, 다중 서비스 작업)를 대상으로 프론티어 모델을 실행했으며, 한 가지 숫자가 눈에 띄었습니다. 롤아웃 기간이 해상도에 거의 영향을 미치지 않았습니다.10분 이내에 완료된 롤아웃의 71.4%가 실패했습니다. 10분 이상 실행된 롤아웃의 73.4%도 실패했습니다. 어느 쪽이든 통과율은 27-29%로 평탄했습니다. 실행 시간을 몇 분에서 긴 롤아웃으로 연장하는 것은 결과에 약 2% 포인트의 변화를 주는데, 이는 노이즈입니다.선두 주자인 Fable 5.1 on Claude Code는 38.8%의 해상도만 달성했습니다. GPT-6 Astra on Codex CLI는 33.8%를 달성했습니다. 최고 모델조차도 여전히 약 10개의 비공개 기업 작업 중 6개를 실패합니다.이것이 공급업체 데모에서 건너뛰는 부분입니다. 쉬운 문제는 빠르게 해결되므로 짧은 롤아웃에서는 높은 처리량이 나타납니다. 그러나 중요한 작업, 즉 실제 급여, 세금 및 통합 코드에 숨겨진 작업은 구조적인 벽에 부딪힙니다. 에이전트는 해당 작업에서 컴퓨팅 성능이 부족한 것이 아닙니다. 이해력이나 컨텍스트가 부족하거나, 하네스가 올바른 진입점을 제공하지 못하는 것입니다. 추가 10분의 반복적인 재시도는 이러한 문제를 해결하지 못합니다.Real-SWE가 올바르게 처리하는 또 다른 점은 각 점수를 모델 단독이 아닌 모델+하네스로 취급하는 것입니다. Fable 5.1은 Claude Code의 스캐폴드와 결합했을 때 38.8%에 불과합니다. 이것은 비공개 코드에 대한 하네스 결과이지, 진공 상태의 모델에 대한 진술이 아닙니다. 너무 많은 리더보드가 여전히 하네스가 고정되지 않은 모델 이름을 게시하고, 사람들은 완전히 다른 스캐폴딩 간에 비교하고 잘못된 결론을 내립니다.에이전트를 구매하는 모든 사람을 위한 팁: 공급업체가 통과율을 보여줄 때, 해당 숫자가 어떤 부분에서 나왔는지 물어보십시오. 빠르고 얕은 작업을 통과하기 때문에 훌륭해 보이는 모델은 실제로 해결해야 하는 정확한 세트를 숨기고 있습니다.벤치마크 출처: withspecific.com/benchmarks/real-swe
Agent-cache는 토큰 사용량과 실행 시간을 줄여 LLM 운영을 최적화하도록 설계된 3계층 캐싱 솔루션입니다. Valkey 또는 Redis를 사용하여 LLM 응답, 도구 출력 및 세션 상태를 캐싱합니다. 아키텍처에는 정확히 일치하는 LLM 응답 캐시, 함수 호출 결과를 위한 도구 출력 캐시, 에이전트 체크포인트를 위한 세션 상태 캐시가 포함됩니다. 각 계층은 고유한 TTL 전략을 사용하며, LLM 응답은 몇 시간 동안, 도구 출력은 더 짧은 기간 동안, 세션 상태는 활성 사용자 세션 동안 캐싱됩니다. LLM 응답의 캐시 키에는 프롬프트 해시와 모델 매개변수가 포함되며, 도구 출력 키에는 도구 이름과 인수 해시가 사용됩니다.시스템이 종속성을 추적하지 않으므로 수동 무효화가 필요하며, Redis glob 패턴을 사용하여 대상 캐시를 지울 수 있습니다. Valkey/Redis를 사용할 수 없는 경우, agent-cache는 기본적으로 정상적인 성능 저하를 수행하여 캐시를 건너뛰면서 각 계층에 대해 fail-fast 또는 로컬 폴백 옵션을 구성할 수 있습니다. OpenTelemetry 및 Prometheus와 같은 관찰 가능성 도구가 캐시 성능 및 상태를 모니터링하기 위해 통합됩니다. 라이브러리는 LangChain, LangGraph 및 Vercel AI SDK에 대한 어댑터를 제공하며 각 프레임워크에 대한 직렬화를 처리합니다.Valkey 또는 Redis를 이미 실행 중인 환경을 위해 설계되었으며, 해시 태그를 사용하여 효율적인 키 분배를 지원하는 독립형, 센티넬 및 클러스터 배포를 지원합니다. 주요 위험에는 오래된 도구 출력, 잠재적인 캐시 키 충돌 및 메모리 압력이 포함되며, 짧은 TTL, 포괄적인 캐시 키 및 메모리 정책을 통해 완화됩니다. 재시작 중 세션 상태 손실은 RDB 스냅샷 또는 AOF 지속성을 통해 해결됩니다.Agent-cache는 반복적인 프롬프트 또는 도구 호출이 있는 에이전트에 유용하며, 토큰 비용을 제어하고 기존 Redis 인프라를 활용하는 것을 목표로 합니다. 그러나 외부 상태를 변경하는 도구, 낮은 캐시 적중률을 초래하는 매우 동적인 프롬프트 또는 정확히 일치하는 것보다 의미론적 유사성 일치가 필요한 경우에는 적합하지 않습니다. 이 라이브러리는 프레임워크별 캐싱과 범용 Redis 간의 격차를 효과적으로 해소하며, 에이전트 루프 및 도구 동작이 잘 이해될 때 가장 잘 활용됩니다.
이 튜토리얼은 검색 증강 생성(RAG)을 사용하여 개인 건강 지식 기반을 구축하는 방법을 보여줍니다. 목표는 정적인 의료 PDF 보고서를 동적이고 쿼리 가능한 시스템으로 변환하는 것입니다. LlamaIndex가 프로세스를 조율하고, Unstructured.io가 복잡한 PDF 데이터 추출을 처리하며, Pinecone이 벡터 스토어로 사용됩니다. 이 시스템은 과거 개인 데이터와 현재 의료 문헌을 결합합니다.아키텍처는 하이브리드 지능 접근 방식을 사용합니다. DuckDB는 개인 지표에 대한 구조화된 SQL 기반 추세 분석에 사용되며, Pinecone은 의료 연구의 비구조화된 의미론적 컨텍스트를 저장합니다. Unstructured.io의 hi_res 전략은 PDF에서 테이블을 추출하는 데 중요합니다.이 시스템은 Python 3.10+, Unstructured.io 및 Pinecone API 키가 필요합니다. 테이블은 Unstructured.io를 사용하여 추출되고 구조화된 분석을 위해 필터링됩니다. 바이오마커 수치와 같은 구조화된 데이터는 시계열 분석을 위해 DuckDB에 저장됩니다.의료 노트와 연구는 의미론적 검색을 위해 Pinecone에 저장됩니다. LlamaIndex의 SQLAutoVectorQueryEngine은 사용자 쿼리를 지능적으로 라우팅합니다. 개인 추세에 대한 질문은 DuckDB로, 의료적 영향에 대한 질문은 Pinecone으로 전달합니다.이를 통해 개인 콜레스테롤 추세를 현재 지침과 비교하여 분석하는 것과 같은 포괄적인 쿼리가 가능합니다. 최종 결과는 개인 추세 분석과 증거 기반 컨텍스트를 병합하여 실행 가능한 건강 통찰력을 제공합니다. 이 설정은 학습용이지만, 프로덕션 시스템에는 더 엄격한 데이터 개인 정보 보호 및 의료적 근거가 필요합니다. 결론은 RAG가 단순한 문서 채팅을 넘어 실행 가능한 통찰력을 위해 데이터를 맥락화할 수 있음을 강조합니다.
CdXz5zHNQW_CHV9UefcBt.webp
프로덕션 환경의 프롬프트는 모델 플레이그라운드의 프롬프트와 상당히 다르며, 잠재적인 실패로 이어질 수 있습니다. Genkit은 프롬프트를 플로우, 스키마, 도구, 컨텍스트, 트레이스 및 평가와 통합하여 통합 애플리케이션 모델을 만듭니다. 프롬프트는 Genkit의 Dotprompt 형식을 사용하여 버전화된 아티팩트로 저장해야 하며, 템플릿 콘텐츠, 모델 구성 및 스키마 정의를 캡슐화해야 합니다. 이를 통해 프롬프트 변경 사항을 Git에서 검토할 수 있으며 설정이 템플릿과 함께 이동합니다.프롬프트는 타입이 지정된 플로우로 래핑되어야 하며, 안정적인 이름, 검증된 입력 및 출력, 트레이스 ID를 사용하여 애플리케이션 경계를 설정해야 합니다. 이 분리를 통해 사전 생성 비즈니스 규칙 및 사후 생성 유효성 검사가 모델의 핵심 기능과 독립적으로 발생합니다. 인증 토큰과 같은 실행 컨텍스트는 프롬프트 자체에 삽입하는 대신 Genkit의 컨텍스트 객체를 통해 전달되어 보안을 강화해야 합니다. 모델 출력은 신뢰할 수 없는 데이터로 취급해야 하며, 스키마는 파싱 가능성을 검증하고 기타 제어는 주장, 톤 및 전달을 처리해야 합니다.Genkit은 전체 플로우를 추적하여 작업, 모델 호출, 도구 및 잠재적 실패를 볼 수 있도록 합니다. OpenTelemetry를 기반으로 하는 이 텔레메트리는 디버깅 및 관찰 가능성에 도움이 됩니다. 변경 사항은 개별 문장과 일치하는 것뿐만 아니라 워크플로우가 제품 계약을 충족하는지 확인하기 위해 다양한 엣지 케이스를 포함한 데이터셋에 대해 평가해야 합니다. 개발자는 느슨한 프롬프트가 아닌 전체 플로우를 배포하여 조정된 롤백, 일관된 평가 및 안전한 배포를 가능하게 해야 합니다. 궁극적으로 프롬프트, 플로우, 컨텍스트, 도구, 스키마, 트레이스 및 평가를 포함하는 전체 워크플로우가 유지 관리 가능한 제품을 형성합니다.