Techlist.io - 한국 테크 블로그 큐레이터

toss3분 읽기큐레이션 요약

매일 하던 업무를 디자인하기

토스뱅크의 프로덕트 디자이너 김혜미는 매일 슬랙과 노션에 할 일을 수기로 옮기던 반복 업무를 직접 자동화했다. 슬랙 메시지에 특정 이모지를 달면 AI가 맥락을 읽고, 한 줄짜리 할 일과 팀 태그, 출처 링크를 위젯에 등록하도록 만든 것이다. 그 결과 업무를 수집·정리하는 데 쓰던 에너지를 줄이고, 실제 우선순위 판단에 집중할 수 있게 됐다. ## 반복 업무를 참는 대신 디자인하기 - 업무가 늘어나 하루 할 일이 20개를 넘으면서 수기 관리 방식의 한계가 드러났다. - 더 나은 할 일 앱을 찾기보다, 자신이 매일 사용하는 프로덕트로 문제를 재정의했다. - 사용자는 자신이고, 진짜 목표는 “할 일을 정리하는 것”이 아니라 “중요한 일을 놓치지 않고 처리하는 것”이었다. - 가장 큰 마찰은 할 일을 옮겨 적고, 관련 맥락과 출처를 다시 찾는 반복 작업이었다. - 해결 방향은 다음과 같았다. - AI가 슬랙 메시지에서 할 일을 자동 등록 - 원본 스레드와 문서 링크를 함께 저장 - 우선순위를 표시하고 화면에 위젯을 항상 노출 ## 슬랙 맥락을 AI가 할 일로 바꾸기 - 특정 이모지를 단 슬랙 메시지를 한 채널에 모은 뒤, Claude Code가 내용을 읽어 할 일로 변환했다. - 핵심 과제는 긴 메시지와 대화 맥락을 실행 가능한 한 줄의 문장으로 요약하는 것이었다. - 예를 들어 “대출 연장 신청 시 에러가 발생하는데 확인해달라”는 요청을 “대출 연장 에러 케이스 확인”으로 바꾸고 관련 팀을 태그했다. - 초기에는 요약이 지나치게 길거나 핵심을 놓치고, 잘못된 팀에 배정되는 문제가 있었다. - 이를 개선하기 위해 다음 기준을 직접 정의했다. - 좋은 할 일의 문장 구조 - 팀을 구분하는 기준 - 일관된 표현 방식 - 반드시 포함하거나 제거해야 할 정보 - 결국 AI가 만든 결과가 “내가 직접 적었을 법한 문장”이 되도록 예시와 규칙을 반복해서 다듬었다. ## AI에게 요구사항을 명확히 설명하기 - 위젯의 접기·펼치기, 드래그 같은 인터랙션을 구현하는 과정에서도 세부 동작을 구체적으로 설명해야 했다. - 머릿속에서는 당연한 동작도 AI에게는 단계별 조건과 예외를 언어로 전달해야 했다. - 구현 과정은 단순히 코드를 작성하는 일이 아니라, 자신의 업무 방식과 판단 기준을 명확히 정의하는 과정이었다. - 특히 AI가 업무를 이해하도록 만드는 일은 사용자의 요구를 더 정확한 언어로 구조화하는 작업과 같았다. ## 수집과 정리에서 우선순위 판단으로 - 위젯이 항상 화면에 표시되기 때문에 슬랙이나 노션을 반복해서 열어 할 일을 확인할 필요가 없어졌다. - 이전에는 하루에도 수십 번 “할 일이 뭐였지?” 하며 정보를 찾는 데 시간을 썼다. - AI가 업무를 모으고 정리하면서, 사용자는 무엇부터 처리할지 판단하는 데 집중할 수 있게 됐다. - 해야 할 일을 놓칠 것이라는 불안이 줄고, 우선순위 설정에 더 많은 에너지를 쓸 수 있었다. ## 개인적인 불편에서 팀의 문제로 - 개인용으로 만든 도구였지만 팀원들도 사용하기 시작했고, 유료 서비스로 제공해도 좋겠다는 반응까지 나왔다. - 개발자들이 직접 버그를 제보하고 기능을 제안하면서 사용자와 제작자의 역할이 뒤바뀌기도 했다. - 이를 통해 할 일 관리, 맥락 수집, 우선순위 설정은 직무와 관계없이 많은 사람이 겪는 공통 문제임을 확인했다. - 도구가 확산된 이유는 새로운 아이디어라서가 아니라, 사람들이 이미 반복적으로 겪던 불편을 해결했기 때문이다. ## 직접 적용하는 방법 - 이번 주에 가장 자주 반복한 ‘진짜 일이 아닌 일’을 찾는다. - 옮겨 적기 - 자료 찾기 - 정보 정리하기 - 다음 질문으로 문제를 정의한다. - 사용자는 누구인가? - 실제로 이루려는 결과는 무엇인가? - 가장 큰 마찰은 어디에서 발생하는가? - 무엇이 자동화되면 성공인가? - 기존 도구가 해결하지 못하는 이유를 살핀다. - 처음부터 큰 시스템을 만들기보다, 다음 날 바로 써볼 수 있는 가장 작은 기능부터 구현한다. 반복적으로 정보를 옮기고 정리하는 업무가 있다면, 이를 개인의 습관이나 인내심 문제가 아니라 자동화할 수 있는 프로덕트 문제로 바라보는 것이 출발점이다.

원문 읽기(새 탭에서 열림)
gitlab2분 읽기큐레이션 요약

GitLab과 Capgemini, DevSecOps 혁신 가속화

GitLab과 Capgemini가 글로벌 얼라이언스를 체결해 DevSecOps 전환을 가속화한다. Capgemini는 GitLab Select Partner로서 GitLab Duo Agent Platform을 비롯한 GitLab 포트폴리오와 전문 구현 서비스를 제공해, 고객이 플랫폼 도입 후 실제 성과를 더 빠르게 얻도록 지원한다. 양사는 소프트웨어 공급망 보안, 클라우드 현대화, 생성형·에이전트형 AI 도입을 중점적으로 추진한다. ## 글로벌 DevSecOps 협력 - GitLab은 소프트웨어 개발 생명주기 전반에 AI를 orchestration하는 플랫폼을 제공한다. - Capgemini는 디지털 전환과 비즈니스 혁신 컨설팅 역량을 결합한다. - 고객은 도구뿐 아니라 전환에 필요한 프로세스, 방법론, 구현 지원까지 받을 수 있다. - 이를 통해 플랫폼 구매부터 실제 운영 성과 창출까지의 시간을 단축하는 것이 목표다. ## 클라우드 네이티브 개발과 애플리케이션 현대화 - 기존 레거시 워크로드를 현대적인 클라우드 아키텍처로 이전하도록 지원한다. - 애플리케이션 현대화를 통해 개발·배포 속도와 운영 효율을 높인다. - DevSecOps 방식을 적용해 개발 과정에 보안과 자동화를 통합한다. ## 주권형 솔루션 설계 - 국가별 규제, 지역별 정책, 데이터 레지던시 요구사항을 충족하는 솔루션을 설계·구축한다. - 데이터가 특정 국가나 지역 밖으로 이동할 수 없는 환경에서도 DevSecOps 플랫폼을 활용할 수 있도록 한다. - 공공기관이나 규제 산업처럼 높은 컴플라이언스가 필요한 조직을 주요 대상으로 한다. ## 가치 흐름(Value Stream) 현대화 - 아이디어 구상부터 개발, 테스트, 보안 검증, 배포까지의 소프트웨어 전달 과정을 개선한다. - 개발 생명주기 각 단계의 병목을 줄이고 팀 간 협업과 가시성을 강화한다. - 궁극적으로 아이디어를 제품과 서비스로 전환하는 시간을 단축한다. ## 생성형·에이전트형 AI 도입 - GitLab Duo Agent Platform을 개발 워크플로에 통합한다. - AI가 소프트웨어 개발 생명주기 전반의 작업을 조율하도록 지원한다. - 개발팀이 반복 작업을 줄이고 더 빠르게 소프트웨어를 출시하도록 돕는다. 이번 협력은 GitLab의 DevSecOps 및 AI 플랫폼과 Capgemini의 전환 컨설팅·구현 역량을 결합한 사례다. 클라우드 전환, 규제 준수, 공급망 보안, AI 활용을 동시에 추진하려는 조직이라면 양사의 전문 서비스와 GitLab 플랫폼을 함께 검토할 수 있다.

원문 읽기(새 탭에서 열림)
figma3분 읽기큐레이션 요약

색의 언어로 말하기 | Figma 블로그

