prompt-engineering

19 개의 포스트

2조 토큰을 카테고리 분류에 쓰면서 알게된 것들 (새 탭에서 열림)

당근 Taxonomy 팀은 방대한 중고거래 게시글과 서비스 데이터를 효율적으로 분류하기 위해 LLM 기반의 자동화 파이프라인인 'Taxonomy Management System'을 구축했습니다. 이 시스템은 Dataflow를 통한 고병렬 추론과 LLM as a Judge 방식의 평가 체계를 결합하여, 사람이 직접 수행하던 카테고리 관리와 라벨링 비용을 획기적으로 줄이면서도 1만 개 이상의 정교한 카테고리 체계를 안정적으로 운영하고 있습니다. 2조 토큰에 달하는 대규모 데이터를 처리하며 얻은 노하우를 통해, 단순 분류를 넘어 서비스 전반의 공통 데이터 언어를 구축하는 성과를 거두었습니다. **택소노미의 중요성과 자동화의 필요성** * 택소노미는 검색, 추천, 광고 등 서비스 전반에서 데이터를 통일된 방식으로 다루기 위한 계층적 카테고리 체계이자 공통 언어입니다. * 기존의 수동 분류 방식은 도메인 전문가의 리소스가 과도하게 소요되고, 사용자가 입력한 데이터만으로는 정밀한 분류(3-depth 이상)가 어렵다는 한계가 있었습니다. * LLM을 활용해 사용자가 입력하지 않은 세부 카테고리와 속성(브랜드, 색상, 재질 등)을 자동으로 추출하여 데이터의 표현력을 높였습니다. **Dataflow와 BigQuery 중심의 파이프라인 설계** * 초 단위의 응답 시간이 걸리는 LLM 추론을 대규모 배치 및 스트림으로 처리하기 위해 Apache Beam 기반의 Google Cloud Dataflow를 채택하여 병렬 처리 성능을 확보했습니다. * 추론 결과의 원천 데이터(Source of Truth)를 BigQuery에 적재하여 분석과 학습에 즉시 활용하고, 실시간 서비스가 필요한 경우 Kafka를 통해 피처 플랫폼으로 전달합니다. * 택소노미 정의, 파이프라인 설정, 모델 옵션(Gemini, GPT, Claude 등)을 YAML 파일로 관리하여 코드 수정 없이 유연하게 시스템을 운영할 수 있도록 설계했습니다. **LLM을 이용한 택소노미 생성 및 확장 전략** * 기존 1,400개 수준의 카테고리를 LLM 기반의 리서치와 실데이터 분석을 통해 6-depth, 10,000개 이상의 정교한 체계로 확장했습니다. * 신규 카테고리 후보가 발생하면 기존 데이터 할당 테스트와 회귀 평가(Regression)를 거쳐 품질이 검증된 경우에만 정식 택소노미로 편입시킵니다. * 다국어 지원 시 일관성을 유지하기 위해 DFS(깊이 우선 탐색) 방식으로 상위 카테고리의 번역 문맥을 하위 단계 LLM에게 전달하는 방식을 사용했습니다. **추론 전략 최적화와 품질 관리(LLM as a Judge)** * 단일 단계(Single Shot), 계층적(Hierarchical), 토너먼트(Two-stage) 방식 등 택소노미 규모에 맞는 다양한 추론 전략을 모듈화하여 교체 가능하게 구현했습니다. * 분류 결과의 정확도를 측정하기 위해 여러 모델이 투표하여 정답(Ground Truth)을 정하는 'LLM as a Judge' 방식을 도입했습니다. * 카테고리 정확도(Accuracy)뿐만 아니라 다중 라벨인 속성 데이터에 대해서는 정밀도(Precision)와 재현율(Recall) 지표를 상시 모니터링하여 프롬프트와 모델 변경의 효과를 즉각 검증합니다. **실용적인 결론 및 추천** 대규모 서비스에서 카테고리 분류를 자동화하려는 팀은 처음부터 완벽한 모델을 찾기보다, **다양한 LLM 전략을 실험할 수 있는 모듈형 파이프라인**과 **자동화된 평가 체계(LLM as a Judge)**를 먼저 구축하는 것이 중요합니다. 특히 데이터 소스가 다양해질 것에 대비해 이벤트 스트림과 배치 처리를 동시에 지원하는 인프라를 선택하고, 분류 결과가 실제 서비스 피처로 흐를 수 있는 파이프라인 구조를 설계할 것을 권장합니다.

Inside the Archive: The Tech Behind Your 2025 Wrapped Highlights | Spotify Engineering (새 탭에서 열림)

스포티파이는 2025년 'Wrapped(연말 결산)'를 통해 사용자의 1년 감상 기록 중 가장 의미 있는 순간들을 발굴하고, 이를 LLM(대규모 언어 모델)을 활용해 개인화된 서사로 풀어내는 'Wrapped Archive' 기능을 선보였습니다. 이 시스템은 약 3억 5천만 명의 사용자에게 최대 5개씩, 총 14억 개의 리포트를 생성하기 위해 고도화된 데이터 추출 휴리스틱과 모델 증류(Distillation) 기술, 그리고 대규모 병렬 처리가 가능한 분산 아키텍처를 활용했습니다. 단순한 통계 나열을 넘어 데이터에 기반한 창의적인 스토리텔링을 대규모로 구현하면서도 비용 효율성과 시스템 안정성을 동시에 확보한 것이 핵심입니다. ### 데이터 기반의 '특별한 날' 선정 알고리즘 스포티파이는 수억 개의 감상 이벤트 중에서 사용자에게 가장 의미 있을 법한 날들을 선별하기 위해 우선순위가 지정된 휴리스틱 세트를 설계했습니다. * **다양한 지표 활용**: 단순히 청취 시간이 긴 날뿐만 아니라, 처음 듣는 아티스트가 가장 많았던 '발견의 날', 특정 장르가 지배적이었던 날, 평소 취향에서 크게 벗어난 '이색적인 날' 등을 정의했습니다. * **서사적 가치 부여**: 생일이나 새해 첫날 같은 맥락적 데이터와 결합하여 통계적 강점과 이야기로서의 잠재력이 높은 날을 최대 5개까지 압축했습니다. * **분산 데이터 파이프라인**: 대규모 데이터를 처리하기 위해 분산 파이프라인을 구축하여 사용자별 후보일을 계산하고, 이를 오브젝트 스토리지에 저장한 뒤 메시지 큐(PubSub)를 통해 비동기적으로 리포트 생성 단계에 전달했습니다. ### 14억 개 리포트 생성을 위한 LLM 최적화 모든 사용자에게 고품질의 리포트를 제공하기 위해서는 거대 모델의 성능과 소형 모델의 경제성 사이에서 균형을 잡아야 했습니다. * **정교한 프롬프트 엔지니어링**: 시스템 프롬프트를 통해 데이터 기반의 스토리텔링, 재치 있는 톤앤매너, 안전 가이드라인을 정의하고, 사용자 프롬프트에는 구체적인 청취 로그와 수학적 통계 블록을 포함해 할루시네이션(환각)을 방지했습니다. * **모델 증류 및 미세 조정(Fine-tuning)**: 비용 절감을 위해 고성능 프런티어 모델로 생성한 고품질 데이터를 학습 데이터(Gold Dataset)로 사용하여 더 작고 빠른 모델을 미세 조정했습니다. * **DPO(Direct Preference Optimization) 적용**: 인간의 피드백을 반영한 A/B 테스트 데이터를 바탕으로 DPO를 실시하여, 소형 모델임에도 불구하고 베이스라인 모델에 필적하는 성능을 확보했습니다. ### 대규모 병렬 처리와 데이터 정합성 유지 나흘 동안 멈춤 없이 14억 개의 리포트를 생성하고 저장하기 위해 높은 처리량과 안정성을 보장하는 인프라를 구축했습니다. * **배치 처리 엔진**: 초당 수천 건의 요청을 처리할 수 있도록 시스템을 설계했으며, 한 사용자의 리포트가 생성될 때 이전 리포트의 내용을 참고하게 하여 내용 중복을 방지했습니다. * **경합 없는 스토리지 설계**: 열 지향(Column-oriented) 키-값 데이터베이스를 사용하여 각 리포트를 고유한 컬럼 식별자(YYYYMMDD)로 저장했습니다. 이를 통해 락(Lock)이나 복잡한 읽기-수정-쓰기 과정 없이 병렬 쓰기가 가능하게 했습니다. * **쓰기 순서 제어**: 리포트 본문을 먼저 저장한 후 메타데이터를 작성하는 방식을 채택하여, 생성 중인 리포트가 사용자에게 노출되는 현상을 방지하고 데이터 일관성을 유지했습니다. 대규모 사용자 데이터를 바탕으로 LLM 서비스를 기획한다면, 처음부터 거대 모델을 직접 호출하기보다 고성능 모델로 생성한 고품질 데이터를 활용해 소형 모델을 증류(Distillation)하고 특정 목적에 최적화하는 전략이 비용과 성능 면에서 훨씬 유리합니다. 또한, 수억 건의 동시 쓰기가 발생하는 환경에서는 데이터베이스의 물리적 구조를 활용해 경합을 최소화하는 스키마 설계가 필수적입니다.

개발자는 AI에게 대체될 것인가 (새 탭에서 열림)

현재의 AI 열풍은 막대한 자본이 투입된 버블의 성격을 띠고 있지만, 장기적으로는 개발자의 업무를 근본적으로 재정의하는 도구로 자리 잡을 것입니다. 개발자는 단순히 코드를 생산하는 역할에서 벗어나, 어떤 업무를 AI에게 '추상화(위임)'하고 어떤 핵심 판단력을 유지할지 결정하는 설계자이자 디렉터의 역량을 요구받게 됩니다. 결국 AI 시대의 생존은 기술적 위임의 경계를 설정하고 시스템의 복잡성을 관리하는 '추상화 능력'에 달려 있습니다. ## AI 하이프와 경제적 불균형의 실체 * **아마라의 법칙과 버블:** 기술의 효과는 단기적으로 과대평가되는 경향이 있으며, 현재 AI 시장은 투자 대비 매출 비율이 16:1(설비투자 5,600억 달러 대비 매출 350억 달러)에 달할 정도로 극심한 불균형 상태입니다. * **실질 수익의 부재:** 생성형 AI 도입 프로젝트의 약 95%가 실패하거나 뚜렷한 효율 개선을 보이지 못하고 있으며, 빅테크의 매출조차 상당 부분 내부 거래에 의존하고 있는 실정입니다. * **인력 감축의 역설:** 현재의 개발자 감원은 AI가 업무를 대체했기 때문이라기보다, 막대한 AI 투자 비용을 충당하기 위한 기업의 비용 절감 전략에서 기인한 측면이 큽니다. ## 제번스 패러독스와 직무의 재정의 * **수요의 폭발:** 에어컨 보급률이 높아질수록 관련 산업이 커지듯, AI로 코딩의 문턱이 낮아지면 소프트웨어에 대한 전체 수요와 활용처는 오히려 기하급수적으로 늘어날 것입니다. * **도구로서의 AI:** 과거 게임 엔진이 소규모 팀에게 프로급 역량을 부여했듯, AI는 개발자를 보조하는 강력한 '파워 툴'이 되어 상위 실력자의 생산성을 극대화합니다. * **역할의 변화:** 개발자의 정체성은 코드 작성자에서 '코드 크리에이티브 디렉터'로 변모하며, 시스템 설계, 에이전트 지휘, 결과물 검증이 업무의 중심이 됩니다. ## 위임의 사분면과 추상화의 본질 * **위임의 기준:** '위임하기 쉬운가(기술적 난이도)'는 모델의 발전에 따라 계속 변하는 일시적인 경계일 뿐이며, 중요한 것은 '위임해야 하는가(책임과 판단)'라는 가치 판단의 축입니다. * **추상화로서의 위임:** AI에게 업무를 맡기는 것은 프로그래밍의 '추상화'와 같습니다. 이는 세부 사항을 숨기고 더 이상 신경 쓰지 않겠다는 선언이며, 복잡성을 미래로 이동시키는 레버리지 역할을 합니다. * **유형별 위임 전략:** 단순 CRUD나 보일러플레이트 코드, 테스트 케이스 등 잘 정의된 문제는 AI에게 맡기되, 아키텍처 결정이나 보안 정책, 법규 대응처럼 인간의 판단이 필수적인 영역은 분리해야 합니다. ## 잘못된 추상화와 미래의 리스크 * **추상화의 붕괴:** 트래픽 급증, 법률 개정(GDPR 등), 제로데이 보안 취약점 같은 예외 상황이 발생하면 AI에게 위임했던 '추상화된 업무'가 한꺼번에 무너질 수 있습니다. * **시니어의 역할:** 시스템의 근본이 흔들릴 때 이를 해결할 수 있는 능력은 결국 풍부한 경험을 가진 시니어 개발자의 몫이며, AI 결과물을 맹목적으로 수용할 경우 추상화가 없는 것보다 더 큰 재앙을 초래할 수 있습니다. * **지속 가능한 리팩토링:** 개발자는 AI에게 어떤 컨텍스트를 제공하고 어떤 부분을 직접 통제할지 업무 프로세스를 끊임없이 리팩토링하며 '좋은 추상화'를 구축해야 합니다. 성공적인 AI 활용을 위해서는 AI를 단순한 대체재가 아닌, 복잡성을 관리하는 추상화 도구로 바라봐야 합니다. 기술 발전 속도에 일희일비하기보다, 기술이 해결할 수 없는 '비즈니스 임팩트'와 '시스템의 안정성'에 대한 인간의 판단력을 고도화하는 것이 AI 시대 개발자의 핵심 경쟁력이 될 것입니다.

엔터프라이즈 LLM 서비스 구축기 1: 컨텍스트 엔지니어링 (새 탭에서 열림)