색은 단순한 시각 요소가 아니라 감정과 문화적 의미를 전달하는 언어이며, 브랜드의 메시지와 정체성을 형성하는 중요한 도구다. Pantone Color Institute(PCI)는 자연, 문화, 사회 분위기, 지역별 관습을 분석해 색이 사람들에게 어떻게 받아들여지는지 연구한다. 효과적인 색상 선택은 유행을 따르는 데 그치지 않고, 전달하려는 메시지와 사용 환경에 맞춰 색의 의미를 설계하는 데서 출발한다. ## 색이 감정과 인식에 미치는 영향 - 색에 대한 무의식적 반응은 자연환경과 밀접하게 연결되어 있다. - 노란색은 태양의 따뜻함과 즐거움을 연상시킨다. - 초록색은 재생과 성장을, 갈색은 안정감과 뿌리내림을 나타낸다. - 파란색은 변함없이 존재하는 하늘의 이미지 때문에 신뢰와 안정성을 전달한다. - 주황색은 과일의 새콤달콤한 맛과 연결되어 활기와 감각적인 즐거움을 불러일으킨다. - 자연을 반영하는 색은 문화와 시대가 바뀌어도 비교적 오래 지속되는 힘을 가진다. - 영화, 음악, 예술가, 여행, 스포츠, 신기술, 사회 분위기와 경제 상황도 색에 대한 감각을 변화시킨다. - 경제가 위축되면 사람들이 선호하는 색상 팔레트 역시 달라질 수 있다. ## 지역과 문화에 따른 색의 의미 - 색의 의미는 전 세계적으로 동일하지 않으며, 지역마다 고유한 “색의 방언”이 존재한다. - 서양에서는 장례식에 검은색을 입지만, 동양 일부 문화권에서는 흰색을 입는다. - 빨간색도 문화권에 따라 사랑·분노·긴급함을 뜻할 수 있고, 동양에서는 행운·번영·축하를 상징하기도 한다. - 따라서 브랜드와 마케팅 팀은 색상 트렌드나 보편적 의미만 믿어서는 안 된다. - 일본과 프랑스 소비자는 같은 제품을 보더라도 각자의 문화적 경험에 따라 색을 다르게 해석할 수 있다. ## 색으로 브랜드 스토리 만들기 - 효과적인 브랜드 색상은 회사가 무엇을 지향하는지 시각적으로 표현해야 한다. - 코카콜라의 빨간색은 흥분과 에너지를 전달하며, 시간이 지나면서 브랜드 자체를 상징하는 색이 되었다. - Airbnb는 2014년 기존의 베이비 블루를 연어색으로 변경했다. - 따뜻하고 인간적인 인상을 주며, 낯선 사람의 집에 머무는 데서 오는 불안감을 완화하려는 의도가 담겼다. - 이후 현지 문화를 연결하는 Experiences 서비스와도 자연스럽게 연결되었다. - Charli XCX의 ‘Brat Green’은 패션에서 먼저 관찰된 이질적인 색이 대중문화의 상징으로 발전한 사례다. - 병들거나 불쾌한 느낌을 줄 수 있는 색에 새싹과 생명력의 이미지를 결합했다. - 강렬한 색감과 노란 기운이 소셜미디어에서 눈에 띄는 대담함과 활력을 만들어냈다. - 브랜드 색은 고립된 색상값이 아니라 브랜드가 전달하려는 감정, 시대정신, 소비자 경험과 함께 설계해야 한다. ## 재료와 매체를 고려한 색상 설계 - 같은 색이라도 화면, 직물, 플라스틱, 종이 등 재료와 표면에 따라 다르게 보인다. - 디지털 화면에서 매력적인 색이 실제 제품에서는 지나치게 자극적으로 보일 수 있다. - 직물 염료로 구현 가능한 색이 의료용 밴드 같은 다른 소재에서는 구현되지 않을 수도 있다. - 따라서 색상은 디자인 후반에 추가하는 요소가 아니라 초기 기획 단계부터 고려해야 한다. - 색을 선택할 때는 색상 자체뿐 아니라 재료, 표면 마감, 조명, 실제 사용 환경까지 함께 검토해야 한다. ## 팬톤 컬러 연구와 시대정신 - Pantone Color Institute는 1986년 설립되었으며, 색채 심리학자와 트렌드 예측가로 구성된 글로벌 조직이다. - 연구 결과는 다음과 같은 분야에 활용된다. - PANTONEVIEW 트렌드북 - Pantone Connect 같은 디자인 도구 - 팬톤의 실물 컬러 가이드 - 매년 발표되는 Pantone Color of the Year - 매년 선정되는 올해의 색은 26년 이상 이어진 교육·문화 프로그램으로, 디자인 업계에서 큰 영향력을 행사한다. - PCI는 색을 단순히 예쁜 조합으로 고르는 것이 아니라, 사회 변화와 문화적 분위기, 소비자의 감정 변화를 반영하는 방식으로 해석한다. 제품이나 브랜드에 색을 적용할 때는 먼저 “어떤 메시지를 전달할 것인가”를 정한 뒤, 목표 시장의 문화적 맥락과 실제 소재·매체에서의 구현 가능성을 함께 검토하는 것이 좋다. 유행하는 색을 그대로 따라가기보다 브랜드의 가치와 사용자의 감정을 연결하는 색상 체계를 설계해야 한다.

원문 읽기(새 탭에서 열림)
aws4분 읽기큐레이션 요약

Amazon S3 어노테이션: 풍부하고 쿼리 가능한 컨텍스트를 객체에 직접 첨부하기 | Amazon Web Services

Amazon S3 annotations는 객체에 대규모·구조화된 비즈니스 맥락을 직접 연결하고, 객체를 다시 작성하지 않고도 수정·삭제할 수 있게 하는 새로운 메타데이터 기능이다. 객체당 최대 1,000개의 annotation을 저장할 수 있으며, 각 annotation은 최대 1MB, 전체 최대 1GB까지 지원한다. S3 Metadata를 활성화하면 annotation을 Athena 등으로 대규모 조회할 수 있어 AI 에이전트와 자동화된 데이터 워크플로에 적합하다. ## S3 annotations의 특징과 규모 - JSON, XML, YAML, 일반 텍스트 등 다양한 형식을 지원한다. - annotation마다 고유한 이름을 부여한다. - 객체당 최대: - 1,000개 annotation - annotation 하나당 1MB - 전체 1GB - 객체 데이터를 다시 업로드하지 않고 annotation만 독립적으로 수정하거나 삭제할 수 있다. - 객체를 복사하거나 복제하거나 리전 간 전송할 때 annotation도 함께 이동한다. - 객체를 삭제하면 연결된 annotation도 자동으로 삭제된다. ## 기존 S3 메타데이터의 한계 - 시스템 정의 메타데이터는 객체 크기, 스토리지 클래스 등 S3가 관리하는 기본 속성에 초점을 둔다. - 객체 태그는 접근 제어와 수명 주기 관리 같은 운영 작업에 적합하지만 객체당 10개로 제한된다. - 사용자 정의 메타데이터는 업로드 시 지정하는 소량의 헤더 기반 정보이며, 약 2KB 수준이고 변경이 제한적이다. - 풍부한 설명이나 AI 분석 결과를 저장하려면 별도 데이터베이스나 사이드카 파일을 운영해야 했다. - 별도 메타데이터 시스템을 사용하면 원본 객체와 메타데이터 간 동기화 로직이 복잡해지고, 메타데이터 저장 비용이 객체 자체의 저장 비용보다 커질 수도 있다. ## AI 에이전트와 데이터 검색 - AI가 생성한 음성·영상 트랜스크립트, 요약, 감정 분석, 콘텐츠 등급 등을 객체에 직접 저장할 수 있다. - 메타데이터가 객체와 함께 이동하므로 데이터 복사·복제 과정에서 별도 동기화가 필요하지 않다. - S3 Metadata annotation 테이블을 사용하면 Athena와 다른 분석 엔진으로 annotation을 대규모 조회할 수 있다. - S3 Tables MCP 서버를 활용하면 AI 모델이 자연어 질의로 관련 데이터를 탐색할 수 있다. - 객체를 직접 복원하지 않고도 모든 스토리지 클래스의 annotation을 조회할 수 있으며, Glacier 계열에서도 객체 검색·복원 비용 없이 컨텍스트를 확인할 수 있다. ## 산업별 활용 사례 - **미디어·엔터테인먼트** - 영상별 트랜스크립트, 자막, 콘텐츠 검수 결과, 라이선스 정보를 별도 annotation으로 저장한다. - 여러 미디어 자산 관리 시스템 간 메타데이터 동기화를 줄일 수 있다. - **금융 서비스** - 연구 문서에 AI 기반 투자 요약과 감정 분석 결과를 연결한다. - 자연어 기반 에이전트가 별도 메타데이터 데이터베이스 없이 관련 문서를 탐색할 수 있다. - **생명과학** - 임상시험 데이터에 규제 상태, 환자군 정보, 승인 절차를 추가한다. - 보관된 데이터의 전체 맥락을 유지하면서 규제 감사와 컴플라이언스 검토를 간소화한다. ## annotation 생성·조회·수정·삭제 - IAM 정책 또는 버킷 정책에 다음 권한이 필요하다. - `s3:PutObjectAnnotation` - `s3:GetObjectAnnotation` - `PutObjectAnnotation` API로 기존 객체와 새 객체 모두에 annotation을 추가할 수 있다. - 예시처럼 하나의 영상 객체에 다음과 같이 서로 다른 정보를 저장할 수 있다. - `mediainfo`: 코덱, 해상도, 오디오 트랙 수 등을 JSON으로 저장 - `ai_summary`: AI가 생성한 영상 설명을 일반 텍스트로 저장 - 주요 API: - `GetObjectAnnotation`: 특정 annotation 조회 - `ListObjectAnnotations`: 객체에 연결된 전체 annotation 목록 확인 - `DeleteObjectAnnotation`: 특정 annotation 삭제 - `PutObjectAnnotation`: 같은 이름으로 호출해 기존 annotation 갱신 - 여러 팀이나 워크플로가 서로 다른 이름의 annotation을 사용하면 기술 정보, 콘텐츠 분류, 규제 정보 등을 서로 간섭 없이 동시에 관리할 수 있다. - 멀티파트 업로드 객체는 업로드를 완료한 뒤 `PutObjectAnnotation`으로 annotation을 추가해야 한다. ## 대규모 조회와 관리 - 개별 객체에 annotation을 붙이는 것만으로도 풍부한 컨텍스트를 보존할 수 있다. - S3 Metadata를 활성화하면 annotation이 관리형 annotation 테이블로 자동 전달된다. - 테이블 기반 조회를 통해 수많은 객체의 분류, 요약, 규제 상태, 기술 사양 등을 한 번에 검색할 수 있다. - 객체 본문을 모두 읽지 않고 메타데이터만 조회할 수 있어 대규모 데이터셋과 장기 보관 데이터에 특히 유리하다. S3 annotations는 단순한 태그나 업로드 시점의 헤더 메타데이터를 넘어, 변경 가능하고 대용량이며 조회 가능한 객체 컨텍스트를 제공한다. AI 에이전트, 콘텐츠 enrichment 파이프라인, 규제·감사 시스템처럼 객체의 의미와 상태가 계속 확장되는 환경에서는 별도 메타데이터 저장소를 구축하기 전에 annotations와 S3 Metadata 테이블 조합을 우선 검토할 만하다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

Git worktree란 무엇이며, 왜 사용해야 할까요?