대규모 엔터프라이즈 환경에서 LLM 서비스를 구축할 때는 정교한 지시어(프롬프트 엔지니어링)보다 AI에게 필요한 정보만 선별해 제공하는 '컨텍스트 엔지니어링'이 더욱 중요합니다. LY Corporation은 260개가 넘는 API와 방대한 문서를 다루는 클라우드 AI 어시스턴트를 개발하며, 컨텍스트의 양이 늘어날수록 모델의 추론 성능이 하락하고 환각 현상이 발생하는 문제를 확인했습니다. 이를 해결하기 위해 사용자의 의도에 맞춰 필요한 도구와 가이드라인만 실시간으로 주입하는 '점진적 공개' 전략과 시스템 프롬프트의 충돌을 방지하는 '모의 도구 메시지' 기법을 도입하여 성능과 정확도를 동시에 확보했습니다. ### 컨텍스트 과부하와 성능의 상관관계 * **정보량과 성능의 반비례**: 최신 LLM은 수십만 토큰의 컨텍스트 윈도우를 지원하지만, 입력 길이가 길어질수록 핵심 정보를 찾는 능력이 최대 85%까지 급격히 하락합니다. * **노이즈로 인한 판단력 저하**: 질문과 유사해 보이지만 실제로는 관계없는 정보(노이즈)가 섞이면 모델이 당당하게 가짜 정보를 생성하는 환각 현상이 빈번해집니다. * **토큰 소모 효율성**: LLM은 이전 대화를 기억하지 못하는 스테이트리스(stateless) 구조이므로, 대화가 길어지고 API의 JSON 응답이 누적되면 64K 토큰 정도의 용량은 순식간에 소모되어 비용과 성능에 악영향을 줍니다. ### 도구 선별을 통한 컨텍스트 절약 * **선별적 로드**: 260개의 모든 API 도구를 한 번에 컨텍스트에 올리지 않고, 사용자의 질문에서 제품군(예: Redis, Kubernetes)을 먼저 식별합니다. * **도구 최적화**: 사용자가 특정 제품에 대해 물을 때만 관련된 소수의 도구(API)만 선별하여 제공함으로써 모델의 인지 부하를 획기적으로 줄입니다. ### 응답 가이드라인과 점진적 공개 전략 * **상황별 지침 주입**: "리소스 변경 시 UI 안내 우선"과 같이 특정 조건에서만 필요한 운영 지침을 '응답 가이드라인'으로 정의하고, 질문의 성격에 따라 필요한 시점에만 선택적으로 로드합니다. * **시스템 프롬프트와 가이드라인의 분리**: 모든 상황에 적용되는 '대원칙'은 시스템 프롬프트에, 특정 상황의 '행동 절차'는 가이드라인에 배치하여 관리 효율을 높입니다. ### 모의 도구 메시지(ToolMessage)를 활용한 환각 방지 * **프롬프트 충돌 문제**: 새로운 가이드라인을 단순히 시스템 프롬프트 뒤에 추가할 경우, 모델이 기존의 대원칙(예: "반드시 검색 결과로만 답변하라")을 무시하고 가이드라인에만 매몰되어 환각을 일으키는 현상이 발생했습니다. * **도구 메시지 전략**: 가이드라인을 시스템 프롬프트에 넣는 대신, 마치 검색 도구를 실행해서 얻은 결과값인 것처럼 '도구 메시지(ToolMessage)' 형식으로 주입합니다. * **전략의 효과**: 이 방식을 통해 LLM은 시스템 프롬프트의 대원칙을 준수하면서도, 주입된 가이드라인을 도구로부터 얻은 최신 정보로 인식하여 훨씬 정확하고 일관된 답변을 생성하게 됩니다. 엔터프라이즈 LLM 서비스의 핵심은 모델의 지능을 믿고 모든 데이터를 던져주는 것이 아니라, 모델이 가장 똑똑하게 판단할 수 있도록 최적의 정보만 정교하게 큐레이션하여 전달하는 설계 능력에 있습니다. 특히 복잡한 비즈니스 로직이나 사내 고유 지식을 반영해야 할 때는 시스템 프롬프트를 비대하게 만드는 대신, 도구 메시지나 동적 컨텍스트 주입 기술을 활용해 모델의 판단 체계를 보호하는 것이 실질적인 해결책이 됩니다.

당근의 GenAI 플랫폼 (새 탭에서 열림)

당근은 급증하는 생성형 AI(GenAI) 활용 수요에 대응하기 위해 파편화된 리소스를 통합하고 개발 효율성을 극대화하는 자체 플랫폼을 구축했습니다. LLM Router와 Prompt Studio를 통해 API 관리의 병목을 제거하고, 비개발자도 코드 없이 AI 기능을 고도화할 수 있는 환경을 마련했습니다. 이를 통해 모델 제공사의 장애나 사용량 제한에 유연하게 대처하며 서비스 안정성을 확보하고 조직 전반의 AI 활용 역량을 결집하고 있습니다. **LLM Router를 통한 AI Gateway 통합** * 여러 모델 제공사(OpenAI, Anthropic, Google 등)의 계정과 API 키를 중앙에서 관리하여 보안 우려를 해소하고 운영 프로세스를 간소화했습니다. * 팀별로 분산되어 발생하던 사용량 제한(Rate Limit) 문제를 공유 자원 풀링을 통해 해결하고, 전체 서비스의 비용과 사용량을 한눈에 파악할 수 있는 통합 대시보드를 구축했습니다. * OpenAI 인터페이스를 표준 규격으로 채택하여, 클라이언트가 모델 제공사에 관계없이 동일한 SDK 코드로 다양한 모델을 교체하며 사용할 수 있도록 설계했습니다. **Prompt Studio: 비개발자 중심의 AI 실험 환경** * 엔지니어의 도움 없이 웹 UI에서 프롬프트를 작성하고 테스트할 수 있는 환경을 제공하여 PM 등 비개발 직군의 업무 자율성을 높였습니다. * 수천 개의 테스트셋을 업로드해 결과를 한꺼번에 생성하고 정량적으로 측정하는 평가(Evaluation) 기능을 통해 프롬프트의 품질을 체계적으로 검증합니다. * 버전 관리 기능을 통해 클릭 한 번으로 최신 프롬프트를 실제 서비스에 배포할 수 있으며, 이는 엔지니어의 코드 수정 없이도 빠른 이터레이션을 가능하게 합니다. **장애 대응 및 서비스 안정성 강화** * 모델 제공사 측의 일시적인 오류 발생 시 자동으로 재시도(Retry)를 수행하여 서비스 중단을 최소화합니다. * 특정 리전의 사용량 제한이나 장애 발생 시 자동으로 다른 리전으로 요청을 우회하는 리전 폴백(Region Fallback) 기능을 플랫폼 수준에서 지원합니다. * 개별 서비스 팀이 인프라 장애 대응에 신경 쓰지 않고 비즈니스 로직 개발에만 집중할 수 있는 환경을 조성했습니다. 기업 내 GenAI 도입이 늘어남에 따라 API 키와 프롬프트 관리는 단순한 운영을 넘어 서비스의 안정성과 확장성을 결정짓는 핵심 인프라가 됩니다. 당근의 사례처럼 통합 게이트웨이와 사용자 친화적인 실험 플랫폼을 선제적으로 구축한다면, 개발 부하를 줄이면서도 조직 전체의 AI 활용 노하우를 효율적으로 축적할 수 있습니다.

사내 AI 리터러시를 향상하기 위한 AI Campus Day를 개최했습니다 (새 탭에서 열림)