Git worktree는 하나의 저장소에서 여러 작업 디렉터리를 동시에 운영하게 해 주는 기능으로, 브랜치 전환과 `git stash` 없이 여러 작업을 병렬로 진행할 수 있게 한다. 특히 AI 에이전트와 개발 세션을 동시에 실행하는 환경에서 각 작업의 맥락을 보존하고 전환 비용을 줄여 주기 때문에 최근 주목받고 있다. 다만 의존성 저장 공간, 디렉터리 정리, 동일 브랜치 중복 체크아웃 등의 관리 부담은 남아 있다. ## 브랜치 전환과 `git stash`의 부담 - 기존 방식에서는 긴급한 버그를 처리하기 위해 현재 작업을 먼저 임시 저장해야 한다. ```bash git stash "wip feature login" ``` - 이후 `main` 브랜치로 이동하고 최신 변경 사항을 받은 뒤, 별도의 핫픽스 브랜치를 생성한다. ```bash git checkout main git pull origin main git checkout -b hotfix-bug ``` - 수정·커밋·푸시·병합이 끝나면 다시 원래 브랜치로 돌아가 `stash pop`을 실행한다. - 이 과정에서 다음과 같은 비용이 발생한다. - 작업 파일과 에디터 상태를 반복해서 다시 로드해야 함 - 변경된 의존성에 따라 `node_modules` 등을 재설치할 수 있음 - 복잡한 stash 충돌이 발생할 수 있음 - 현재 작업의 맥락을 잃기 쉬움 - 일부 개발자는 이를 피하기 위해 같은 저장소를 여러 번 clone하기도 하지만, 저장 공간과 관리 부담이 커진다. ## Worktree를 이용한 병렬 작업 - `git worktree add`를 사용하면 기존 작업 디렉터리를 그대로 둔 채 별도의 디렉터리에서 다른 브랜치를 체크아웃할 수 있다. ```bash git worktree add ../hotfix-workspace -b hotfix-bug main ``` - 이 명령은 다음 작업을 한 번에 수행한다. - 기존 프로젝트 옆에 `hotfix-workspace` 디렉터리 생성 - `main`을 기반으로 `hotfix-bug` 브랜치 생성 - 새 디렉터리에서 해당 브랜치 체크아웃 - 원래 에디터 창과 feature 브랜치의 파일 상태는 그대로 유지된다. - 새 디렉터리에서 독립적으로 수정하고 커밋·푸시할 수 있다. ```bash cd ../hotfix-workspace git add . git commit -m "fix broken submit button" git push origin hotfix-bug ``` - 작업이 끝나면 임시 worktree를 제거한다. ```bash cd ../main-project git worktree remove ../hotfix-workspace ``` - 따라서 stash 충돌 없이 여러 작업을 동시에 진행하고, 각 작업의 에디터와 파일 맥락을 보존할 수 있다. - VS Code 등 일부 개발 도구는 worktree를 직접 지원한다. ## Worktree가 최근 주목받는 이유 - Git worktree 자체는 2015년부터 존재했지만, 오랫동안 일반 개발자에게 널리 알려지지는 않았다. - 과거에는 대부분 다음과 같은 단순한 흐름을 사용했다. - feature 브랜치 생성 - 작업 - Pull Request 생성 - 병합 - 다음 작업 시작 - Git GUI가 worktree를 제대로 지원하지 않거나 부가 기능처럼 취급한 점도 확산을 막았다. - 최근에는 AI 도구와 에이전트가 여러 개발 세션을 동시에 실행하면서 병렬 작업이 크게 증가했다. - 코드 작성뿐 아니라 코드 리뷰와 자동화 작업도 병렬로 진행되면서, 세션마다 독립적인 작업 공간을 제공하는 worktree가 적합해졌다. - GitHub Copilot 앱을 비롯한 최신 개발 도구에서는 worktree가 기본 실행 방식으로 사용되기도 한다. ## Worktree 사용 시 주의점 - **의존성 저장 공간 증가** - 각 worktree가 프로젝트 의존성을 별도로 설치하면 `node_modules`나 Python 패키지가 반복 저장된다. - 여러 worktree를 동시에 사용하면 디스크 공간이 빠르게 줄어들 수 있다. - **디렉터리 정리 필요** - 작업이 끝난 worktree를 직접 삭제하지 않으면 부모 디렉터리에 임시 폴더가 계속 쌓인다. - 일부 앱은 이를 자동으로 처리하지만, 터미널 사용 시 직접 관리해야 한다. - **`.gitignore` 설정** - 저장소 내부에 worktree를 만들 경우 해당 폴더가 실수로 추적되지 않도록 `.gitignore`에 추가해야 한다. - 저장소 외부에 worktree를 생성하면 이 문제를 줄일 수 있다. - **동일 브랜치 중복 체크아웃 제한** - Git은 데이터 손상을 막기 위해 같은 브랜치를 여러 worktree에서 동시에 체크아웃하지 못하게 한다. ## GitHub Copilot 앱에서의 사용 - 새 세션을 만들 때 실행 위치를 선택할 수 있으며, 기본값으로 새 worktree를 사용할 수 있다. - 세션을 시작하면 앱에서 다음 정보를 확인할 수 있다. - 생성된 worktree 이름 - worktree의 경로 - 연결된 프로젝트 - 해당 worktree에서 발생한 변경 사항 - 사용자가 직접 Git 명령을 관리하지 않아도 병렬 세션을 쉽게 만들고 정리할 수 있다는 점이 장점이다. ## 상황에 따른 선택 - 작업을 자주 병렬로 진행하거나 AI 에이전트를 여러 개 실행한다면 worktree가 특히 유용하다. - 단일 작업을 순차적으로 처리하고 기존 브랜치·stash 방식이 익숙하다면 반드시 전환할 필요는 없다. - 두 방식을 함께 사용하면서 작업 유형에 따라 선택하는 것도 가능하다. - 병렬 작업이 많은 팀이나 개발자는 worktree를 도입하되, 의존성 공유와 임시 디렉터리 정리 전략을 함께 마련하는 것이 좋다.

원문 읽기(새 탭에서 열림)
naver1분 읽기큐레이션 요약

SaaS 대체하기: AI와 함께한 광고SDK 에러 모니터링 시스템 구축기

이 글은 기술적 내용을 담은 본문이 아니라 NAVER D2 사이트의 메뉴와 저작권 정보만 나열한 페이지입니다. 따라서 특정 기술, 문제 해결 방법, 결론이나 실용적인 지침은 제시되지 않습니다. ### NAVER D2 주요 메뉴 - **Hello world**: 사이트의 기본 시작 또는 소개 항목으로 보입니다. - **D2 News**: NAVER D2 관련 소식을 제공하는 메뉴입니다. - **About D2**: D2 조직이나 서비스에 대한 소개 항목입니다. - **NAVER Developers**: NAVER 개발자 관련 정보로 연결되는 메뉴입니다. - **DEVIEW**: NAVER의 개발자 행사인 DEVIEW 관련 항목입니다. - **OpenSource**: 오픈소스 프로젝트나 활동을 다루는 메뉴입니다. - **D2 STARTUP FACTORY**: 스타트업 지원 프로그램 또는 관련 조직을 소개하는 항목입니다. ### 저작권 정보 - 저작권자는 **NAVER Corp.**입니다. - 모든 권리는 NAVER에 있으며, 저작권 표기는 2020년대 일반적인 NAVER D2 페이지 형식으로 보입니다. 본문이 메뉴 목록만으로 구성되어 있어, 별도의 기술적 분석이나 적용 가능한 결론을 도출하기는 어렵습니다.

원문 읽기(새 탭에서 열림)
cloudflare3분 읽기큐레이션 요약

Cloudflare DMARC 관리 기능이 이제 정식 출시되었습니다

Cloudflare DMARC Management가 무료 서비스에서 정식 출시(GA)로 전환되며, 도메인의 이메일 인증 상태를 한곳에서 확인하고 DMARC 적용 단계를 안전하게 높일 수 있도록 개편되었습니다. SPF·DKIM·DMARC·BIMI 상태와 발신 소스를 분석해 인증 실패나 위조 발신을 파악하고, `p=none`에서 `p=quarantine`, `p=reject`로 전환할 때 발생할 수 있는 문제를 줄이는 것이 핵심입니다. 이를 통해 전문 컨설턴트나 XML 보고서 수작업 분석 없이도 도메인 보호와 이메일 전달률 개선을 지원합니다. ## 이메일 인증의 역할 - **SPF**는 도메인을 대신해 이메일을 보낼 수 있는 IP 주소와 서비스를 지정합니다. - **DKIM**은 이메일에 암호화 서명을 추가해 전송 중 메시지가 변조되지 않았는지 검증합니다. - **DMARC**는 SPF와 DKIM을 연결하고, 인증 실패 메일을 허용·격리·거부할지 정책으로 지정합니다. - DMARC 보고서를 통해 어떤 발신자가 도메인을 사용하고 있는지도 확인할 수 있습니다. - **BIMI**는 지원되는 받은편지함에 브랜드 로고를 표시하며, 이를 사용하려면 강력한 DMARC 정책이 필요합니다. - 네 가지 설정이 올바르면 도메인 사칭 메일을 차단하고 정상 메일의 전달 가능성을 높일 수 있습니다. ## DMARC가 필수가 된 배경 - Google, Microsoft, Yahoo 등 주요 메일 제공업체가 최근 이메일 인증 요구사항을 강화했습니다. - DMARC·SPF·DKIM이 없거나 잘못 설정된 도메인은 정상적인 메일도 스팸 처리되거나 거부될 수 있습니다. - 이메일 인증 문제는 브랜드 사칭뿐 아니라 고객 커뮤니케이션 실패와 매출 손실로 이어질 수 있습니다. - 과거의 권장사항이었던 DMARC가 이제는 도메인에서 이메일을 보내기 위한 사실상 필수 조건이 되었습니다. ## DMARC 적용 단계의 불확실성 - `p=none`은 모니터링만 수행하고 인증 실패 메일을 차단하지 않습니다. - `p=quarantine`은 의심스러운 메일을 스팸함으로 보냅니다. - `p=reject`는 인증되지 않은 메일을 완전히 차단합니다. - 너무 빨리 정책을 강화하면 외부 이메일 서비스나 누락된 발신 시스템의 정상 메일이 중단될 수 있습니다. - 반대로 전환을 지나치게 늦추면 도메인 사칭과 이메일 전달률 저하 위험이 계속됩니다. - 기존에는 XML 집계 보고서를 분석하고 모든 정상 발신 소스를 직접 식별해야 했지만, Cloudflare는 이를 셀프서비스 방식으로 단순화하는 것을 목표로 합니다. ## 발신 소스 조사 기능 - DMARC 보고서에서 발신 서비스와 함께 **소스 IP 주소**를 확인할 수 있습니다. - 각 발신 소스가 DMARC, SPF, DKIM 정렬(alignment)을 통과했는지 또는 실패했는지 한눈에 볼 수 있습니다. - IP 주소를 Cloudflare의 **Investigate** 탭에서 직접 조회할 수 있습니다. - Investigate 탭에서는 다음 정보를 제공합니다. - IP 평판 - 지리적 위치 - ASN(자율 시스템 번호) - 악성 활동과의 알려진 연관성 - 이에 따라 보고서가 단순한 통계 자료가 아니라 정상 인프라와 무단 발신자를 구분하는 조사 도구로 활용됩니다. ## 이메일 인증 레코드 통합 점검 - DMARC, DKIM, SPF, BIMI 레코드 상태를 하나의 화면에서 확인할 수 있습니다. - 각 레코드는 자동 분석을 통해 **통과·경고·실패** 상태로 표시됩니다. - 레코드별 상세 결과와 수정 권장사항을 확인할 수 있습니다. - 점검 항목에는 다음이 포함됩니다. - **SPF**: 중복 레코드, DNS 조회 제한 초과, 허용 범위가 지나치게 넓은 `+all`, 누락된 메커니즘 - **DKIM**: 키 형식 오류 또는 잘못 구성된 키 - **BIMI**: 강력한 DMARC 정책을 갖췄지만 BIMI 레코드가 없는 경우 - 안내 문구는 RFC 전문 용어보다 이해하기 쉬운 평이한 표현으로 제공되어, 다음 조치를 쉽게 판단할 수 있도록 설계되었습니다. ## 실용적인 활용 방향 먼저 Cloudflare DMARC Management에서 SPF·DKIM·DMARC·BIMI 상태와 발신 IP를 점검하고, 실패한 소스가 실제 사용 중인 외부 서비스인지 확인하는 것이 좋습니다. 정상 발신 흐름을 모두 파악한 뒤 `p=none`에서 단계적으로 정책을 강화하면, 정상 메일 중단 위험을 줄이면서 최종적으로 `p=reject` 수준의 도메인 보호에 도달할 수 있습니다.