LY Corporation은 전 직군의 AI 리터러시를 높이고 실무 적용을 독려하기 위해 사내 실습 행사 'AI Campus Day'를 개최했습니다. 외부 강사 대신 사내 전문가인 'AI 멘토'를 활용하고 실습 중심의 핸즈온 세션을 구성함으로써, 보안 가이드라인과 사내 업무 환경에 최적화된 실질적인 AI 활용 노하우를 성공적으로 전파했습니다. 이번 행사는 단순한 교육을 넘어 축제 형태의 운영 방식을 도입하여 임직원들이 자발적으로 AI 기술을 탐색하고 업무 생산성을 높이는 계기를 마련했습니다. **실무 역량 강화를 위한 수준별 핸즈온 세션** * **직군별 맞춤 트랙 운영:** 'Common', 'Creative', 'Engineering'의 3개 트랙으로 나누어, 기초 프롬프팅부터 MCP(Model Context Protocol) 서버 구축과 같은 심화 주제까지 총 10개의 세션을 제공했습니다. * **단계별 난이도 설계:** 참가자의 AI 활용 수준에 맞춰 3단계 레벨을 설정하여, 비개발 직군부터 엔지니어까지 누구나 자신의 수준에 맞는 학습이 가능하도록 했습니다. * **철저한 실습 지원 체계:** 흐름을 놓치지 않도록 상세한 '세션 가이드'를 제작 배포하고, 세션마다 2~3명의 조교(총 26명)를 배치하여 현장에서 발생하는 기술적 문제를 즉각 해결했습니다. * **Slack 기반의 소통:** 각 세션별 채널을 통해 실습 결과물을 실시간으로 공유하고 질의응답을 진행하여 참여도를 높였습니다. **사내 콘텍스트를 반영한 AI 멘토링** * **내부 전문가 활용:** 외부 강사 대신 사내에서 이미 AI를 적극적으로 활용 중인 동료 10명을 멘토로 선발하여 현장감 있는 지식을 공유했습니다. * **최적화된 도구 활용:** ChatGPT Enterprise, Gemini, Claude Code 등 사내에서 허용된 도구와 보안 수칙을 100% 반영하여, 배운 내용을 즉시 업무에 적용할 수 있는 환경을 구축했습니다. * **체계적인 콘텐츠 검토:** 운영진은 멘토 가이드를 제공하고, '주제 검토 - 최종 자료 리뷰 - 리허설'로 이어지는 다단계 프로세스를 통해 교육 콘텐츠의 완성도를 확보했습니다. **자발적 참여를 유도하는 축제형 운영** * **캠퍼스 테마 도입:** 수강 신청, 등교, 스탬프 랠리 등 대학교 캠퍼스 컨셉을 활용하여 학습에 대한 심리적 장벽을 낮추고 즐거운 분위기를 조성했습니다. * **몰입형 이벤트 부스:** Gemini를 활용한 AI 포토존, 자체 개발 AI 업무 지원 솔루션 체험, AI 에이전트 콘테스트 홍보 등 다채로운 부스를 운영하여 AI의 효용성을 직접 경험하게 했습니다. * **리더십의 전폭적 지지:** 경영진의 축전 영상을 통해 '업무 대신 AI와 함께 노는 하루'라는 메시지를 전달함으로써, 임직원들이 심리적 부담 없이 행사에 몰입할 수 있는 환경을 만들었습니다. 성공적인 사내 AI 전환(AX)을 위해서는 단순한 도구 보급을 넘어, 사내 보안 가이드와 업무 맥락을 정확히 이해하는 내부 전문가 중심의 실습 교육이 필수적입니다. AI Campus Day와 같이 학습을 '숙제'가 아닌 '축제'로 인식하게 만드는 운영 전략은 구성원들의 자발적인 기술 수용도를 높이는 데 매우 효과적인 접근 방식이 될 것입니다.

안전은 기본, 비용 절감은 덤: AI 서비스에 별도 가드레일이 필요한 이유 (새 탭에서 열림)

AI 가드레일은 모델의 오동작을 막는 필수 안전장치이지만, 단순히 시스템 프롬프트에 규칙을 심는 방식은 모델 본연의 성능 저하와 예기치 못한 부작용을 초래할 수 있습니다. 시스템 프롬프트는 규칙의 위치나 미세한 수정에 따른 출력 변동성에 매우 민감하기 때문에, 모델 외부에서 입출력을 검증하는 별도의 가드레일 체계를 구축하는 것이 보안과 서비스 안정성 측면에서 더욱 효율적입니다. ### 시스템 프롬프트 기반 가드레일의 과도한 거절 문제 * 시스템 프롬프트에 강력한 안전 규칙을 부여하면, 모델이 전체적으로 보수적인 태도를 취하게 되어 무해한 질문까지 거절하는 위양성(False Positive) 확률이 높아집니다. * 연구 결과에 따르면 안전 프롬프트 추가 시 전체 쿼리의 임베딩이 '거절' 방향으로 이동하며, "Python 프로세스를 죽이는(kill) 방법"과 같은 기술적인 질문조차 위험한 요청으로 오인하여 거절하는 패턴이 관찰됩니다. * 이는 보안 강도와 사용자 경험(정상적인 답변 수신) 사이의 트레이드오프를 심화시켜 모델의 유용성을 떨어뜨리는 원인이 됩니다. ### 프롬프트 위치 및 순서에 따른 위치 편향(Position Bias) * LLM은 긴 컨텍스트 안에서 처음과 끝부분의 정보는 잘 인식하지만, 중간에 위치한 정보는 간과하는 'Lost in the Middle' 현상을 보입니다. * 여러 제약 조건이 섞여 있는 경우, 가드레일 규칙이 시스템 프롬프트의 어느 지점에 위치하느냐에 따라 모델이 해당 규칙을 지키는 가중치가 달라집니다. * 실험 결과에 따르면 난이도가 높은 제약을 앞쪽에 배치할 때 성능이 가장 좋으며, 가드레일 규칙이 중간이나 뒤로 밀려날 경우 보안 성능이 일정하게 유지되지 않는 불안정성을 보입니다. ### 미세한 수정이 유발하는 성능의 나비효과 * 시스템 프롬프트 내의 아주 사소한 변화(공백 추가, "감사합니다" 문구 삽입 등)만으로도 모델의 결정 경계가 이동하여 전체 예측 값의 10% 이상이 바뀔 수 있습니다. * 특히 출력 형식을 지정(JSON/XML)하거나 특정 탈옥 방지 문구를 섞는 행위가 모델의 내부 추론 경로를 완전히 바꾸어, 일부 작업에서 성능이 급락하는 '재앙적인 수준의 붕괴'가 발생하기도 합니다. * 안전 규칙, 스타일, 형식 등 수십 줄의 요구사항을 하나의 시스템 프롬프트에 담을 경우, 한 줄의 수정이 모델이 어떤 규칙을 우선시할지에 대한 예측 불가능한 변화를 일으킵니다. ### 별도 가드레일 적용을 통한 보완과 추천 * 모델 본연의 성능을 유지하면서도 안전성을 확보하기 위해서는 모델 앞뒤에 독립적인 보안 게이트(별도 가드레일)를 세우는 방식이 효과적입니다. * 사용자의 입력 단계에서 위험을 감지해 차단(Tripwires)하거나 안전하게 재작성(Rewriter)하여 전달하고, 모델의 응답 후에도 다시 한번 결과를 점검하는 다층 방어 체계를 구축해야 합니다. * 이를 통해 시스템 프롬프트의 복잡도를 낮추고, 보안 정책의 수정이 모델의 전체 성능(추론 로직)에 직접적인 영향을 주지 않도록 분리하는 것이 실무적으로 권장됩니다.

상호작용이 모든 것을 (새 탭에서 열림)