원문 읽기(새 탭에서 열림)
figma3분 읽기큐레이션 요약

Figma에서 MCP 서버를 활용하는 4가지 방법 | Figma 블로그

Figma의 MCP 서버는 디자인 파일을 읽는 수준을 넘어 Slides·FigJam·Make·Figma 에이전트 전반에서 콘텐츠를 생성하고 수정하는 도구로 확장됐다. 에이전트는 사내 문서와 최신 제품 정보를 바탕으로 발표 자료나 협업 보드를 만들고, Figma 템플릿·디자인 시스템·사용자 정의 폰트까지 반영할 수 있다. 그 결과 반복적인 콘텐츠 제작의 상당 부분을 자동화하면서도 최종 검토와 창의적 판단은 사람이 담당하는 워크플로가 가능해졌다. ## Figma MCP 서버의 확장된 역할 - Figma Slides, FigJam, Figma Make, 새로운 Figma 디자인 에이전트에서 프롬프트 기반 생성·수정을 지원한다. - 디자인 파일의 이미지와 아이콘을 SVG, PDF, JPG, PNG로 내려받을 수 있는 `download_assets` 도구가 추가됐다. - 업로드한 사용자 정의 폰트를 지원해 웹 안전 폰트로 대체하지 않고 브랜드 서체를 그대로 렌더링한다. - `use_figma` 도구와 `/figma-use-slides` 같은 MCP 스킬을 조합해 팀의 템플릿과 디자인 의도를 결과물에 반영한다. - 스킬은 에이전트의 출력 품질과 일관성을 높이며, Figma 커뮤니티에서 공유하거나 직접 제작할 수 있다. ## 지속적으로 갱신되는 발표 자료 만들기 - Figma의 디자이너 옹호 담당자는 AI 제품 출시 내용을 정리한 상시 업데이트형 발표 자료를 운영한다. - 다음과 같은 프롬프트를 코드 에디터에서 실행해 자료를 갱신한다. - Slack, Google Drive, Shortcut 블로그, 릴리스 노트에서 최신 정보를 수집 - 기존 덱에서 갱신이 필요한 부분을 제안 - 새로 추가할 슬라이드 아이디어를 생성 - Figma Slides의 기존 템플릿에 내용을 반영 - 에이전트가 관련 대화, 브리프, 출시 메시지를 모아 초안의 약 80%를 완성한다. - 이후 사람은 이미지 교체, 문구 수정, 내용 검토 등 품질 관리에 집중한다. - 사용자 정의 폰트를 활용하기 때문에 발표 자료의 브랜드 정체성과 시각적 일관성을 유지할 수 있다. - 같은 방식은 다음과 같은 업무에도 적용된다. - PM의 제품 킥오프 자료 작성 - 디자이너의 디자인 탐색 발표 - 마케팅 팀의 GTM 계획 수립 - 영업 팀의 고객용 자료 최신화 - 핵심 이점은 단순히 제작 속도를 높이는 데 그치지 않고, 팀의 디자인 시스템과 브랜드 기준을 반영한 결과물을 만드는 것이다. ## 실시간 데이터를 반영한 FigJam 보드 생성 - 제품 관리자는 기능 킥오프 워크숍을 준비할 때 회사 곳곳의 정보를 수집하고, 세션에 맞게 FigJam 섹션을 구성해야 한다. - 이 과정은 관련 맥락을 모으고 보드 형식을 맞추는 데 많은 시간이 걸린다. - 이를 자동화하기 위해 `/figjam-builder`라는 커스텀 스킬을 구축했다. - 스킬과 MCP 서버를 이용하면 실시간 데이터와 조직 내 정보를 바탕으로 워크숍용 FigJam 보드를 생성할 수 있다. - 제공된 본문은 이 사례의 구체적인 구현 방식과 나머지 두 가지 활용 사례 설명으로 이어지기 전에 중단되어 있다. MCP를 도입할 때는 모든 결과를 자동 게시하기보다, 에이전트가 자료 조사와 초안 작성을 맡고 사람이 사실관계·문구·시각 요소를 검토하는 방식이 현실적이다. 특히 팀 템플릿, 디자인 시스템, 사용자 정의 폰트, 업무별 스킬을 함께 제공할수록 자동화 결과의 품질과 브랜드 일관성이 높아진다.

원문 읽기(새 탭에서 열림)
toss4분 읽기큐레이션 요약

디자이너가 시안 대신 앱을 만든 이유

AI를 활용하면 디자이너가 정적인 시안을 넘어 실제로 동작하는 프로토타입을 직접 만들 수 있고, 디자인과 개발 사이의 번역 과정도 줄어든다. 토스의 underlay 프로젝트는 화면 위에 겹치는 대신 화면 아래에 있던 정보가 드러나는 방식을 통해, 사용자의 흐름을 방해하지 않고 다음 경험으로 연결하려 했다. 이 과정에서 동작하는 코드 자체가 디자인 명세이자 개발 가능한 구조가 될 수 있음을 보여준다. ## 데드엔드를 다음 경험의 시작으로 바꾸기 - 송금 완료나 결제 완료처럼 사용자의 할 일이 끝나는 화면을 ‘데드엔드’로 정의했다. - 목표는 특정 화면을 개선하는 것이 아니라, 앱 어디서든 현재 경험을 자연스럽게 다음 경험으로 연결하는 공통 장치를 만드는 것이었다. - 이를 위해 여러 화면에서 재사용할 수 있는 컴포넌트 개발부터 시작했다. ## 기존 알림 UI의 한계와 underlay의 발상 - 바텀시트, 토스트, 푸시 등 기존 UI는 화면 위에 나타나 사용자의 시선을 끌지만, 보고 있던 화면이나 진행 중인 행동을 방해할 수 있다. - 전화처럼 등장하거나 화면 한쪽·채팅창처럼 나타나는 방식도 같은 문제를 가졌다. - 택배 송장을 떼자 아래에 있던 책의 문구가 드러난 경험에서 아이디어를 얻었다. - 새로운 정보를 화면 위에 올리는 대신, 화면 아래에 존재하던 정보가 드러나게 하는 컴포넌트를 **underlay**라고 정의했다. ## AI와 코드로 인터랙션을 디자인하기 - underlay는 외형보다 움직임과 반응 방식이 중요한 컴포넌트였다. 인터랙션 자체가 디자인의 핵심이었다. - 프로토파이나 프레이머 대신 SwiftUI와 Xcode로 iOS 앱 형태의 프로토타입을 직접 만들었다. - SwiftUI를 처음 사용했지만 AI에게 구현을 요청하며 디자인을 구체화했다. - 디자이너의 역할은 다음 세 가지로 정리됐다. - 만들고 싶은 경험을 설명하기 - AI가 제안한 여러 방향 중 적절한 것을 선택하기 - 실제 기기에서 결과를 보고 판단하기 - AI와의 디자인 과정은 설계, 선택, 검증을 반복하는 과정이었다. ## 실제 기기에서 반복하며 완성도 높이기 - 먼저 자유롭게 실험하고 지울 수 있는 플레이그라운드 환경을 만들고, 피그마 시안을 AI에게 참고 자료로 제공했다. - 버튼, 텍스트, 레이아웃을 정지 화면이 아니라 실제 기기에서 움직여 보며 수정했다. - 상상한 움직임과 실제 구현된 움직임의 차이가 컸기 때문에 수백 번 반복해서 조정했다. - 화면의 맥락을 읽고 적절한 정보를 찾는 느낌을 표현하기 위해 빛이 화면을 훑는 스캔 인터랙션을 도입했다. - 빛의 번짐, 틴트, 폭, 속도, 배경 어두워짐 등은 Metal 셰이더로 구현했다. - AI가 작성한 셰이더 코드를 출발점으로 삼되, 최종 질감은 직접 수치를 조정하며 완성했다. - 등장하거나 스캔이 지나갈 때의 미세한 출렁임 같은 디테일도 코드로 다듬었다. ## 디자인 가이드 대신 동작하는 레포 전달하기 - 기존 방식이라면 등장 타이밍, 이징 커브, 딜레이 등을 문서로 정리했을 것이다. - 이번에는 간단한 플로우만 설명하고, 직접 만든 코드 레포를 개발자에게 전달했다. - 동작하는 레퍼런스가 있었기 때문에 개발자는 시안의 구조와 인터랙션을 빠르게 이해할 수 있었다. - 개발 과정의 파인튜닝에서도 opacity나 모션 값을 말로 주고받기보다, 디자이너가 직접 실행 결과를 보며 수정했다. - AI에게 원하는 모션을 자연어로 설명하고 결과를 확인하는 과정을 개발자의 환경에서도 반복하면서 인터랙션 완성도를 높였다. - “느낌이 이상하다”는 추상적 표현 대신 실제 코드와 동작을 기준으로 소통할 수 있었다. ## 시각적 결과뿐 아니라 코드 구조까지 디자인하기 - 프로토타입 레포의 구조가 실제 iOS 개발 코드와 거의 동일하게 활용됐다. - 처음부터 개발을 위한 구조를 의도한 것은 아니었지만, UT와 빠른 버전 변경을 위해 만든 구조가 자연스럽게 개발 가능한 형태가 됐다. - 잘 만든 시안은 보기 좋은 화면에 그치지 않고, 재사용·수정·확장이 가능한 방식으로 만들어져야 한다. - 일회용 코드라면 개발자가 다시 구현해야 하지만, 개발 가능한 구조의 시안은 그대로 구현 명세가 될 수 있다. - AI가 “어떻게 만들지”를 지원하는 시대에는 디자이너가 “무엇을 만들지” 상상하고 결정하는 역량이 더 중요해진다. ## 적용 방법 - 도구의 제약에 맞춰 디자인하기보다, 가장 좋은 사용자 경험을 먼저 상상한다. - 정적인 그림으로 끝내지 말고 AI와 코드를 활용해 실제 기기에서 작동하는 프로토타입을 만든다. - 인터랙션을 문서로만 설명하기보다, 직접 만든 동작하는 레포를 개발자에게 전달한다. - 최종 결과뿐 아니라 코드 구조와 수정 가능성까지 디자인의 일부로 고려한다. 실용적으로는 작은 인터랙션부터 SwiftUI나 웹 기술로 직접 구현해 보고, 실제 기기에서 반복 검증하는 방식이 효과적이다. 완성된 코드는 단순한 시안이 아니라 개발자와 AI 모두가 이해할 수 있는 실행 가능한 디자인 스펙이 될 수 있다.