마이크로소프트는 단순한 도구로서의 AI를 넘어, 개발 생명 주기 전반에서 함께 기획하고 분석하며 실행하는 ‘지능형 협업자’로서의 에이전트 활용 모델을 제시했습니다. 특히 수백 개의 리포지토리에 걸친 Entra SDK v1에서 v2로의 복잡한 마이그레이션 프로젝트에서, 에이전트를 팀원의 정체성을 가진 파트너로 대우함으로써 4~6주가 소요되던 작업을 2시간 이내로 단축하고 80~90%의 높은 정확도를 달성했습니다. 기술적 자동화의 한계를 극복하기 위해서는 AI에게 단순한 지시 사항을 나열하기보다 판단력을 발휘할 수 있는 역할과 맥락을 부여하는 프레임워크가 핵심입니다. ### 단순 자동화 사고방식의 한계 복잡한 기술적 마이그레이션은 단순히 기계적인 단계의 반복이 아니며, 맥락에 따른 판단과 보안 경계에 대한 세심한 평가가 필수적입니다. * 기존의 체크리스트나 스크립트 방식의 자동화는 모호한 상황이나 문서화되지 않은 커스텀 로직에 직면했을 때 반복적으로 실패했습니다. * 복잡한 작업에는 상황에 따른 판단(Judgment)이 필요하며, 이는 단순한 자동화 대상이 아니라 지능적인 협업을 통해 해결해야 할 영역입니다. * AI에게 단순히 "이 단계를 따르라"고 명령하는 방식은 에이전트가 예외 상황에서 잘못된 추측을 하거나 조용히 실패하게 만드는 원인이 됩니다. ### 지시를 넘어선 정체성 부여의 힘 성공적인 협업의 전환점은 AI 에이전트에게 단순한 작업 목록이 아닌, 구체적인 팀 내 역할과 미션을 부여했을 때 나타났습니다. * 에이전트를 '스크립트 실행자'가 아닌 '공동 창작 엔지니어(Co-creative engineer)'로 정의함으로써 문제 해결 능력이 극대화되었습니다. * 정체성이 부여된 에이전트는 단순한 패턴 매칭을 넘어 보안 경계를 인식하고, 불확실한 상황에서는 임의로 처리하는 대신 사람에게 질문을 던지기 시작했습니다. * 이러한 접근법은 에이전트가 작업의 중요성을 이해하고 우선순위가 충돌할 때 적절한 판단을 내릴 수 있는 심리적·맥락적 토대가 되었습니다. ### 공동 창작 파트너십 프레임워크의 8가지 요소 마이크로소프트가 실제 프로젝트에 적용한 프레임워크는 AI 에이전트가 인간과 같은 수준의 판단력을 발휘하도록 설계되었습니다. * **정체성과 미션(Identity & Mission):** 에이전트가 누구인지, 왜 이 일이 중요한지 설명하여 목표가 충돌할 때 우선순위를 정할 수 있게 합니다. * **목적과 의도(Purpose & Intent):** 속도보다 보안, 완료보다 정확성 같은 핵심 가치를 명시하여 판단의 기준을 제공합니다. * **우선순위가 지정된 목표(Key Goals):** 1차 목표부터 품질 목표까지 순위를 매겨 에이전트가 트레이드오프 상황에서 최선의 결정을 내리게 돕습니다. * **판단 지침이 포함된 단계별 가이드:** 단순한 행동 지침뿐만 아니라, 무엇을 보존해야 하는지 그리고 어떤 경우에 인간에게 에스컬레이션(보고)해야 하는지를 구체적으로 명시합니다. 복잡한 기술 부채 해결이나 대규모 아키텍처 변경을 고민하고 있다면, AI를 단순한 자동화 봇으로 활용하는 단계에서 벗어나야 합니다. 800줄의 상세 로직보다 더 중요한 것은 에이전트에게 팀의 일원으로서의 책임과 권한을 부여하는 프레임워크입니다. AI가 판단력을 발휘할 수 있도록 명확한 역할과 가치 기준을 제공할 때, 비로소 인간 개발자는 단순 코더가 아닌 '에이전트 오케스트레이터'로 거듭날 수 있습니다.

네이버 TV (새 탭에서 열림)

네이버의 'NSona' 프로젝트는 LLM 기반의 멀티 에이전트 시스템을 통해 방대한 사용자 리서치 데이터를 실시간 협업 자원으로 전환하며, 서비스 기획과 실제 개발 사이의 간극을 혁신적으로 줄인 사례를 제시합니다. 디자이너, AI 리서처, 개발자가 협력하여 단순한 기술 구현을 넘어 사용자의 목소리를 생생하게 재현하는 페르소나 봇을 개발함으로써, AI가 도구를 넘어 협업의 주체가 될 수 있음을 증명했습니다. 이를 통해 팀은 사용자의 피드백을 실시간으로 서비스 개발 과정에 투영하고 의사결정의 효율성을 극대화하는 성과를 거두었습니다. **사용자 경험을 재현하는 페르소나 봇 "NSona"** * 기존 UX 리서치가 가진 일회성 데이터의 한계를 극복하고, 리서치 결과를 데일리 협업 과정에서 상시 활용할 수 있는 자산으로 전환하기 위해 기획되었습니다. * 사용자의 특성과 행동 양식을 학습한 페르소나 봇 'NSona'를 통해 기획자나 개발자가 언제든 사용자의 관점에서 서비스에 대한 의견을 물을 수 있는 환경을 구축했습니다. **에이전트 중심의 서비스 구조와 기술적 도전** * 단일 LLM 모델의 한계를 넘어, 특정 서비스 목적에 최적화된 'Agent 중심의 서비스 구조'를 설계하여 보다 정교한 사용자 재현을 시도했습니다. * Multi-Party 대화 시스템을 도입하여 여러 페르소나가 상호작용하며 복합적인 피드백을 제공할 수 있는 기술적 토대를 마련했습니다. * 일반적인 언어 모델 평가 지표 대신, 서비스의 맥락과 UX 요구사항을 반영한 'Service-specific' 평가 프로세스를 독자적으로 구축하여 모델의 품질을 관리했습니다. **AI 시대의 변화된 협업 방식과 R&R** * 전통적인 업무 경계를 허물고 디자이너는 프롬프트를 설계하며, 리서처는 로직을 에이전트 구조로 전환하고, 개발자는 AI를 비평의 대상으로 다루는 새로운 협업 모델을 실천했습니다. * 결과물의 완성도에만 집착하기보다 '어디서 시작점을 찍느냐'에 집중하며, AI를 개발 프로세스의 초기 단계부터 능동적인 파트너로 참여시켰습니다. * 이러한 과정은 직군 간의 선형적인 협업 구조를 유기적인 파장 형태의 협업 구조로 변화시키는 계기가 되었습니다. **사용자 중심 AI 개발을 위한 실무적 제언** 성공적인 AI 서비스를 위해서는 기술적 구현만큼이나 기획, 디자인, 엔지니어링 간의 유기적인 결합이 필수적입니다. NSona의 사례처럼 사용자의 목소리를 데이터 더미가 아닌 대화 가능한 실체로 변환하여 협업의 중심에 배치한다면, 보다 사용자의 니즈에 밀착된 서비스를 더 빠른 속도로 검증하고 개발할 수 있을 것입니다.

[AI_TOP_100] 문제 출제 후기 – 기술이 아닌, 사람을 묻다. (새 탭에서 열림)

AI 기술이 비약적으로 발전하는 시대에 도구를 다루는 인간의 실제 문제 해결 역량을 측정하기 위해 ‘AI TOP 100’ 경진대회가 기획되었습니다. 단순히 AI를 사용하는 수준을 넘어, 인간과 AI의 긴밀한 협업 과정을 통해 복잡한 현실 문제를 해결하고 최적의 의사결정을 내리는 ‘문제 해결자’를 선별하는 데 초점을 맞추었습니다. 결과물뿐만 아니라 AI의 한계를 인간의 통찰로 보완해 나가는 '과정' 자체를 핵심 평가 지표로 삼은 것이 이번 대회의 결론입니다. **AI와 인간의 협업 루프(Human-in-the-loop) 설계** * 단순히 문제를 복사하여 붙여넣는 방식으로는 해결할 수 없도록, 사람의 분석과 AI의 실행, 그리고 다시 사람의 검증이 순환되는 구조를 지향했습니다. * 사람은 직관적으로 파악하지만 AI는 분석하기 어려운 데이터 구조(식단표, 복잡한 표의 행/열 관계 등)를 제공하여 인간의 사전 가이드가 성능을 좌우하게 설계했습니다. * 이미지 생성과 피드백 분석, 프롬프트 개선 과정을 에이전트에게 위임하여 자동화 파이프라인을 구축하는 등 고도화된 협업 능력을 측정했습니다. **'딸깍' 방지를 위한 입체적인 난이도 설계** * 최신 AI 모델이 단 한 번의 프롬프트(One-shot)로 정답을 맞히지 못하도록 의도적인 기술적 제약과 논리적 미로를 문제 속에 배치했습니다. * '낮은 진입 장벽과 높은 천장' 원칙에 따라, 초보자도 쉽게 접근할 수 있는 시작 문항부터 깊은 통찰이 필요한 킬러 문항까지 '난이도 사다리' 구조를 도입했습니다. * 특정 프레임워크에 국한되지 않고 출제자가 예상치 못한 창의적인 방식으로도 문제를 해결할 수 있는 열린 구조를 유지했습니다. **현실의 복잡성을 반영한 4가지 문제 패턴** * **분석 및 정의(Insight):** 정답이 없는 복합 데이터 속에서 유의미한 문제나 기회를 스스로 발견하는 역량을 평가합니다. * **구현 및 자동화(Action):** 정의된 문제를 해결하기 위해 AI 솔루션을 실제 작동하는 코드나 워크플로로 구현하는 능력을 측정합니다. * **전략 및 창의(Persuasion):** 기술적 솔루션을 비기술 이해관계자에게 설득력 있게 전달하기 위한 논리와 창의적 콘텐츠 생성 능력을 확인합니다. * **최적화 및 의사결정(Decision):** 제약 조건 하에서 목표를 최대화하는 최적의 의사결정 시뮬레이션을 수행합니다. **엄격한 검증을 거친 문제 고도화 파이프라인** * 아이디어 단계부터 최종 확정까지 4단계의 파이프라인을 구축하고, 출제위원 내부 테스트 및 알파·베타 테스트를 통해 문제의 신뢰도를 검증했습니다. * AI 모델이 매일 업데이트되어 어제의 난제가 오늘의 쉬운 문제가 되는 환경에 대응하기 위해 지속적인 실증 테스트를 반복했습니다. * 문제의 겉보기 난이도가 아니라 실제 해결에 필요한 노력 비용을 기준으로 점수를 재조정하는 '캘리브레이션' 과정을 거쳐 변별력을 확보했습니다. AI 시대의 진정한 경쟁력은 도구의 기능을 단순히 암기하는 것이 아니라, AI의 한계를 명확히 이해하고 이를 인간의 기획력으로 보완하여 실질적인 가치를 만들어내는 데 있습니다. 이번 출제 후기는 기술보다 '그 기술을 다루는 사람'의 사고방식이 더 중요하다는 점을 강조하며, 앞으로의 AI 리터러시 교육과 평가가 나아가야 할 방향을 제시합니다.

한 달짜리 과제, 바이브 코딩으로 5일 만에!(ChatGPT·Cursor) (새 탭에서 열림)

기존의 전통적인 개발 방식은 상세한 요구 사항 정의와 설계 단계에 많은 비용이 소모되어 급변하는 시장 트렌드에 대응하기 어렵습니다. 이 글은 생성형 AI를 활용해 '작동하는 데모'를 빠르게 만들고 이를 수정해 나가는 '바이브 코딩(Vibe Coding)' 전략을 통해, 한 달이 걸릴 과제를 단 5일 만에 해결한 과정을 담고 있습니다. 완벽한 정답보다는 충분히 괜찮은 해답을 빠르게 도출해 검증 루프를 돌리는 것이 핵심입니다. ### 요구 사항과 도메인의 간결한 정의 - 복잡한 메뉴 등록 시스템을 단순화하기 위해, 초기 요구 사항은 메모장에 한 줄 요약과 최우선순위 1~2가지만 정리하여 시작합니다. - 데이터 구조는 화면 구성의 기반이 되므로 가능한 사실에 가깝게 정의하되, 세부적인 내용은 AI의 창의적인 제안을 수용할 수 있도록 여백을 둡니다. - 처음부터 완벽한 명세서를 작성하려 하기보다, AI가 맥락을 파악할 수 있는 핵심 도메인 지식을 전달하는 데 집중합니다. ### 5가지 솔루션 후보 선정 및 구체화 - ChatGPT를 활용해 '스텝퍼형 마법사', '라이브 미리보기', '템플릿 복제', '채팅 입력', 'OCR 사진 촬영' 등 서로 다른 접근 방식의 솔루션 5가지를 도출합니다. - 각 솔루션의 장단점을 분석하여 실무 적용 가능성을 판단하고, 프롬프트를 미세 조정하며 원하는 수준의 답변이 나올 때까지 반복 요청합니다. - 이 과정에서 AI는 맥락을 축적하며 결과물의 품질을 높이며, 사용자는 여러 대안 중 최적의 사용자 경험(UX)을 선택할 수 있는 시야를 확보합니다. ### AI 기반의 와이어프레임 및 상세 설계 - 선정된 각 솔루션별로 필요한 화면 수, UI 요소, 공통 패턴(진행률 표시, 유효성 검사 등)을 AI가 상세히 설계하도록 유도합니다. - 예를 들어 '스텝퍼형'의 경우 8단계의 상세 화면 구성을 정의하고, 각 단계에서 입력받을 필드와 도움말 문구까지 구체화합니다. - 설계 과정에서 누락된 기능이나 우선순위 변경이 발견되면 프롬프트를 수정해 즉시 재설계하며, 물리적 설계 문서 작성의 부담을 최소화합니다. ### Cursor와 Flutter를 활용한 고속 구현 - AI 통합 개발 환경인 Cursor를 사용해 Flutter 기반의 모바일 앱 코드를 생성하며, 단일 코드베이스의 이점을 살려 실험 속도를 극대화합니다. - 먼저 5가지 솔루션의 진입점이 포함된 공통 뼈대(Main Screen)를 작성한 뒤, 각 솔루션을 개별 파일로 나누어 점진적으로 구현합니다. - 처음부터 상태 관리 라이브러리(Riverpod)나 데이터베이스(SQLite) 같은 기술 스택을 고민하지 않고, 기능 위주의 화면 데모를 먼저 만든 후 필요에 따라 스택을 추가하는 역순 방식을 취합니다. 이러한 방식은 '완성물이 최고의 디버거'라는 철학을 바탕으로 합니다. 문서 상의 논의에 시간을 쏟기보다 작동하는 앱을 빠르게 만들어 직접 만져보며 수정하는 것이 결과적으로 더 높은 품질의 제품을 더 빨리 만드는 길입니다. AI는 반복적인 재작업 요청에도 지치지 않으므로, 개발자는 이를 활용해 끊임없이 가설을 검증하고 정답에 가까워지는 '반복의 힘'을 믿어야 합니다.

대규모 대화형 AI 평가를 (새 탭에서 열림)