원문 읽기(새 탭에서 열림)
google4분 읽기큐레이션 요약

픽셀에서 계획으로: 자연 복원을 위한 지구 AI

고해상도 딥러닝과 위성·LiDAR 데이터를 활용하면 기존 산림 조사에서 놓치던 생울타리, 방풍림, 작은 숲과 같은 미세한 생태 요소를 정밀하게 지도화할 수 있다. Google Research는 영국 전역의 픽셀 기반 지도인 *Farmscapes 2020*을 생태적 의미를 가진 벡터 데이터로 변환해, 탄소 저장량과 생물다양성 관리에 직접 활용할 수 있는 인벤토리를 공개했다. 이는 농경지를 크게 전환하지 않고도 기후변화와 생태계 훼손에 대응하는 방법을 제시한다. ## 농업과 자연 복원의 충돌 - 인구 증가로 식량 생산을 위한 농경지가 필요하지만, 대규모 산림 조성은 농업용지와 경쟁할 수 있다. - 한 지역의 보전 활동이 다른 지역의 개발이나 훼손을 유발하는 ‘누출(leakage)’ 문제도 발생할 수 있다. - 생울타리, 방풍림, 작은 숲과 같은 세밀한 목본 구조물은 농작물 생산을 크게 방해하지 않으면서 다음과 같은 기능을 제공한다. - 탄소 저장 - 수질 정화 - 야생동물 서식지와 이동 통로 제공 - 농경지 생태계의 연결성 강화 - 그러나 이러한 요소는 규모가 작아 기존 국가 단위 산림 조사나 일반 위성 분석에서 산림으로 인식되지 않는 경우가 많다. ## 픽셀 지도에서 활용 가능한 벡터 데이터로 - 기존 *Farmscapes 2020*은 영국 전역의 미세한 목본 지형을 식별한 고해상도 래스터, 즉 픽셀 기반 지도였다. - 래스터 데이터는 탐지에는 유용하지만, 실제 복원 사업이나 탄소 회계에 활용하려면 개별 객체의 경계와 유형을 가진 벡터 데이터가 필요하다. - 새 벡터 데이터셋은 다음 요소를 개별 도형으로 표현한다. - 생울타리 - 돌담 - 작은 숲과 나무 군락 - 선형 목본 통로 - 이를 통해 토지 소유자와 보전 기관은 특정 생태 요소의 위치와 규모를 파악하고, 보호·확장 계획을 세울 수 있다. ## 복잡한 농촌 지형을 표현하는 기술적 과제 - 농촌의 지형 요소는 서로 독립적이지 않다. - 생울타리가 밭 경계를 따라 형성될 수 있다. - 돌담이 생울타리 아래에 겹쳐 있을 수 있다. - 단일 레이어 모델은 지표면의 경계와 그 위에 존재하는 나무·벽을 동시에 표현하기 어렵다. - 대규모 지도를 S2 셀 단위로 나누어 처리하면, 셀 경계에서 하나의 생울타리나 숲이 인위적으로 잘리는 문제가 생긴다. - 영국 전역 13만㎢ 이상에서 수백만 개의 목본 요소를 처리해야 하므로, 일반적인 래스터-벡터 변환 방식은 계산량과 저장 공간 측면에서 비효율적이다. ## 사전 학습된 AI로 적은 학습 데이터 보완 - 영국 농촌의 생울타리처럼 구체적인 지형 유형을 학습시키려면 전문적으로 주석 처리된 데이터가 필요하지만, 확보된 데이터는 약 247㎢에 불과했다. - 연구진은 3억 장 이상의 전 세계 위성 이미지를 학습한 Remote Sensing Foundations의 Vision Transformer(ViT) 백본을 활용했다. - 전 세계 지형의 질감과 공간 패턴을 미리 학습한 모델을 영국의 특정 경관에 맞게 미세 조정해, 적은 주석 데이터로도 높은 정밀도를 확보했다. - 이 방식은 특정 지역의 데이터가 부족한 경우에도 대규모 지리 공간 모델을 적용할 수 있게 한다. ## 이중 레이어와 셀 경계 병합 - 지표면과 지상 구조물을 분리해 표현하기 위해 두 종류의 데이터를 함께 사용했다. - 서브미터급 영상: 밭, 물, 토지 경계 등 지표면 정보 - 1미터 LiDAR: 나무와 돌담처럼 지표면 위에 있는 구조물 정보 - 이중 레이어 라벨링을 통해 같은 위치에서 지면의 용도와 그 위의 목본·인공 구조물을 동시에 파악했다. - S2 셀별로 나뉜 도형은 별도의 확장 가능한 병합 알고리즘으로 연결했다. - 그 결과 셀 경계에서 잘린 객체도 하나의 완전한 지형 요소로 복원할 수 있었다. ## 기하학으로 생태적 기능 분류 - AI가 식생을 탐지하는 것만으로는 작은 숲과 긴 생울타리를 구분하기 어렵다. - 연구진은 도형의 형태를 수치화하는 Polsby–Popper 조밀도(compactness) 점수를 사용했다. - 형태별 분류 기준은 다음과 같다. - **산림:** 지름 30m 이상의 크고 연속적인 수관 - **목본 패치:** 작은 숲, 나무 군락, 개별 나무 - **선형 목본 요소:** 길고 좁은 형태를 가지며 조밀도 점수가 0.5 미만인 생울타리·생태 통로 - 이 방법으로 단순한 ‘녹색 영역’이 아니라 야생동물 이동에 중요한 선형 통로를 별도로 추출할 수 있었다. ## Google Earth Engine을 통한 전국 규모 처리 - 수백만 개의 지형 객체를 한꺼번에 처리하기 위해 Google Earth Engine을 사용했다. - 수천 개의 S2 셀을 병렬 처리해 기존 시스템의 계산 한계를 우회했다. - 이를 통해 영국 전역의 개별 목본 요소를 벡터 도형으로 변환하고, 대규모 자연 복원에 사용할 수 있는 데이터셋을 구축했다. ## 향후 활용 가능성 - 고정밀 탐지 기술은 실바목축(silvopasture), 혼농임업(agrisilviculture) 같은 자연 기반 해법에서 세밀한 목본 요소의 탄소·생태 가치를 산정하는 데 활용될 수 있다. - 보전 사업 주변에서 발생하는 누출, 즉 사업 지역 밖에서 탄소 저장이나 생물다양성 손실이 발생하는 현상도 감시할 수 있다. - 공개 데이터는 농민, 과학자, 정책 입안자가 기존 농경지를 크게 훼손하지 않고 생울타리와 작은 숲을 보호·확장하는 데 도움을 줄 수 있다. 이 사례는 자연 복원이 반드시 대규모 산림 조성만을 의미하지 않으며, 농경지 곳곳의 작은 생태 요소를 정확히 측정하고 관리하는 것에서도 시작될 수 있음을 보여준다. 이를 실제 사업에 적용할 때는 벡터 데이터와 현장 조사, 탄소·생물다양성 지표를 함께 검증하는 것이 바람직하다.

원문 읽기(새 탭에서 열림)
toss4분 읽기큐레이션 요약

2,800만 MAU를 이해하는 유저 Segmentation, TUES

토스의 TUES(Toss User Engagement Segment)는 유저의 서비스 이용 패턴을 기반으로 전체 MAU를 서로 겹치지 않게 분류하는 플랫폼 관점의 세그먼트다. V1은 앱 오픈 시 서비스 이용 확률과 K-Means를 활용했지만, 이용 깊이와 복합적인 서비스 사용 패턴을 충분히 반영하지 못했다. V2는 이용 횟수, Soft Clustering, 서비스별 관여도를 도입해 유저의 현재 상태와 다음 성장 액션을 더 정교하게 파악할 수 있도록 개선됐다. ### 플랫폼 관점의 유저 세그먼테이션이 필요한 이유 - 서비스별로 “A 서비스를 이용한 유저”, “B 서비스를 이용한 유저”를 따로 분류하면 한 유저가 여러 그룹에 중복 포함된다. - 플랫폼 전체 유저를 분석하려면 서로 겹치지 않으면서 전체를 포괄하는 MECE한 분류 체계가 필요하다. - TUES는 유저가 어떤 서비스를 주로 이용하고, 토스 앱을 어떤 목적과 패턴으로 사용하는지 파악하기 위한 도구다. ### TUES V1: 서비스 이용률 기반 분류 - 유저가 앱을 열 때마다 각 서비스를 이용할 확률을 계산했다. - 예: 한 달간 앱을 60회 열고 토스페이를 20회 이용하면 이용률은 33%다. - 서비스별 이용률 분포가 비슷한 유저를 K-Means Clustering으로 묶었다. - 머신러닝 결과를 그대로 사용하지 않고, 주요 서비스와 특징을 분석해 비즈니스와 제품 관점에서 이해하기 쉬운 세그먼트로 재구성했다. - 주요 세그먼트는 다음과 같다. - **고관여**: 여러 서비스를 높은 수준으로 이용하는 유저 - **서비스 지향군**: 토스뱅크, 토스증권, 조회, 혜택, 송금 등 특정 서비스를 주로 이용하는 유저 - **단순 방문**: 앱은 방문하지만 서비스를 거의 이용하지 않는 유저 ### TUES의 주요 활용 - **세그먼트 전환 전략 수립** - 세그먼트별 Retention 차이를 바탕으로 이탈을 줄이고 다음 단계로 이동시키는 전략을 세운다. - 단순 방문 유저를 서비스 지향 유저로, 서비스 지향 유저를 고관여 유저로 전환하는 흐름을 분석한다. - **제품 Growth 전략** - 각 제품의 주요 사용자가 어떤 TUES 세그먼트에 속하는지 파악해 성장 전략을 설계한다. - **유저 행동 분석** - 세그먼트가 언제, 어떤 계기로 바뀌는지 분석할 수 있다. - 이탈 유저, 부활 유저, 서비스 간 이동 패턴도 플랫폼 관점에서 확인할 수 있다. - **탑라인 지표 분석** - 전사 MAU가 변했을 때 어떤 세그먼트가 증감했는지 확인해 변화의 원인이 된 서비스를 추적한다. - 유저 단위로 MAU 증감 원인을 MECE하게 분석할 수 있다. - **타겟 마케팅** - 서비스별 상황에 적합한 세그먼트를 선정해 푸시 등 마케팅에 활용한다. - 토스의 마케팅 도구 TUBA에도 기본 세그먼트로 제공돼 마케터가 쉽게 사용할 수 있다. ### TUES V1의 한계 - **이용 깊이를 반영하지 못함** - 앱 오픈당 서비스를 한 번 이용한 유저와 여러 번 이용한 유저가 동일하게 취급됐다. - **다른 서비스의 관여도를 파악하기 어려움** - 같은 조회서비스 지향 유저라도 혜택서비스를 함께 이용하는 정도가 다르지만 이를 표현하지 못했다. - **한 유저를 하나의 세그먼트로만 분류** - Hard Clustering 방식이라 여러 서비스를 동시에 사용하는 유저의 복합성을 담기 어려웠다. - **신규 핵심 서비스 반영 부족** - 토스쇼핑, 앱인토스, 토스페이 등 새 서비스가 기존 분류에서 ETC로 처리됐다. ### TUES V2의 개선 방식 - **이용률에서 이용 횟수 기반으로 변경** - 서비스별 이용 횟수를 앱 오픈 횟수당 Feature로 사용해 서비스 이용의 깊이를 반영했다. - **Soft Clustering 도입** - 유저를 하나의 세그먼트에 고정하지 않고 여러 세그먼트에 대한 소속 정도를 계산한다. - 여러 서비스를 함께 사용하는 유저의 복합적인 이용 패턴을 표현할 수 있다. - **세 단계 세그먼트 구조 적용** - 서비스별 관여도 - 전체 앱 관여도 - 주 이용 서비스 - 이 구조를 통해 유저가 특정 세그먼트에 속한 이유를 더 상세히 설명하고, 다음 행동(Next Action)을 구체적으로 설계할 수 있게 됐다. ### V2로 가능해진 분석 - 예를 들어 “준고관여·혜택서비스 지향 유저가 고관여로 이동하려면 어떤 서비스 관여도를 먼저 높여야 하는가?”를 분석할 수 있다. - 서비스별 관여도가 Cross Activation 전략의 출발점이 된다. - 각 서비스 조직(Silo)은 자신의 서비스 관여도를 높이는 활동이 전사 세그먼트와 성과에 미친 영향을 정량적으로 추적할 수 있다. - 서비스 이용자와 미이용자의 관여도 수준을 비교해 제품 Growth 전략의 우선순위를 정할 수 있다. ### 향후 발전 방향 - 서비스 유사도 등을 활용해 세그먼트 전환 전략을 빠르게 도출하는 분석 프레임워크 구축 - 유저 프로파일과 서비스 이용 패턴을 결합한 전략적 유저 맵 개발 - MTVi 등 다른 분석 프레임워크와 결합해 세그먼트별 서비스 가치를 정량화 TUES의 핵심은 단순한 유저 분류가 아니라, “현재 어떤 유저인지”와 “어떤 액션을 통해 다음 단계로 이동시킬지”를 연결하는 데 있다. 플랫폼 서비스에서는 서비스별 지표만 따로 보기보다, 전체 관여도와 서비스 간 이용 패턴을 함께 분석하는 세그먼트 체계를 구축하는 것이 효과적이다.

원문 읽기(새 탭에서 열림)
aws4분 읽기큐레이션 요약

AWS WAF, 콘텐츠 소유자가 AI 봇의 콘텐츠 액세스에 요금을 부과할 수 있도록 AI 트래픽 수익화 기능 추가 | Amazon Web Services

AWS WAF의 AI 트래픽 수익화 기능은 콘텐츠 소유자가 AI 봇과 에이전트의 요청에 대해 네트워크 엣지에서 직접 과금할 수 있도록 지원한다. 콘텐츠 경로, 봇 유형, 검증 수준별로 가격과 접근 정책을 설정할 수 있으며, 애플리케이션 코드나 원본 인프라를 변경할 필요가 없다. 결제는 x402 프로토콜과 스테이블코인을 기반으로 처리되며, 이를 통해 AI 봇 트래픽으로 발생하는 비용을 콘텐츠 수익으로 전환할 수 있다. ## AI 봇 트래픽 수익화가 필요한 배경 - AI 크롤러 트래픽은 일부 콘텐츠 제공업체에서 전체 웹 트래픽의 50% 이상을 차지한다. - AI 전용 크롤러는 전년 대비 300% 이상 증가하고 있다. - 검색엔진 크롤러와 달리 AI 봇은 콘텐츠를 요약·응답 생성에 사용하지만, 원본 사이트로 유입되는 페이지뷰나 광고 노출은 거의 발생시키지 않는다. - 콘텐츠 제공자는 대역폭과 서버 비용을 부담하면서도 구독 전환이나 광고 수익을 얻지 못할 수 있다. - 기존 AWS WAF Bot Control은 봇 탐지, 차단, 속도 제한을 제공했지만 AI 에이전트에 가격을 설정하고 결제받는 기능은 제공하지 않았다. ## AWS WAF AI 트래픽 수익화 기능 - 콘텐츠 소유자는 다음 기준으로 세분화된 정책을 설정할 수 있다. - 콘텐츠 경로 - AI 봇 또는 에이전트 유형 - 에이전트 검증 수준 - 애플리케이션 코드를 수정하거나 별도의 결제 인프라를 구축하지 않아도 된다. - 콘텐츠별로 무료 제공, 차단, 과금, 검증 등의 동작을 선택할 수 있다. - 결제 정산과 검증은 Coinbase의 x402 Facilitator를 통해 제공된다. - Stripe 직접 계정 결제와 Machine Payments Protocol(MPP) 지원은 추후 제공될 예정이다. ## 시작 전 필요한 구성 - CloudFront 배포에 연결된 웹 ACL에서 AWS WAF Bot Control을 Common 또는 Targeted 수준으로 활성화해야 한다. - Bot Control은 수익화 정책에 필요한 AI 에이전트 분류 정보를 제공한다. - AWS Management Console의 **WAF & Shield → Protection packs (web ACLs)**에서 설정을 시작한다. ## Protection Pack 설정 Protection Pack은 AI 트래픽 수익화의 핵심 구성 단위다. - 수익화할 콘텐츠 경로를 지정한다. - 에이전트 검증 수준별 가격을 설정한다. - 허용할 결제 수단과 라이선스 조건을 정의한다. - 보호할 CloudFront 등 리소스를 연결한다. - 애플리케이션 카테고리와 목적을 선택하면 AWS WAF가 적절한 보안 보호 설정을 추천한다. - 필요하면 AWS 관리형 규칙 패키지 또는 개별 규칙을 함께 선택할 수 있다. - 하나의 배포 환경에서도 여러 Protection Pack을 만들어 콘텐츠 영역별로 다른 가격을 적용할 수 있다. ## AI 트래픽 분석 대시보드 가격을 정하기 전에 AI 봇 트래픽의 규모와 비용 영향을 확인할 수 있다. - 트래픽을 다음 네 가지로 구분한다. - 전체 봇 요청 - AI 봇 요청 - 검증된 AI 봇 트래픽 - 검증되지 않은 AI 봇 트래픽 - 다음 지표를 제공한다. - 사용한 대역폭 - 예상 월간 비용 - 최대 요청률 - 시간대별 콘텐츠 경로별 AI 봇 활동 - 경로별 히트맵을 활용하면 어떤 콘텐츠가 AI 봇에 가장 많이 소비되는지 파악할 수 있다. ## AI 에이전트 검증 등급 AWS WAF Bot Control은 650개 이상의 AI 봇과 에이전트 유형을 분류한다. 예시로 GPTBot, Claude-Web, Perplexity-Bot 등이 있다. - **Verified** - Web Bot Auth(WBA)의 Ed25519 암호 서명으로 에이전트 신원이 확인된 경우 - 알려진 IP 범위, 사용자 에이전트, 도메인 정보로 신원이 확인된 경우 - **Unverified** - 사용자 에이전트, 행동 지문, IP 평판 등을 통해 에이전트로 식별되지만 암호학적으로 신원이 확인되지 않은 경우 ## 에이전트별 접근 정책 각 검증 등급에 대해 다음 여섯 가지 동작을 지정할 수 있다. - **Monetize**: 가격 정보와 함께 HTTP 402 응답을 반환하고 결제를 요구 - **Allow**: 무료로 콘텐츠 접근 허용 - **Block**: 요청을 완전히 거부 - **Count**: 요청만 기록하고 과금하지 않음 - **CAPTCHA**: 사람이 보낸 요청인지 퍼즐로 검증 - **Challenge**: 브라우저인지 봇인지 무음 검사를 수행 ## x402 기반 결제 흐름 - Monetize 규칙이 요청과 일치하면 AWS WAF가 `HTTP 402 Payment Required`를 반환한다. - 응답 본문에는 x402 오픈 프로토콜 기반의 JSON 가격 매니페스트가 포함된다. - 매니페스트에는 다음 정보가 들어간다. - USDC 콘텐츠 가격 - 허용 블록체인 네트워크 - 수취 지갑 주소 - 최대 결제 대기 시간 - 결제 방식 - x402를 지원하는 에이전트 런타임은 결제 과정을 자동으로 수행할 수 있다. 1. 에이전트가 결제 네트워크를 선택한다. 2. 서명된 결제 승인을 제출한다. 3. AWS WAF가 결제를 검증한다. 4. 제3자 Facilitator가 온체인 결제를 정산한다. 5. 결제가 확인되면 콘텐츠를 제공한다. ## 결제 및 운영 조건 - 결제는 지원되는 블록체인 네트워크의 USDC 스테이블코인으로 처리한다. - 자체 관리 지갑이나 Coinbase 같은 지갑 제공업체의 지갑을 사용할 수 있다. - 네트워크별 지갑 주소와 페이지당 기본 USDC 가격을 설정할 수 있다. - AWS는 결제를 직접 처리하거나 콘텐츠 수익에 수수료를 부과하지 않는다. - Monetize 동작은 **Amazon CloudFront에 연결된 웹 ACL에서만 지원**되며, 리전 웹 ACL에서는 사용할 수 없다. - 실제 운영 전에는 테스트 모드에서 가격, 지갑 설정, x402 결제 흐름을 검증하는 것이 권장된다. 콘텐츠 제공자는 먼저 Bot Control과 AI 트래픽 분석을 활성화해 실제 비용과 봇 유형을 파악한 뒤, 검증된 에이전트에는 차등 가격을 적용하고 검증되지 않은 봇에는 차단·CAPTCHA·무료 허용 등의 정책을 조합하는 것이 좋다. 특히 CloudFront 기반 서비스라면 테스트 모드에서 결제 흐름을 충분히 확인한 후 경로별 과금 정책을 단계적으로 적용하는 것이 안전하다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