대규모 언어 모델(LLM) 기반의 애플리케이션은 겉으로 보기에 단순해 보이지만, 내부적으로는 검색, 랭킹, 프롬프트 구성 등 복잡한 확률적 단계들이 체인처럼 연결되어 있어 미세한 수정만으로도 성능이 급변할 수 있습니다. Dropbox Dash 개발팀은 이러한 불확실성을 통제하기 위해 평가 프로세스를 단순한 사후 점검이 아닌 '프로덕션 코드'와 동일한 수준의 엄격한 표준으로 관리해야 한다고 강조합니다. 성공적인 AI 서비스를 위해서는 공공 및 내부 데이터를 혼합한 정교한 데이터셋 구축과 더불어, 단순 NLP 지표를 넘어선 LLM 기반의 자동화된 평가 체계를 구축하는 것이 핵심입니다. ### 다각적인 데이터셋 구축 전략 * **공공 데이터셋을 통한 베이스라인 수립**: Google의 Natural Questions, MS MARCO, MuSiQue 등을 활용해 대규모 문서 검색, 다중 문서 처리, 멀티홉(multi-hop) 질의응답 성능을 초기 단계에서 검증합니다. * **실제 사용자 패턴 반영**: 사내 테스트(Dogfooding)를 통해 수집된 로그 데이터를 익명화하고 랭킹화하여 실제 사용자의 질문 방식과 의도를 반영한 대표 쿼리셋을 구성합니다. * **합성 데이터(Synthetic Data) 활용**: 표, 이미지, 튜토리얼 등 다양한 콘텐츠 타입에 대해 LLM이 직접 질문과 답변 쌍을 생성하게 함으로써 실세계의 복잡한 사례들을 포괄합니다. ### 전통적 지표의 한계와 LLM 평가 도입 * **전통적 NLP 지표의 제약**: BLEU, ROUGE, BERTScore 등은 계산이 빠르지만, 답변의 사실 관계나 출처 인용의 정확성, 할루시네이션(환각) 여부를 판단하는 데에는 한계가 있습니다. * **LLM 기반 판독(LLM-as-a-judge)**: 평가 모델(Judge Model)이 답변의 사실성, 질문에 대한 직접적인 응답 여부, 톤앤매너 등을 검토하며, 단순 점수뿐만 아니라 판단 근거(Justification)를 함께 제공하도록 설계합니다. * **평가 모듈의 소프트웨어화**: 평가 프롬프트와 기준(Rubric)을 소프트웨어 모듈처럼 버전 관리하고, 정기적으로 정답 셋(Gold Standard)과 비교하여 평가 모델 자체의 성능을 교정합니다. ### 엄격한 워크플로우와 품질 관리 * **구조화된 평가 결과 산출**: JSON 형식으로 결과(사실 정확도, 인용 적절성, 명확성 등)를 출력하여 시스템이 즉각적으로 성공과 실패를 판단할 수 있는 '라이브 알람' 체계를 구축합니다. * **휴먼 인 더 루프(Human-in-the-loop)**: 자동화된 평가가 전체의 대부분을 담당하더라도, 매 배포 시 엔지니어가 회귀 테스트 세트의 5~10%를 수동으로 검수하여 평가 모델의 편향이나 오류를 잡아냅니다. * **반복적인 프롬프트 개선**: 수동 검수에서 발견된 불일치 사례를 추적하여 평가 프롬프트를 수정하거나 모델을 교체함으로써 전체적인 평가 루프의 신뢰도를 높입니다. 실질적인 AI 성능 향상을 위해서는 모델 훈련만큼이나 정교한 평가 인프라에 투자해야 합니다. 공공 데이터로 기초를 다지고 내부 로그로 실전 감각을 더하며, LLM 평가자를 엄격하게 관리하는 일련의 과정이 뒷받침될 때 비로소 신뢰할 수 있는 AI 서비스를 운영할 수 있습니다.

자네, 해커가 되지 않겠나? Hack Day 2025에 다녀왔습니다! (새 탭에서 열림)

LY Corporation의 'Hack Day 2025'는 19년째 이어져 온 전통 있는 사내 해커톤으로, 직무와 국적에 상관없이 구성원들이 자유롭게 아이디어를 기술로 구현하는 혁신적인 개발 문화를 상징합니다. 참가자들은 24시간 동안 몰입하여 프로토타입을 제작하며, 'Perfect the Details' 정신을 바탕으로 기술적 검증과 협업의 가치를 실현합니다. 이번 행사는 단순한 개발을 넘어 글로벌 동료들과의 네트워크를 강화하고 창의적인 시도를 장려하는 LY Corporation만의 독보적인 기술 축제로 자리매김했습니다. **자유로운 협업과 글로벌 팀 빌딩** * 과거 야후 재팬 시절부터 시작되어 19회차를 맞이한 Hack Day는 기획자, 디자이너, HR 등 사내 구성원 누구나 참여할 수 있는 열린 행사입니다. * 온/오프라인 밋업과 Zoom, Miro 등의 툴을 활용해 한국, 일본, 대만, 베트남 등 다양한 국가의 멤버들이 'Global Mixed Team'을 구성하여 협업합니다. * 하이브리드 워크 환경에 맞춰 이동 시간 및 업무 집중 시간을 보장하는 'Travel Day' 제도를 통해 원격 근무자들이 오프라인에서 밀도 있게 협업할 수 있는 환경을 제공합니다. **몰입을 돕는 환경과 해커톤의 문화** * 행사 기간 동안 오피스의 한 층을 통째로 사용하며, 팀별 독립 공간과 화이트보드, 모니터 등 개발에 필요한 인프라를 전폭적으로 지원합니다. * 1일 차 오전 9시, 전 참가자가 모여 "Hack Time!"을 외치는 개회 선언을 통해 행사의 본격적인 시작을 알리는 전통이 있습니다. * 에너지 소모가 큰 해커톤 특성을 고려하여 시간대별로 도넛, 컵라면 등 다양한 간식과 전 세계 법인에서 가져온 이색 먹거리를 무제한 제공하여 개발에만 집중할 수 있게 돕습니다. **AI 모델을 활용한 기술적 실천과 유연한 피보팅** * 실제 프로젝트 사례로 Slack 커뮤니케이션 기록과 AI 모델을 결합해 개개인의 협업 성향을 분석하는 '전투력 측정' 프로그램을 개발했습니다. * 성격 심리학 모델인 'Big 5 Personality'를 도입하여 데이터의 신뢰성을 확보하고, 이를 게임 캐릭터 능력치처럼 시각화하여 재미 요소를 더했습니다. * 개발 마지막 단계에서 포토 프린터 하드웨어 장애라는 변수가 발생하자, 실물 카드 출력 대신 파일 다운로드 방식으로 기획을 신속하게 변경하며 해커톤 특유의 유연한 문제 해결 능력을 발휘했습니다. **성과 공유를 위한 90초 발표와 부스 운영** * 3일 차에는 각 팀이 결과물을 공유하며, 90초라는 엄격한 시간 제한 속에서 핵심 기능과 데모를 선보이는 '라이브 피칭'을 진행합니다. * 발표 후에는 별도의 부스 운영 시간을 통해 심사위원과 다른 참가자들이 직접 서비스를 체험해 보고 기술적인 디테일에 대해 심도 있는 질의응답을 나눕니다. * 창의성, 기술적 완성도, 발표 전달력을 종합적으로 평가하여 시상하며, 이를 통해 사내 기술 트렌드를 공유하고 성취감을 고취합니다. Hack Day와 같은 사내 해커톤은 일상적인 업무에서 벗어나 최신 기술(AI 등)을 실험하고 동료와의 유대감을 쌓을 수 있는 최고의 기회입니다. 기술적 성장에 목마른 조직이라면, 결과물의 완벽함보다는 24시간 동안의 몰입 경험과 그 과정에서 발생하는 유쾌한 시행착오를 장려하는 문화를 구축해 보길 추천합니다.

AI와 글쟁이의 동행: 코드 주면 API 레퍼런스 써드려요 (새 탭에서 열림)

기술 문서 부족 문제를 해결하기 위해 엔지니어링 관점에서 접근한 이 글은, 생성형 AI를 활용해 사내 기술 컨텍스트와 스타일 가이드가 반영된 API 레퍼런스를 자동 생성하는 프로젝트 과정을 소개합니다. 일반적인 코딩 어시스턴트의 한계를 극복하기 위해 프롬프트 워크플로를 최적화하고, 특정 IDE에 종속되지 않도록 MCP(Model Context Protocol)를 도입하여 범용성을 확보했습니다. 최종적으로 AI가 생성한 결과물은 높은 품질을 보였으나, 기술 문서의 특성상 정확성을 담보하기 위한 인간의 검토 단계가 필수적임을 강조하며 결론을 맺습니다. ## 기존 AI 도구의 한계와 도큐먼트 엔지니어링의 목표 * 기술 문서는 항상 부족하며, 개발자 교육만으로는 시간과 관심의 부재라는 근본적인 원인을 해결하기 어렵다는 판단하에 자동화 프로세스를 구축했습니다. * GitHub Copilot과 같은 기존 도구는 코드 파악 능력은 뛰어나지만, 사내 전용 기술 용어나 특수한 스타일 가이드, 프로젝트별 컨텍스트를 반영하지 못하는 단점이 있습니다. * '사내 정보를 참고해 스타일 가이드에 맞는 API 주석을 작성하고, 이를 한곳에서 배포하기'를 목표로 테크니컬 라이터의 노하우를 자동화 공정에 이식했습니다. ## 프롬프트 최적화와 단계별 워크플로 구성 * 초기에는 방대한 지시 사항이 담긴 긴 프롬프트를 사용했으나, LLM이 복잡한 지시를 놓치는 문제가 발생하여 실행 단계를 세분화했습니다. * 처리 속도와 정확도 사이의 타협점을 찾기 위해 '프로그래밍 언어 인식', 'API 파악 및 예제 작성', '설명 및 파라미터/응답 값 작성'의 3단계 워크플로로 압축했습니다. * LINE의 고유 식별자인 'MID'를 단순한 약어(Member ID 등)로 오해하지 않고 사내 정의에 맞게 설명하도록 컨텍스트를 주입하여 일반 AI 도구와 차별화된 품질을 구현했습니다. ## 범용성 확보를 위한 MCP(Model Context Protocol) 도입 * 초기 프로토타입은 VS Code 익스텐션으로 제작했으나, IntelliJ 등 다양한 IDE를 사용하는 개발자들의 요구를 수용하기 위해 MCP 기반으로 전환했습니다. * MCP 서버는 클라이언트와의 통신에만 집중하므로, UI 구현에 드는 비용을 줄이고 언어 판별이나 코드 블록 선택 같은 부가 기능을 MCP 호스트(IDE 등)에 위임할 수 있습니다. * 사용자가 AI와 대화하며 파라미터를 입력하는 방식은 현대적인 AI 사용 경험에 부합하며, 특정 도구에 종속되지 않는 범용적인 문서화 솔루션을 제공합니다. ## AI 문서화의 성과와 실질적인 한계 * 자체 평가 결과, 생성된 주석의 88%가 기준을 만족했으며 78%의 사례에서 GitHub Copilot보다 우수한 품질의 설명을 생성하는 성과를 거두었습니다. * 그러나 AI는 확률 기반으로 작동하므로 100%의 정확성을 보장하지 못하며, 단 한 줄의 오류가 문서 전체의 신뢰도를 떨어뜨리는 API 레퍼런스의 특성상 위험 요소가 존재합니다. * 따라서 AI를 '완벽하지 않은 동반자'로 정의하고, AI가 초안을 대량으로 빠르게 생산하되 마지막 단계에서는 반드시 담당 개발자가 내용을 검토하는 '사람 중심의 검증' 프로세스를 권장합니다.

Figma Make 사용을 위한 (새 탭에서 열림)

Figma Make는 프롬프트 입력을 통해 아이디어를 실제 작동하는 프로토타입과 코드로 즉시 변환해주는 강력한 도구로, 설계 단계에서 상세한 맥락을 제공하는 것이 성공의 핵심입니다. 단순히 결과물을 생성하는 것에 그치지 않고 기존 디자인 자산을 최적화하고 복잡한 프로젝트를 단계별로 세분화하여 접근할 때 최상의 성과를 거둘 수 있습니다. 이를 통해 제품 팀은 단순한 시안 확인을 넘어 실제 앱과 유사한 수준의 인터랙티브한 사용자 경험을 신속하게 검증할 수 있습니다. **초기 프롬프트의 상세 정보 극대화** * 첫 번째 프롬프트에 구체적인 정보를 많이 포함할수록 사후 수정에 드는 시간을 획기적으로 줄일 수 있습니다. * 프롬프트 구성 시 작업 내용(Task), 디자인이 놓인 맥락(Context), 핵심 디자인 요소, 상호작용에 따른 기대 동작, 제약 사항(기기 종류, 레이아웃 등)을 명확히 정의해야 합니다. * Figma Make는 Anthropic의 Claude 3.5 Sonnet 모델을 기반으로 하므로, "수직 정렬"처럼 모호한 표현보다는 "요소를 20px 아래로 이동" 또는 "버튼 사이에 16px 간격 추가"와 같이 구체적인 수치를 사용하는 것이 효과적입니다. **디자인 파일의 사전 정리 및 최적화** * 백지상태에서 시작하는 것(0→1)뿐만 아니라 기존 디자인을 변환(1→1)할 때도 탁월하며, 이를 위해 오토 레이아웃(Auto Layout)과 레이어 명명 규칙을 철저히 정리하는 것이 중요합니다. * Figma의 '레이어 이름 변경(Rename layers with AI)'이나 '오토 레이아웃 제안' 기능을 활용해 정돈된 프레임을 전달하면 AI가 디자인의 의도와 구조를 훨씬 더 정확하게 파악합니다. * 생성된 결과물이 화면 밖으로 벗어날 경우 "내 화면 크기에 맞춰 반응형으로 만들어줘" 또는 "모바일 사이즈 유지"와 같은 후속 명령으로 레이아웃을 교정할 수 있습니다. **복잡한 프로젝트의 단계별 세분화** * 한 번의 프롬프트로 방대한 기능을 구현하려 하기보다, 작은 단위의 기능이나 페이지별로 나누어 점진적으로 빌드하는 것이 AI의 정확도를 높이는 방법입니다. * 예를 들어 금융 대시보드를 만들 때, 먼저 핵심 레이아웃을 잡은 뒤 '노트 추가 기능', '통화 선택 체크박스' 등을 순차적인 프롬프트로 추가하여 제어력을 유지해야 합니다. * 각 요소(예: 런던 아이, 빅벤 등 개별 오브젝트)를 별도의 코드 폴더로 분리하도록 명령하면, 전체 환경에 영향을 주지 않고 특정 컴포넌트만 정밀하게 수정하거나 유지보수하기 용이합니다. **동작 중심의 마이크로 인터랙션 구현** * 정적인 디자인을 넘어 "음악 재생 시 CD가 회전하게 해줘"와 같은 구체적인 동작을 지시하여 생동감 있는 프로토타입을 만들 수 있습니다. * 복잡한 로직이 필요한 인터랙션의 경우, 베이스가 되는 그리드 컴포넌트를 먼저 구축한 후 세부적인 마우스 효과나 호버 상태를 단계적으로 입히는 전략이 유효합니다. * 만약 반복적인 수정에도 결과가 만족스럽지 않다면, 이전 시도에서 배운 교훈을 바탕으로 새 파일에서 프롬프트를 다시 구성하여 시작하는 것이 더 효율적일 수 있습니다. 성공적인 Figma Make 활용을 위해서는 디자이너의 명확한 시각적 비전과 이를 논리적으로 전달하는 프롬프트 엔지니어링 역량이 결합되어야 합니다. 한 번에 완벽한 결과를 기대하기보다는 초기 생성물을 기반으로 수십 개의 미세 조정 프롬프트를 거치며 완성도를 높여가는 반복적(Iterative) 프로세스를 수용할 때 가장 강력한 결과물을 얻을 수 있습니다.