초보자를 위한 GitHub Copilot CLI: 자주 사용하는 슬래시 명령어 개요

GitHub Copilot CLI의 슬래시 명령은 모델 선택, 컨텍스트 관리, 세션 재개, 변경 사항 확인 등을 터미널에서 직접 수행하게 해주는 핵심 제어 기능이다. `/`를 입력하면 사용 가능한 명령 목록을 확인할 수 있으며, 각 명령을 익히면 작업 흐름과 권한을 더 효율적으로 관리할 수 있다. 특히 모델과 토큰 사용량을 상황에 맞게 조절하면 속도와 결과 품질을 균형 있게 유지할 수 있다. ## 슬래시 명령의 역할 - 슬래시 명령은 Copilot CLI에 내장된 제어 기능이다. - Copilot의 동작을 지시하고, 변경 사항과 컨텍스트를 확인하며, 세션과 프로젝트를 관리한다. - 터미널에서 `/`를 입력하면 현재 지원되는 명령을 스크롤 목록으로 확인할 수 있다. ## 작업에 맞는 모델 선택: `/model` - `/model`을 입력하면 사용 가능한 모델 목록이 표시된다. - 모델마다 적합한 작업이 다르다. - 간단한 리팩터링이나 빠른 작업에는 가벼운 모델이 적합하다. - 기능 설계나 복잡한 추론에는 더 강력한 모델이 유리하다. - 모델 목록은 사용 중인 요금제나 조직 설정에 따라 달라질 수 있다. - 각 모델 옆의 비용 배수는 사용량과 비용 수준을 비교하는 기준이 된다. - 작업의 복잡도와 속도, 비용을 고려해 모델을 선택해야 한다. ## 컨텍스트와 토큰 관리 ### 현재 사용량 확인: `/context` - `/context`는 현재 세션의 컨텍스트 사용량을 보여준다. - 남은 토큰 수, 시스템이 사용하는 공간, 추가로 활용 가능한 버퍼를 확인할 수 있다. - 컨텍스트 창이 가득 차면 Copilot이 이전 대화와 정보를 충분히 참고하기 어려워진다. ### 대화 압축: `/compact` - `/compact`는 현재 대화를 요약해 컨텍스트 공간을 확보한다. - 기존 세션을 유지하면서 새로운 작업으로 넘어갈 때 유용하다. - 컨텍스트 한도에 가까워지면 Copilot CLI가 자동으로 압축할 수 있지만, 사용자가 직접 실행할 수도 있다. ### 세션 초기화: `/clear` - `/clear`는 현재 세션을 완전히 지운다. - 이전 대화의 영향을 받지 않고 새로운 작업을 시작할 때 사용한다. ## 이전 세션 재개: `/resume` - `/resume`은 과거에 진행한 세션 목록을 표시한다. - 로컬 세션과 원격 세션을 모두 확인할 수 있다. - 세션을 선택하면 이전 작업 기록을 검토한 뒤 중단한 지점부터 작업을 이어갈 수 있다. ## 변경 사항 확인: `/diff` - `/diff`는 현재 세션에서 발생한 최근 변경 사항을 보여준다. - Copilot이 수정한 파일을 검토하고, 의도하지 않은 변경이 없는지 확인하는 데 사용한다. - 변경 내용을 검증한 뒤 커밋이나 다음 작업으로 넘어가는 것이 좋다. ## 작업 디렉터리 변경: `/cwd` - `/cwd`를 사용하면 Copilot을 종료하지 않고 다른 저장소나 디렉터리로 이동할 수 있다. - 여러 프로젝트를 오가며 작업할 때 편리하다. - Copilot의 작업 범위를 현재 선택한 프로젝트에 맞게 조정할 수 있다. ## 도구 권한 초기화: `/reset-allowed-tools` - `/reset-allowed-tools`는 이전에 허용한 파일 수정 등의 도구 권한을 초기화한다. - 신뢰 수준이 다른 저장소로 이동했을 때 기존 권한을 재설정하는 데 유용하다. - 민감한 프로젝트를 다룰 때 권한을 다시 확인하는 안전 장치로 활용할 수 있다. ## 실용적인 활용 방법 - 작업을 시작하기 전에 `/`를 입력해 사용 가능한 명령을 확인한다. - 복잡한 기능 설계에는 `/model`로 추론 능력이 높은 모델을 선택한다. - 컨텍스트가 부족해지면 `/context`로 상태를 확인하고 `/compact`를 실행한다. - Copilot이 코드를 수정한 뒤 `/diff`로 변경 내용을 검토한다. - 다른 프로젝트로 이동할 때는 `/cwd`, 권한을 정리해야 할 때는 `/reset-allowed-tools`를 사용한다. - 슬래시 명령을 익히면 Copilot CLI를 단순한 코드 생성 도구가 아니라 세션·컨텍스트·권한을 통제하는 작업 환경으로 활용할 수 있다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

새로운 오픈 데이터셋으로 다국어 AI를 구축하는 연구자와 개발자를 가속화하다

GitHub는 비영어권 개발자 협업을 연구하고 다국어 AI를 개발할 수 있도록 **GitHub Multilingual Repositories Dataset**을 공개했다. 이 데이터셋은 저장소의 README, 가장 많은 댓글이 달린 이슈와 풀 리퀘스트를 분석해 언어 분류와 신뢰도, 저장소 메타데이터를 제공한다. GitHub는 이를 통해 언어별 개발자 커뮤니티의 대표성을 측정하고, 다양한 언어를 지원하는 AI 코딩 도구와 평가 세트를 만들 수 있다고 설명한다. ## 개발자 협업에서 다국어 데이터가 중요한 이유 - 개발자는 README에서 프로젝트 사용법을 설명하고, 이슈에서 문제를 논의하며, 풀 리퀘스트에서 코드를 리뷰한다. - 이러한 협업은 영어 중심으로 이루어지는 경우가 많지만, 실제로는 다양한 언어가 사용된다. - AI 코딩 도구가 개발 과정에 더 깊이 관여할수록, 특정 언어권의 개발자 콘텐츠만 학습·평가하는 방식에는 한계가 있다. - 특히 유럽 언어를 비롯한 일부 언어는 AI 학습 및 평가용 온라인 텍스트에서 상대적으로 부족하다. ## GitHub Multilingual Repositories Dataset의 구성 - 4,000만 개가 넘는 저장소를 대상으로 8,000만 개 이상의 분류 행을 제공한다. - 각 공개 저장소에 대해 다음 텍스트의 언어를 분류한다. - README - 댓글 수가 가장 많은 이슈 - 댓글 수가 가장 많은 풀 리퀘스트 - 각 텍스트에서 처음 150자만 분석하며, 20자 미만인 텍스트는 제외한다. - 다음 세 가지 언어 식별기의 결과를 모두 별도로 제공한다. - fastText - Google CLD3 - lingua-py - 각 분류 결과에는 신뢰도 점수가 포함되며, 신뢰도 0.5 초과인 결과만 수록된다. - 저장소 생성 시각, 디스크 사용량, 별 수, 포크 수, 주요 프로그래밍 언어, SPDX 라이선스, 이슈·풀 리퀘스트 수, 데이터 스냅샷 날짜도 제공한다. - 저장소 본문을 통째로 공개하는 데이터 덤프가 아니라, 다국어 콘텐츠가 있을 가능성이 높은 저장소를 찾기 위한 메타데이터 데이터셋이다. ## 여러 언어 분류기를 함께 제공하는 이유 - 언어 분류기마다 지원 언어, 적용 범위, 신뢰도 보정 방식이 다르다. - 특히 사용자가 적은 언어에서는 분류기별 결과 차이가 커질 수 있다. - GitHub는 세 분류기의 결과를 하나의 최종 언어 라벨로 합치지 않았다. - 사용자는 목적에 따라 정밀도와 재현율을 조절할 수 있다. - 높은 정밀도가 필요하면 세 분류기가 모두 같은 언어를 높은 신뢰도로 판정한 결과만 사용 - 폭넓은 탐색이 필요하면 하나의 분류기 결과만 사용 - 예를 들어 특정 언어의 신뢰도 높은 저장소 집합을 만들거나, 로망스어 계열 저장소를 넓게 탐색할 수 있다. ## 데이터셋으로 할 수 있는 일 - 특정 언어로 작성된 개발 문서나 협업 콘텐츠가 있는 저장소를 검색한다. - 언어별로 이슈, 풀 리퀘스트, README가 어떻게 사용되는지 연구한다. - 다국어 AI 코딩 도구, 문서 생성기, 코드 리뷰 보조 도구의 평가 세트를 만든다. - 언어별 개발자 지원이 부족한 영역을 데이터로 확인하고, 새로운 AI 기능의 언어 지원 확대를 제안한다. - 오픈 소스에서 유럽 언어 및 기타 저자원 언어가 얼마나 대표되는지 측정한다. ## 언어 식별의 한계와 사용상 주의점 - 소프트웨어 저장소의 텍스트는 짧고, 배지·템플릿·설치 명령·코드·사용자 이름이 섞여 있을 수 있다. - 150자의 샘플만으로 저장소 전체의 언어를 정확히 대표하기 어렵다. - 하나의 저장소 안에 여러 언어가 혼용될 수도 있다. - 분류기별 지원 범위와 신뢰도 보정이 다르므로 결과를 언어 식별의 정답 데이터로 간주해서는 안 된다. - 대신 사용자가 분류기별 결과와 신뢰도를 직접 확인하고 연구 목적에 맞는 기준을 설정하도록 설계됐다. - 저장소 수준의 메타데이터이므로 저장소 소유자나 기여자의 민감한 개인 특성을 추론하는 데 사용해서는 안 된다. ## CC0 공개와 향후 방향 - 데이터셋은 GitHub에서 **CC0-1.0** 라이선스로 공개되어 자유롭게 활용할 수 있다. - 연구자, 오픈 소스 유지 관리자, 모델 개발자가 이를 비판·확장하고 평가 세트와 도구를 구축하도록 장려한다. - GitHub는 다국어 개발자 커뮤니티를 더 잘 연구하고 지원하는 기반으로 이 데이터셋을 활용하기를 기대한다. - 궁극적으로 개발자가 실제로 사용하는 언어와 협업 방식을 반영하는 AI 도구를 만드는 것이 목표다. 실제로 활용할 때는 단일 분류 결과를 그대로 믿기보다 여러 분류기의 일치 여부와 신뢰도 기준을 함께 확인하는 것이 좋다. 특히 AI 평가 세트를 만들 때는 샘플을 직접 검수해 언어 혼용, 짧은 텍스트, 코드 포함으로 인한 오분류를 보완해야 한다.

원문 읽기(새 탭에서 열림)
kakao4분 읽기큐레이션 요약

AI 에이전트로 카카오톡 추천 지표 분석 자동화하기

카카오는 기존 Hadoop 환경에 AI 에이전트를 연결해 추천 지표 분석 절차를 자동화했다. 핵심은 새로운 플랫폼이나 권한을 추가하는 것이 아니라, 사람이 알고 있던 데이터 접근 절차·지표 정의·판단 기준을 Markdown 기반 스킬과 컨텍스트 문서로 정리하는 데 있었다. AI는 분석 초안을 빠르게 만들고 다음 질문을 제안하지만, 결과의 정확성과 최종 판단은 사람이 검증해야 한다. ## 반복적인 추천 지표 분석의 비효율 - CTR 하락, 실험군 반응, 배포 후 사용자군 변화 등을 확인하려면 다음 과정을 반복해야 한다. - 분석 환경 접속 - 적절한 테이블 탐색 - SQL 작성 및 실행 - 결과 해석 - 연령대·카테고리·시간대 등 관점별 추가 분석 - 질문은 간단해도 데이터 준비와 추출에 많은 시간이 걸린다. - 반복적이고 절차가 정형화된 업무이므로 AI 자동화에 적합하다. ## Hadoop 접속 절차를 Agent Skill로 정리 - 기존 Hadoop 접속 스크립트와 실행 환경은 그대로 활용했다. - AI가 Hadoop을 사용할 수 있도록 접속·쿼리 실행 방법을 `SKILL.md` Markdown 문서로 작성했다. - 여러 스킬을 묶은 사내 플러그인 `hadoop-butler`를 통해 AI가 다음 작업을 수행하도록 했다. - Hadoop 클러스터 접속 - 분석 목적에 맞는 SQL 작성 - 쿼리 제출 및 결과 수집 - 결과 정리와 인사이트 도출 - 새로운 분석 플랫폼이나 MCP 서버를 구축하기보다, 기존 인프라에 업무 지식을 “접착제”처럼 추가한 접근이다. ## 컨텍스트 문서로 분석 기준 명시 - 분석 디렉터리에 `CLAUDE.md`, `AGENTS.md`와 같은 컨텍스트 문서를 배치했다. - 문서에는 다음 정보를 담았다. - 분석 대상 테이블과 Hadoop 클러스터 - `watch_length`, `valid_view` 등 주요 컬럼의 의미 - 사용자·세션 집계 기준 - CTR 등 주요 지표의 정의 - 명확한 기준을 문서화하면 AI가 매번 테이블과 컬럼의 의미를 추측하지 않아도 된다. - 이는 AI의 분석 품질을 높이는 동시에 팀의 데이터 지식을 문서화하고 신규 구성원의 온보딩에도 도움을 준다. ## AI는 분석 초안을 만들고 사람은 질문을 확장 - 자연어로 분석 목적을 설명하면 AI가 첫 번째 리포트와 추가 분석 후보를 제시한다. - 이상치 확인, 실험 결과 비교, 주간 현황 점검처럼 반복 업무에 특히 효과적이다. - 대시보드가 수치를 빠르게 보여준다면, 자연어 분석은 “어디를 더 살펴볼지”를 제안한다. - 사용자는 초안 결과를 확인한 뒤 세부 사용자군이나 특정 기간 등으로 질문을 이어가며 분석을 구체화할 수 있다. - AI 결과는 최종 결론이 아니라 검토 대상이며, 쿼리 기준과 지표 정의를 사람이 확인해야 한다. ## AI가 그럴듯하게 만드는 의미·성능 오류 - **의미 오류** - 사용자 수 집계에 계정 단위 식별자인 `user_id` 대신 세션 성격의 `session_user_id`를 사용할 수 있다. - 쿼리는 정상 실행되지만 실제 사용자 수 의미와 다른 결과를 낼 수 있다. - **성능 오류** - 여러 컬럼에 대해 `COUNT(DISTINCT ...)`를 한 번에 실행하는 SQL을 생성할 수 있다. - Hive에서는 이 방식이 단일 리듀서로 처리되어 매우 느려질 수 있다. - 컬럼별 쿼리를 분리해 병렬 실행하는 방식이 더 적절하다. - 문법적으로 올바른 SQL과 업무적으로 올바른 분석은 다르므로, 도메인 지식과 실행 엔진 특성에 대한 검증이 필요하다. ## 문서화와 회귀 테스트로 품질 관리 - 자주 발생하는 오류를 지침에 명시적으로 추가했다. - 사용자 수 집계에는 반드시 `user_id` 사용 - 모든 컬럼명은 백틱으로 감싸 예약어 충돌 방지 - 다중 `COUNT(DISTINCT)`는 컬럼별로 분리해 병렬 실행 - 스킬과 프롬프트가 늘면서 한 지침 수정이 다른 기능을 깨뜨리는 회귀 문제가 발생했다. - 이를 해결하기 위해 MLflow 기반 E2E 평가 파이프라인을 구축했다. - 스킬별 기대 동작을 테스트 시나리오로 정의 - 에이전트를 헤드리스 모드로 실행 - LLM Judge가 결과를 평가 - 도구 호출 순서, 실행 트레이스, 최종 출력까지 다층 검증 - 배포 전 전체 시나리오를 자동 회귀 테스트 - 자연어 지침도 소프트웨어처럼 테스트와 배포 관리가 필요하다는 점을 강조한다. ## 실용적인 도입을 위한 네 가지 요소 - **모델**: 자연어 요청을 이해하고 분석 절차를 수행하는 에이전트 - **컨텍스트**: 테이블, 피처, 지표 정의와 업무 규칙 - **실행 환경**: 실제 데이터에 접근할 수 있는 기존 Hadoop 인프라 - **검증 루프**: 결과와 도구 실행 절차를 확인하는 자동 테스트 체계 반복 업무에 AI를 도입할 때는 새로운 시스템부터 만들기보다, 기존 절차와 도메인 지식을 문서화하고 실행 환경에 연결하는 것이 효과적이다. 다만 AI의 결과를 그대로 신뢰하지 말고, 명확한 분석 기준과 회귀 테스트를 함께 마련해야 실무에서 안전하게 활용할 수 있다.

원문 읽기(새 탭에서 열림)