Kanana-2 개발기 (2): 개선된 post-training recipe를 중심으로 - tech.kakao.com (새 탭에서 열림)

카카오는 차세대 언어모델 Kanana-2를 공개하며, 단순한 대화형 AI를 넘어 에이전트 환경에 최적화된 성능을 구현하기 위한 고도화된 Post-training 레시피를 적용했습니다. 이번 모델은 Pre-training과 Post-training 사이의 'Mid-training' 단계를 도입하여 추론 능력을 극대화하는 동시에, 한국어 성능 저하 문제를 해결하기 위해 기존 학습 데이터를 재학습시키는 전략을 사용했습니다. 결과적으로 Kanana-2는 도구 호출(Tool Calling)과 복잡한 지시 이행 능력에서 비약적인 발전을 이루었으며, 특히 Thinking 모델은 고난도 수학 및 코딩 영역에서 글로벌 수준의 성능을 입증했습니다. ### 성능의 가교 역할을 하는 Mid-training * **도입 배경**: 일반적인 사전 학습(Pre-training)만으로는 복잡한 추론이나 도구 사용 능력을 갖추기 어렵기 때문에, 본격적인 미세 조정 전 단계로서 모델의 잠재력을 끌어올리는 중간 단계를 설계했습니다. * **데이터 구성**: 최신 고성능 모델에서 추출한 200B 규모의 고품질 영어 추론 데이터와 수학, 코드 데이터를 집중적으로 학습시켰습니다. * **치명적 망각(Catastrophic Forgetting) 방지**: 영어 추론 데이터 학습 시 한국어 성능이 하락하는 문제를 방지하고자, 사전 학습 데이터 중 한국어 데이터를 포함한 50B 토큰을 일정 비율로 섞어 학습(Replay 전략)함으로써 언어 균형을 유지했습니다. * **효과**: Mid-training을 거친 모델은 기본 모델 대비 수학(MATH) 및 코딩(HumanEval) 벤치마크에서 유의미한 향상을 보였으며, 이후 Instruct 학습 시 더 빠른 수렴 속도와 높은 최종 성능을 나타냈습니다. ### 에이전트 능력을 강화한 Instruct 모델 * **SFT 전략의 최적화**: 기존 Kanana-1.5 데이터셋에 Nemotron 등 오픈소스 고품질 데이터를 단순히 교체하기보다 추가로 통합(Supplementation)했을 때, 전반적인 성능과 지시 이행 능력의 균형이 가장 잘 유지됨을 확인했습니다. * **Agentic AI 역량**: 실질적인 도구 활용을 위해 단일·다중·병렬 도구 호출 능력을 강화했으며, 답변의 길이, 언어 설정, 특정 단어 제외 등 복잡한 제약 조건을 준수하는 지시 이행 능력을 고도화했습니다. * **Parallel RL 파이프라인**: 대화 스타일과 선호도를 학습하는 DPO(Direct Preference Optimization)와 객관적인 정답이 존재하는 추론/코딩 성능을 높이는 PPO(Proximal Policy Optimization)를 병렬로 적용하여 효율적인 학습 구조를 구축했습니다. * **신뢰성 개선**: RL 단계 이후 KTO(Kahneman-Tversky Optimization) 기반의 Calibration Tuning을 추가하여 모델 답변의 신뢰도를 높이고 환각 현상을 줄였습니다. ### 추론에 특화된 Thinking 모델 * **CoT 기반 학습**: 모델이 문제 해결 과정을 단계별로 사고하는 '사고의 사슬(Chain-of-Thought)'을 학습하도록 SFT 데이터를 구성했습니다. * **Rule-based RL**: 수학과 코딩처럼 정답이 명확한 도메인에 대해 규칙 기반 보상(Reward) 모델을 적용하여, 모델 스스로 더 나은 추론 경로를 탐색하고 검증하도록 유도했습니다. * **성능 도약**: Thinking 모델은 AIME25 벤치마크에서 기본 모델(9.21) 대비 약 5배 향상된 50.0점을 기록했으며, 실시간 코딩 테스트인 LiveCodeBench에서도 글로벌 수준의 경쟁력을 확보했습니다. 이번 Kanana-2 개발 과정은 대규모 추론 데이터 주입 시 발생하는 언어적 편향을 '사전 데이터 리플레이'로 해결하고, DPO와 PPO를 병렬로 활용하여 효율성을 극대화한 사례로 평가됩니다. 복잡한 추론과 도구 활용이 필요한 에이전트 서비스를 기획 중이라면, 단순 Instruct 모델보다 Mid-training을 통해 기초 체력을 다진 후 Thinking SFT가 적용된 모델을 활용하는 것이 더욱 안정적인 성능을 기대할 수 있는 방법입니다.

* Option (새 탭에서 열림)

페이스북 릴스(Facebook Reels)는 단순한 '좋아요'나 시청 시간 같은 지표를 넘어, 사용자 피드백을 직접 활용하여 개인화된 추천 시스템의 성능을 대폭 개선했습니다. 새롭게 도입된 UTIS(User True Interest Survey) 모델은 사용자의 실제 관심사를 정밀하게 파악함으로써 니치(Niche)한 고품질 콘텐츠의 노출을 늘리고 사용자의 만족도와 유지율을 높이는 데 성공했습니다. 결과적으로 이번 연구는 암묵적인 행동 데이터와 명시적인 사용자 설문을 결합했을 때 추천 시스템의 장기적인 가치가 어떻게 극대화될 수 있는지를 보여줍니다. **기존 행동 지표의 한계와 진정한 관심사 측정** * 기존의 추천 시스템은 시청 시간이나 공유와 같은 행동 신호에 의존하지만, 이러한 데이터는 노이즈가 많고 사용자의 장기적인 만족도를 완전히 반영하지 못하는 한계가 있습니다. * 조사 결과, 기존의 휴리스틱 기반 관심사 파악 방식은 실제 사용자의 관심사를 식별하는 데 있어 정밀도가 48.3%에 불과한 것으로 나타났습니다. * 페이스북은 단순한 주제 정합성을 넘어 오디오, 제작 스타일, 분위기 등 사용자가 체감하는 다양한 차원을 측정하기 위해 대규모 실시간 설문을 피드 내에 도입했습니다. **UTIS(User True Interest Survey) 모델 프레임워크** * 매일 무작위로 선정된 사용자에게 "이 영상이 당신의 관심사와 얼마나 일치합니까?"라는 질문을 1~5점 척도로 제시하여 실시간 피드백을 수집합니다. * 수집된 설문 데이터는 노이즈를 줄이기 위해 이진화(Binarized) 처리를 거치며, 샘플링 편향을 보정하기 위해 가중치를 적용하여 학습 데이터셋으로 구축됩니다. * 메인 랭킹 모델의 예측값을 입력 피처로 사용하는 경량화된 '인지 레이어(Perception Layer)'를 설계하여, 희소한 설문 데이터를 전체 추천 시스템에 일반화할 수 있도록 구현했습니다. **추천 시스템 파이프라인으로의 통합** * **지연 단계 랭킹(Late Stage Ranking, LSR):** UTIS 모델의 점수를 최종 랭킹 공식의 추가 피처로 투입하여, 관심사 일치도가 높은 영상에는 가산점을 주고 낮은 영상은 순위를 낮추는 정밀 조정을 수행합니다. * **초기 단계 랭킹(Retrieval):** 설문 데이터를 집계하여 사용자의 진정한 관심사 프로필을 재구축하고, 이를 기반으로 후보군을 추출합니다. 또한 지식 증류(Knowledge Distillation) 기법을 활용해 LSR의 UTIS 예측값을 검색 모델 학습에 반영합니다. * 이러한 다단계 통합을 통해 단순 인기 기반의 저품질 콘텐츠 추천은 줄이고, 사용자 개인에게 최적화된 고품질 니치 콘텐츠의 비중을 높였습니다. **성과 및 실용적 함의** * UTIS 모델 도입 이후 리텐션(재방문율) 지표가 유의미하게 개선되었으며 좋아요, 공유, 팔로우와 같은 능동적 참여율도 상승했습니다. * 시청 시간만을 최적화할 때 발생할 수 있는 '저품질 대중 콘텐츠 도배' 문제를 해결하고, 장기적인 플랫폼 건강도를 높이는 결과를 얻었습니다. * 이번 사례는 대규모 추천 시스템을 운영할 때 사용자 행동 데이터(Implicit)와 직접적인 피드백(Explicit)을 결합한 '인지 모델'을 구축하는 것이 정교한 개인화를 위해 필수적임을 시사합니다.

건강 인사이트의 활용: 스마트 (새 탭에서 열림)

구글 연구팀은 대규모 검증 연구를 통해 스마트워치가 보행 지표를 정밀하게 추정할 수 있는 매우 신뢰할 수 있는 플랫폼임을 입증했습니다. 이 연구는 기존의 고가 실험 장비나 스마트폰 위치의 제약에서 벗어나, 손목 위 기기만으로 보행 속도와 보폭 등 복합적인 시공간적 보행 지표를 연속적으로 모니터링할 수 있는 기술적 기반을 마련했습니다. 결과적으로 스마트워치는 스마트폰과 대등한 수준의 정확도를 보여주며 비침습적인 건강 관리 및 질병 모니터링 도구로서의 가능성을 확인했습니다. **손목 데이터를 위한 딥러닝 모델 설계** * **다중 출력 TCN 모델:** 기존 연구들이 시점 추정 후 계산 과정을 거치는 것과 달리, 시계열 컨볼루션 네트워크(TCN) 기반의 다중 출력(Multi-head) 모델을 사용하여 모든 보행 지표를 직접 추정합니다. * **입력 데이터 및 전처리:** 사용자의 키(신장) 정보와 픽셀 워치에서 수집한 50Hz 샘플링 속도의 3축 가속도계 및 3축 자이로스코프(IMU) 신호를 결합하여 입력값으로 사용합니다. * **추정 지표:** 보행 속도(Gait speed), 양발 지지 시간(Double support time)과 같은 양측성 지표와 보폭(Step length), 유각기 시간(Swing time), 입각기 시간(Stance time) 등 좌우 각각의 단측성 지표를 동시에 산출합니다. * **오차 최적화:** 서로 다른 단위를 가진 다양한 지표들의 상대적 정확도를 높이기 위해 평균 절대 백분율 오차(MAPE)를 손실 함수로 사용하여 모델을 최적화했습니다. **대규모 임상 연구 및 엄격한 검증** * **방대한 데이터셋:** 미국과 일본의 246명 참여자로부터 수집한 약 7만 개의 보행 세그먼트를 활용해 모델의 성능을 검증했습니다. * **기준 장비(Ground Truth):** 실험실 등급의 보행 분석 시스템인 'Zeno Gait Walkway'를 기준점으로 삼아 스마트워치 추정값의 정확도를 비교했습니다. * **다양한 보행 시나리오:** 6분 걷기 테스트, 빠른 걸음뿐만 아니라 무릎 보조기를 착용하여 인위적으로 비대칭 보행을 유도하는 등 실제 환경에서 발생할 수 있는 다양한 보행 패턴을 포함했습니다. * **교차 검증:** 데이터 누수를 방지하기 위해 특정 참가자의 데이터가 훈련과 테스트에 동시에 포함되지 않도록 5-겹 교차 검증(5-fold cross-validation) 전략을 채택했습니다. **주요 연구 결과 및 성능 분석** * **높은 신뢰도 및 타당성:** 보행 속도, 보폭, 유각기/입각기 시간 등 주요 지표에서 피어슨 상관계수(r)와 내적 상관계수(ICC) 모두 0.80 이상의 우수한 수치를 기록했습니다. * **스마트폰과의 성능 비교:** 스마트폰을 앞뒤 주머니에 넣었을 때의 결과와 비교했을 때, 모든 보행 지표에서 통계적으로 유의미한 차이가 없음을 확인했습니다(p > 0.05). * **양발 지지 시간 측정:** 추적이 까다로운 양발 지지 시간 지표에서도 0.56~0.60의 수용 가능한 신뢰도를 보이며, 손목 기기만으로도 복합적인 보행 분석이 가능함을 보여주었습니다. 이 연구 결과는 스마트워치가 신경계 질환이나 근골격계 상태의 진행 상황을 모니터링하는 데 있어 스마트폰보다 더 실용적이고 일관된 플랫폼이 될 수 있음을 시사합니다. 일상적인 활동 중에도 정확한 보행 데이터를 수집할 수 있으므로, 의료진과 사용자는 임상 방문 사이의 공백 기간 동안 발생하는 건강 변화를 더욱 정밀하게 파악할 수 있을 것입니다.

엔터프라이즈 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 서비스의 핵심은 모델의 지능을 믿고 모든 데이터를 던져주는 것이 아니라, 모델이 가장 똑똑하게 판단할 수 있도록 최적의 정보만 정교하게 큐레이션하여 전달하는 설계 능력에 있습니다. 특히 복잡한 비즈니스 로직이나 사내 고유 지식을 반영해야 할 때는 시스템 프롬프트를 비대하게 만드는 대신, 도구 메시지나 동적 컨텍스트 주입 기술을 활용해 모델의 판단 체계를 보호하는 것이 실질적인 해결책이 됩니다.

FE News 26년 1월 소식을 전해드립니다! (새 탭에서 열림)

2026년 1월 FE News는 프론트엔드 생태계의 핵심 축으로 자리 잡은 React Server Components(RSC)의 내부 동작 원리와 브라우저 환경에서 급격히 성장 중인 클라이언트 사이드 AI 기술을 집중적으로 조명합니다. 특히 프레임워크의 복잡한 데이터 흐름을 시각화하는 도구와 온디바이스 AI 추론 기술의 발전은 웹 개발자가 단순히 UI를 구현하는 것을 넘어 시스템 설계와 모델 최적화 영역까지 고민해야 함을 시사합니다. 결론적으로 표준화된 디자인 시스템과 AI의 결합이 마크업 자동화를 가속화하며 프론트엔드 개발 워크플로우에 근본적인 변화를 가져오고 있습니다. **React Server Components(RSC) 시각화와 디버깅** * Dan Abramov가 공개한 'RSC Explorer'는 RSC 프로토콜의 스트림 데이터를 단계별로 재생하고 분석할 수 있는 시각화 기능을 제공합니다. * 서버, 클라이언트, Flight, Preview 등 4가지 패널을 통해 데이터 흐름을 한눈에 파악할 수 있으며, 실제 React의 reader/writer를 사용하여 프로토콜과 동일한 출력 결과를 보여줍니다. * Suspense 스트리밍, Server Actions, Router refresh 등 프레임워크 내부의 복잡한 동작을 이해하고 디버깅하는 교육 자료로 활용 가치가 높습니다. **클라이언트 사이드 AI와 에이전트 기술의 부상** * AI 추론의 중심이 서버 호출에서 브라우저 내 로컬 실행으로 이동하고 있으며, WebGPU와 WebNN을 활용한 온디바이스 AI 구축 방법이 주요 화두로 떠올랐습니다. * Transformers.js를 이용해 100% 로컬 환경에서 ML 모델을 실행하거나, webMCP를 통해 웹 사이트 기능을 브라우저 에이전트가 직접 사용할 수 있는 도구로 정의하는 기술이 소개되었습니다. * Jeff Dean의 강연을 통해 AI가 단순한 기능 추가를 넘어 제품의 UX와 시스템 워크플로 전체를 바꾸는 핵심 동력임을 확인할 수 있습니다. **디자인 시스템 기반의 마크업 자동화 사례** * Figma Code Connect와 AI 인스트럭션을 결합하여 디자인 시스템의 토큰과 컴포넌트 구조를 학습시키고, 이를 통해 프론트엔드 마크업을 자동 생성하는 실무 경험을 공유합니다. * 디자인 시스템의 문서화와 표준화 수준이 높을수록 AI를 활용한 코드 생성의 효율이 극대화된다는 인사이트를 제공합니다. * 다만 복잡한 레이아웃이나 반응형 처리에 있어서는 여전히 사람의 개입이 필요하며, AI는 개발의 시작 단계에서 생산성을 높여주는 보조 도구로서 기능합니다. **AI 연구의 여정과 미래 가치 탐색** * DeepMind의 AlphaFold 개발 과정과 인공 일반 지능(AGI)을 향한 탐구 과정을 담은 다큐멘터리 'The Thinking Game'을 통해 AI 기술의 근본적인 발전 궤적을 조명합니다. * 이러한 흐름은 프론트엔드 엔지니어들에게 AI 기술을 제품에 어떻게 녹여낼 것인지에 대한 철학적인 고민과 기술적 영감을 동시에 제공합니다. 프론트엔드 개발자들은 이제 RSC의 내부 프로토콜을 깊이 있게 이해하고, WebGPU 기반의 클라이언트 사이드 AI를 제품에 통합하는 역량을 갖추어야 합니다. 특히 AI를 통한 개발 자동화의 혜택을 누리기 위해서는 사내 디자인 시스템의 표준화와 문서화를 높은 수준으로 유지하는 것이 무엇보다 중요합니다.

StyleX를 활용한 대 (새 탭에서 열림)

메타는 대규모 코드베이스에서 발생하는 CSS 관리의 어려움을 해결하기 위해 오픈 소스 스타일링 시스템인 StyleX를 개발하여 표준으로 운용하고 있습니다. StyleX는 CSS-in-JS의 편리한 개발 경험과 정적 CSS의 뛰어난 성능을 결합하여, 원자적(Atomic) 스타일링을 통한 번들 크기 최적화와 단순한 API 구조를 동시에 제공합니다. 현재 페이스북, 인스타그램 등 메타의 주요 서비스는 물론 피그마, 스노우플레이크와 같은 외부 대형 기술 기업들에서도 표준 시스템으로 채택되어 그 효용성을 입증하고 있습니다. **StyleX의 핵심 기술적 접근** * **하이브리드 아키텍처:** 런타임 오버헤드가 적은 CSS-in-JS의 사용성을 유지하면서도, 최종 결과물은 정적인 CSS 파일로 추출되어 브라우저 성능을 최적화합니다. * **원자적(Atomic) 스타일링:** 스타일 정의를 최소 단위로 쪼개어 관리하며, 중복된 정의를 제거하는 디두플리케이션(Deduplication) 과정을 통해 웹 사이트의 전체 번들 크기를 효과적으로 줄입니다. * **확장성 있는 API:** 대규모 개발 팀이 협업할 때 일관된 스타일 규칙을 적용할 수 있도록 설계되었으며, 복잡한 UI 구성 요소에서도 성능 저하 없이 스타일을 적용할 수 있습니다. **메타 내부 및 외부 생태계의 도입 현황** * **글로벌 서비스의 표준화:** 페이스북, 인스타그램, 왓츠앱, 메신저, 스레드 등 메타의 모든 주요 플랫폼에서 표준 스타일링 라이브러리로 사용되고 있습니다. * **업계 전반의 확산:** 메타 외부에서도 기술적 완성도를 인정받아 피그마(Figma)와 스노우플레이크(Snowflake) 같은 기업들이 자사 시스템에 StyleX를 도입하여 운영 중입니다. * **오픈 소스 시너지:** 프로젝트 메인테이너들은 외부 기업 및 커뮤니티와의 상호작용을 통해 프로젝트의 완성도를 높이고 있으며, 이는 기술적 발전을 가속화하는 기폭제 역할을 하고 있습니다. **실무적 가치와 권장 사항** StyleX는 대규모 웹 애플리케이션을 구축할 때 성능과 유지보수성 사이의 타협점을 찾는 팀에게 강력한 해결책이 됩니다. 특히 프로젝트의 규모가 커짐에 따라 CSS 파일 크기가 비대해지는 문제를 겪고 있다면, 메타의 검증된 원자적 CSS 기법을 제공하는 StyleX 도입을 통해 효율적인 번들링과 일관된 스타일 아키텍처를 구축할 것을 권장합니다.

AWS 주간 소식 (새 탭에서 열림)

2026년 1월 초 AWS의 주요 업데이트 소식을 다루며, 특히 .NET 10 기반의 AWS Lambda 지원과 Amazon ECS의 tmpfs 마운트 기능 등 개발 생산성을 높이는 신규 기능들을 소개합니다. 또한 AWS re:Invent 2025의 핵심 발표 내용과 함께, 클라우드 기술 역량 강화를 위해 6개월간 최대 200달러의 크레딧을 제공하는 프리티어 혜택을 강조하고 있습니다. 최종적으로 개발자와 아키텍트가 최신 클라우드 기술을 실무에 빠르게 적용할 수 있도록 돕는 다양한 가이드와 커뮤니티 소식을 전달합니다. ### 주요 서비스 및 기술 업데이트 - **AWS Lambda .NET 10 지원**: .NET 10 버전의 관리형 런타임 및 컨테이너 베이스 이미지를 공식 지원하며, AWS에서 관리형 런타임에 대한 업데이트를 자동으로 수행합니다. - **Amazon ECS tmpfs 마운트 확장**: AWS Fargate 및 Linux 기반 관리형 인스턴스에서 tmpfs 마운트를 지원하여, 데이터를 디스크에 쓰지 않고 메모리 내 파일 시스템을 활용함으로써 성능을 최적화할 수 있습니다. - **Amazon MQ 인증 방식 강화**: RabbitMQ 브로커에 대해 HTTP 기반 인증 플러그인을 설정할 수 있으며, 상호 TLS(mTLS)를 통한 인증서 기반 인증 방식을 새롭게 지원합니다. - **Amazon MWAA 및 AWS Config 업데이트**: Apache Airflow 2.11 버전을 지원하여 Airflow 3로의 업그레이드 준비를 돕고, AWS Config에서 SageMaker 및 S3 Tables 등 추가적인 리소스 타입을 관리할 수 있게 되었습니다. - **AWS Client VPN 퀵스타트**: VPN 인프라 구성 과정을 단순화하여 상호 인증 모델을 사용한 VPN 엔드포인트를 보다 빠르게 배포할 수 있는 도구를 제공합니다. ### re:Invent 2025 다시보기 및 커뮤니티 인사이트 - **주요 세션 공개**: AWS 공식 유튜브 채널을 통해 re:Invent 2025의 기조연설과 기술 세션 영상이 제공되어 생성형 AI, 데이터베이스 등 최신 기술 트렌드를 학습할 수 있습니다. - **전문가 추천 콘텐츠**: AWS Hero들이 Amazon Bedrock, CDK, S3 Tables, Aurora Limitless Database 등 혁신적인 신규 서비스와 관련된 핵심 세션을 요약하여 추천합니다. - **커뮤니티 블로그**: 전 세계 AWS 전문가들이 작성한 re:Invent 요약 글을 통해 기술적 통찰력을 공유받을 수 있습니다. ### 글로벌 행사 및 교육 기회 - **AWS 프리티어 혜택**: 신규 사용자는 6개월 동안 최대 200달러의 크레딧과 30개 이상의 상시 무료 서비스를 통해 리스크 없이 클라우드 환경을 실험해 볼 수 있습니다. - **향후 이벤트 일정**: 파리, 암스테르담 등에서 열리는 AWS Summit과 바르샤바 AWS Cloud Day 등 글로벌 컨퍼런스가 예정되어 있어 지속적인 네트워킹과 학습이 가능합니다. AI와 클라우드 전문성을 키우고자 한다면 이번에 강화된 AWS 프리티어 혜택을 활용해 .NET 10 런타임이나 신규 VPN 퀵스타트 도구를 직접 실습해 보는 것을 추천합니다. 특히 대규모 데이터 처리가 필요한 워크로드라면 ECS의 tmpfs 마운트 기능을 통해 I/O 성능을 개선할 수 있는 기회를 검토해 보시기 바랍니다.

동적 표면 코드가 양 (새 탭에서 열림)

구글 퀀텀 AI(Google Quantum AI) 연구팀은 기존의 정적 방식에서 벗어나 회로 구조를 유연하게 변경하는 '동적 표면 코드(Dynamic Surface Codes)'를 성공적으로 시연했습니다. 이 방식은 더 적은 수의 커플러를 사용하면서도 리크(leakage)와 같은 상관 오류를 효과적으로 억제하며, 다양한 종류의 양자 게이트를 활용할 수 있는 유연성을 제공합니다. 이번 연구 결과는 하드웨어 설계의 복잡성을 낮추면서도 논리적 큐비트의 안정성을 비약적으로 높일 수 있음을 입증하여 실용적인 양자 컴퓨팅 구현을 위한 새로운 경로를 제시했습니다. **동적 표면 코드와 시공간적 감지 영역의 변화** * 양자 오류 정정(QEC)은 물리적 오류가 논리적 정보에 영향을 주지 않도록 오류를 '감지 영역(detecting region)' 안에 국소화하는 것이 핵심입니다. * 기존의 정적 회로는 매 사이클마다 동일한 물리적 연산과 타일링 구조를 반복하지만, 동적 회로는 매 사이클마다 감지 영역의 타일링 형상을 동적으로 변경합니다. * 이러한 유연성은 특정 큐비트나 커플러가 작동하지 않는 '드롭아웃(dropout)' 상황을 우회하게 해주며, 하드웨어 제약 조건 속에서도 최적의 오류 정정 성능을 유지하게 합니다. **육각형 격자 구조를 통한 하드웨어 설계 최적화** * 기존 사각형 격자 구조는 큐비트당 4개의 커플러가 필요하지만, 동적 회로를 적용하면 큐비트당 3개의 커플러만 사용하는 육각형 격자에서도 QEC를 수행할 수 있습니다. * 구글의 윌로우(Willow) 프로세서에서 실험한 결과, 육각형 코드는 기존 정적 회로와 대등한 수준의 오류 억제 성능(코드 거리 3에서 5로 확장 시 오류율 2.15배 개선)을 보여주었습니다. * 커플러 수를 줄이면 칩 제조 및 제어 복잡도가 낮아지며, 시뮬레이션상으로는 최적화 알고리즘의 효율성이 높아져 오류 억제 인자가 약 15% 향상되는 효과를 거둘 수 있습니다. **리크 오류 억제를 위한 '워킹' 회로와 iSWAP 게이트 활용** * 측정 큐비트의 위치를 매 사이클마다 이동시키는 '워킹(walking)' 방식을 도입하여, 계산 공간을 벗어나는 리크 현상과 상관 오류가 누적되는 것을 방지했습니다. * 표준적인 CZ 게이트 외에도 iSWAP과 같은 비표준적 2-큐비트 얽힘 게이트를 사용하는 동적 회로를 시연함으로써 하드웨어 특성에 맞는 다양한 게이트 선택권을 확보했습니다. * 이러한 기법들은 물리적 큐비트의 결함을 보완하고, 더 정교한 오류 정정 아키텍처를 설계할 수 있는 기술적 토대가 됩니다. 동적 표면 코드는 고정된 하드웨어 구조에 소프트웨어를 맞추는 것이 아니라, 오류 정정 알고리즘에 맞춰 하드웨어 운용 방식을 유연하게 최적화할 수 있음을 보여줍니다. 특히 육각형 격자 구조의 채택은 칩의 배선 복잡도를 획기적으로 줄여주므로, 향후 수천 개 이상의 큐비트를 포함하는 대규모 양자 프로세서를 설계할 때 핵심적인 전략이 될 것으로 권장됩니다.

MedGemma 1.5를 (새 탭에서 열림)

구글 리서치는 의료용 생성형 AI 모델인 MedGemma의 기능을 대폭 강화한 'MedGemma 1.5 4B'와 의료 전문 음성 인식 모델 'MedASR'을 새롭게 공개했습니다. 이번 업데이트는 CT, MRI 등 고차원 의료 영상 분석과 시계열 데이터 처리 능력을 크게 향상시켜 개발자들이 보다 정밀한 의료 보조 애플리케이션을 구축할 수 있도록 돕습니다. 오픈 모델로 제공되는 이 기술들은 연구 및 상업적 목적으로 자유롭게 활용 가능하며, 의료 현장의 디지털 전환을 가속화하는 핵심 도구가 될 것으로 기대됩니다. **MedGemma 1.5의 고차원 의료 영상 처리 역량** * 기존 2차원 이미지를 넘어 CT와 MRI 같은 3차원 볼륨 데이터, 그리고 대용량 병리 조직 슬라이드(Whole-slide histopathology) 분석 기능을 새롭게 지원합니다. * 여러 장의 이미지 슬라이드나 패치를 입력값으로 받아 복합적인 추론이 가능하며, 내부 벤치마크 결과 CT 관련 질환 분류 정확도는 기존 대비 3%, MRI는 14% 향상되었습니다. * 흉부 엑스레이의 시계열 검토(Longitudinal review) 기능을 통해 환자의 과거와 현재 상태 변화를 추적하거나, 특정 해부학적 특징의 위치를 파악하는 로컬라이제이션 기능이 강화되었습니다. * 의료 실험 보고서와 같은 비정형 문서에서 구조화된 데이터를 추출하는 의료 문서 이해 능력이 개선되어 데이터 관리 효율성을 높였습니다. **의료 음성 인식 모델 MedASR과 개발 생태계** * MedASR은 의료 전문 용어와 진단 받아쓰기에 최적화된 자동 음성 인식 모델로, 의료진의 음성을 텍스트로 변환하여 MedGemma의 추론 엔진과 즉시 연동할 수 있습니다. * MedGemma 1.5 4B 모델은 오프라인에서도 실행 가능한 효율적인 크기로 설계되어, 연산 자원이 제한된 환경에서도 높은 성능을 유지하며 유연하게 배포할 수 있습니다. * 구글은 10만 달러 규모의 상금을 건 'MedGemma Impact Challenge' 해커톤을 Kaggle에서 개최하여 전 세계 개발자들이 의료 AI를 창의적으로 활용할 수 있도록 독려하고 있습니다. * 모든 모델은 Hugging Face와 Google Cloud Vertex AI를 통해 제공되어, 개발자가 자신의 유스케이스에 맞춰 모델을 미세 조정하고 대규모 애플리케이션으로 확장하기 용이합니다. 의료 AI 애플리케이션을 개발하려는 엔지니어는 MedGemma 1.5 4B를 시작점으로 삼아 로컬 환경에서 프로토타입을 구축하는 것이 효율적입니다. 특히 MedASR을 활용해 의료진의 구두 기록을 텍스트화하고 이를 MedGemma의 다중 모달 분석 기능과 결합한다면, 실시간 진단 보조 및 임상 의사 결정 지원 분야에서 강력한 경쟁력을 확보할 수 있을 것입니다.

도로 구간 사고 위험 지표로서의 (새 탭에서 열림)

Google 리서치 팀은 안드로이드 오토(Android Auto)를 통해 수집된 급제동 이벤트(HBE)와 실제 도로 구간의 사고 발생률 사이에 강력한 양의 상관관계가 있음을 입증했습니다. 전통적인 사고 데이터는 발생 빈도가 낮아 위험을 파악하는 데 수년이 걸리는 '후행 지표'인 반면, 급제동 데이터는 훨씬 빈번하게 발생하는 '선행 지표'로서 도로 안전을 선제적으로 평가하는 유효한 수단이 될 수 있습니다. 결과적으로 이 연구는 연결된 차량 데이터를 활용해 사고 이력이 부족한 구간에서도 잠재적인 교통사고 위험을 예측할 수 있는 확장 가능한 모델을 제시합니다. **전통적 사고 데이터의 한계와 선행 지표의 필요성** * 기존의 교통안전 평가는 경찰에 보고된 사고 통계에 의존해 왔으나, 이는 사망이나 부상이 발생한 후 측정되는 후행 지표라는 치명적인 단점이 있습니다. * 사고는 통계적으로 드물게 발생하는 사건이기 때문에, 특정 도로 구간의 안전 프로필을 구축할 만큼 충분한 데이터를 확보하는 데 수년이 소요될 수 있습니다. * 연구팀은 이를 보완하기 위해 사고보다 훨씬 자주 발생하며 사고 위험과 직결되는 '급제동 이벤트(HBE)'를 대안 지표로 설정했습니다. HBE는 차량의 전방 감속도가 -3m/s²를 초과하는 회피 기동 사례로 정의됩니다. **HBE 데이터의 높은 밀도와 확장성** * 캘리포니아와 버지니아주의 도로 구간을 분석한 결과, 급제동 이벤트가 관찰된 구간의 수는 실제 사고가 보고된 구간보다 18배나 더 많았습니다. * 사고 데이터는 국지적 도로에서 데이터 공백이 발생하기 쉬운 반면, HBE는 연결된 차량(Android Auto)을 통해 지속적이고 연속적인 데이터 스트림을 제공하여 안전 지도의 빈틈을 효과적으로 메워줍니다. * 고정된 센서가 필요한 '충돌 시간(Time-to-collision)' 측정 방식과 달리, HBE는 차량 자체의 데이터를 활용하므로 도로 네트워크 전체를 분석하는 데 훨씬 경제적이고 효율적입니다. **통계적 검증 및 인프라 요인 분석** * 연구팀은 음이항(Negative Binomial) 회귀 모델을 사용하여 교통량, 도로 길이, 도로 유형(지방도, 간선도로, 고속도로), 경사도, 회전 각도 등 다양한 변수를 통제한 후 분석을 진행했습니다. * 분석 결과, 모든 도로 유형에서 HBE 빈도가 높을수록 실제 사고 발생률도 일관되게 높게 나타나 통계적 유의성이 확인되었습니다. * 또한 고속도로 진입 램프의 존재나 차로 수의 변화와 같은 인프라 요소가 사고 위험을 높인다는 점도 모델을 통해 정량화되었습니다. 특히 램프 구간은 차선 합류를 위한 기동 때문에 사고 위험과 양의 상관관계를 보였습니다. **고위험 병목 구간 식별 사례 연구** * 캘리포니아의 101번과 880번 고속도로가 만나는 합류 지점을 분석한 결과, 해당 구간의 HBE 발생률은 일반적인 고속도로 평균보다 약 70배 높았습니다. * 실제 데이터상으로도 이 구간은 지난 10년 동안 6주마다 한 번꼴로 사고가 발생한 고위험 지역이었습니다. * HBE 신호는 10년간의 사고 리포트가 쌓이기를 기다리지 않고도 해당 구간을 상위 1%의 위험 지역으로 즉각 분류해냈으며, 이는 HBE가 장기적인 사고 이력 없이도 고위험군을 식별하는 신뢰할 수 있는 대리 지표임을 증명합니다. **실용적인 결론 및 추천** 급제동 이벤트를 사고 위험의 신뢰할 수 있는 지표로 활용함으로써, 도로 관리 당국은 더 높은 시공간적 해상도로 도로망의 안전성을 평가할 수 있게 되었습니다. 이러한 방식은 위험 구간을 사전에 파악하여 선제적인 도로 설계 개선이나 안전 조치를 취하는 데 큰 도움을 줄 수 있습니다. 향후 Google은 이 데이터를 'Google Maps Platform' 등을 통해 도로 관리 기관들이 실무에 활용할 수 있도록 지원할 계획입니다.

NeuralGCM, AI를 활용 (새 탭에서 열림)

Google Research가 개발한 NeuralGCM은 물리 기반 모델링과 인공지능을 결합한 하이브리드 대기 모델로, NASA의 위성 관측 데이터를 직접 학습하여 전 지구 강수 시뮬레이션의 정확도를 획기적으로 높였습니다. 이 모델은 기존 물리 모델이나 재분석 데이터 기반 AI 모델이 해결하지 못했던 강수량의 일변화 및 극한 현상을 정밀하게 재현하며, 15일 이내의 중기 예보와 수십 년 단위의 기후 시뮬레이션 모두에서 뛰어난 성능을 입증했습니다. 이는 기상 예측의 복잡성을 해결하고 기후 변화에 대한 인류의 대응력을 높이는 중요한 기술적 진보로 평가받습니다. ## 미세 규모 기상 현상과 강수 예측의 한계 * 강수 현상은 모델의 해상도보다 훨씬 작은 미세한 규모에서 발생하는 구름의 물리적 변화에 의존하기 때문에 전 지구 모델에서 가장 구현하기 까다로운 요소 중 하나입니다. * 구름은 100미터 미만의 단위로 존재하며 빠르게 변화하지만, 기존 기상 모델은 수 킬로미터, 기후 모델은 수십 킬로미터 단위의 해상도를 가집니다. * 기존 방식은 이러한 작은 규모의 프로세스를 '모수화(Parameterization)'라는 근사치 계산에 의존했으나, 이는 극한 현상을 포착하거나 장기적인 정확도를 유지하는 데 한계가 있었습니다. ## 위성 관측 데이터를 활용한 하이브리드 학습 * NeuralGCM은 대규모 유체 역학을 처리하는 '미분 가능한 동역학 코어(Differential Dynamical Core)'와 미세 물리 현상을 학습하는 신경망을 결합한 구조를 가집니다. * 기존 AI 모델들이 물리 모델과 관측치를 결합한 '재분석 데이터'를 학습한 것과 달리, NeuralGCM은 2001년부터 2018년까지의 NASA 위성 강수 관측 데이터(IMERG)를 직접 학습했습니다. * 이를 통해 재분석 데이터가 가진 강수 극값 및 일주기(Diurnal cycle) 표현의 약점을 극복하고, 실제 관측에 더 근접한 물리적 매개변수를 스스로 학습할 수 있게 되었습니다. ## 중기 예보 및 장기 기후 시뮬레이션 성과 * **중기 예보(15일):** 280km 해상도에서 선도적인 수치 예보 모델인 유럽중기예보센터(ECMWF)의 모델보다 더 정확한 강수량 예측 성능을 보여주었습니다. * **극한 현상 재현:** 상위 0.1%에 해당하는 극심한 강수 이벤트를 기존 모델보다 훨씬 더 정밀하게 시뮬레이션하는 데 성공했습니다. * **기후 변동성:** 수십 년 단위의 기후 시뮬레이션에서도 평균 강수량과 열대 지방의 오후 강수 집중 현상과 같은 일별 기상 사이클을 정확하게 포착했습니다. NeuralGCM은 현재 오픈 소스 라이브러리로 제공되고 있어 기상 및 기후 연구자들이 자유롭게 활용할 수 있습니다. 특히 농업 생산성 최적화, 도시의 홍수 대비, 재난 관리와 같이 정밀한 강수 데이터가 필수적인 분야에서 기존 수치 예보 모델을 보완하거나 대체할 수 있는 강력한 도구가 될 것으로 기대됩니다.

수천 개의 API/BATCH 서버를 하나의 설정 체계로 관리하기 (새 탭에서 열림)

토스페이먼츠는 수천 개의 API 서버와 배치 설정을 관리하기 위해 설정을 단순한 텍스트가 아닌 '진화하는 코드'로 정의하여 운영합니다. 복사-붙여넣기식의 중복 설정을 제거하기 위해 오버레이 아키텍처와 템플릿 패턴을 도입했으며, 이를 통해 오타나 설정 오류로 인한 대규모 정산 장애 리스크를 원천 차단합니다. 결과적으로 인프라 설정을 테스트 가능한 영역으로 끌어올려 대규모 하이브리드 클라우드 환경에서도 높은 안정성과 유연성을 확보했습니다. ### 실시간 API 서버: 오버레이와 템플릿의 결합 * **오버레이 아키텍처:** 설정을 `global`, `cluster`, `phase`, `application` 순서의 계층형 구조로 설계하여 하위 계층이 상위 계층의 기본값을 덮어쓰도록 구성했습니다. 이를 통해 공통 설정은 한 번만 정의하고 각 환경에 필요한 차이점만 관리할 수 있습니다. * **템플릿 패턴 도입:** YAML의 단순 오버레이만으로는 해결하기 어려운 긴 문자열(예: JVM 옵션) 내의 특정 값만 수정하기 위해 `{{MAX_HEAP}}`과 같은 변수 치환 방식을 사용합니다. * **동적 설정 주입:** 설정 파일 내부에 파이썬 스크립트를 삽입하여 랜덤 포트 생성이나 외부 API 호출을 통한 동적 값 할당이 가능하며, 클러스터 이름에 따른 조건부 로직을 적용해 복잡한 환경 변수 요구사항을 해결합니다. ### 배치 서버: DSL과 GitOps를 통한 단순화 * **Jenkins 기반의 단순화:** 대규모 정산 데이터를 다루는 배치 환경일수록 단순함이 강력하다는 원칙 아래, Jenkins를 활용하면서도 수동 조작의 단점을 보완하는 방향을 택했습니다. * **Groovy DSL 활용:** Jenkins의 웹 UI를 통한 수동 설정을 배제하고, Groovy 기반의 자체 DSL(Domain Specific Language)을 구축하여 수천 개의 배치 Job을 코드 형태로 관리합니다. * **GitOps 체계:** 모든 배치 설정을 코드 저장소에서 관리하고 CI/CD 파이프라인과 통합함으로써, 개발자가 직접 Jenkins에 접속하지 않고도 표준화된 환경에서 배치 작업을 배포할 수 있도록 개선했습니다. ### 인프라의 코드화와 검증 자동화 * **테스트 가능한 설정:** 설정값에 대한 오타나 논리적 오류를 방지하기 위해 설정 코드에 대한 유닛 테스트를 수행합니다. 이를 통해 수천 개의 설정 중 단 하나의 오타가 치명적인 금융 장애로 이어지는 것을 사전에 방지합니다. * **유연한 확장성:** 고정된 설정 체계에 안주하지 않고, 인프라의 변화와 개발자의 요구사항에 맞춰 설정 인프라 자체가 계속해서 진화할 수 있는 구조를 지향합니다. 단순히 설정 파일을 잘 작성하는 것에 그치지 않고, 인프라 설정을 애플리케이션 코드와 동일한 수준의 설계와 테스트를 거쳐 관리하는 것이 대규모 시스템의 안정성을 보장하는 핵심입니다. 초기에 다소 복잡해 보일 수 있는 오버레이나 DSL 도입은 장기적으로 중복을 제거하고 휴먼 에러를 막는 가장 확실한 투자입니다.

당근의 사용자 행동 로그 관리 플랫폼: 이벤트센터 개발기. 코드로 관리하던 사용자 행동 로그를 플랫폼으로 만든 이유 | by Suyeon Kang | 당근 테크 블로그 | Jan, 2026 | Medium (새 탭에서 열림)

당근은 방대한 사용자 행동 로그를 보다 효율적이고 체계적으로 관리하기 위해 기존의 Git 기반 코드 관리 방식에서 벗어나 UI 중심의 로그 관리 플랫폼인 ‘이벤트센터’를 구축했습니다. 이를 통해 복잡한 JSON 스키마 작성 과정과 수동 리뷰 절차를 자동화하여 데이터 관리 비용을 획기적으로 낮추었으며, 전사적인 로그 컨벤션을 확립해 데이터의 일관성과 분석 편의성을 동시에 확보했습니다. 결과적으로 개발자와 분석가 모두가 데이터 기반의 의사결정에만 집중할 수 있는 환경을 조성하는 데 성공했습니다. **기존 Git 기반 관리 방식의 한계** * **높은 진입장벽:** 새로운 로그 스키마를 추가하기 위해 Spark의 StructType JSON 형식을 직접 코드로 작성해야 했으며, 이는 데이터 엔지니어링 지식이 부족한 구성원에게 큰 부담이 되었습니다. * **비효율적인 프로세스:** 스키마 하나를 추가할 때마다 PR 생성, 데이터 팀의 수동 리뷰, 수정 반복 과정을 거쳐야 했기에 데이터 반영 속도가 느려지는 문제가 발생했습니다. * **일관성 없는 명명 규칙:** 이벤트 이름에 대한 강제적인 컨벤션이 없어 유사한 행동이 서로 다른 이름으로 정의되거나, snake_case와 camelCase가 혼용되는 등 데이터 정합성 관리가 어려웠습니다. **사용자 행동 로그 수집 및 처리 아키텍처** * **실시간 파이프라인:** 모바일 앱 SDK에서 발생한 이벤트는 서버를 거쳐 GCP Pub/Sub으로 전달되며, Dataflow를 통해 유효성 검증, 중복 제거, 데이터 변환(Flatten)이 실시간으로 이루어집니다. * **스키마 기반 자동 테이블 생성:** 이벤트 스키마를 정의하면 BigQuery에 해당 이벤트 전용 테이블이 자동으로 생성되며, JSON 형태의 커스텀 파라미터가 일반 컬럼으로 펼쳐져 저장되어 복잡한 쿼리 없이도 즉시 분석이 가능합니다. * **데이터 신뢰성 확보:** 스트리밍 단계에서의 단기 중복 제거와 배치 단계에서의 시간 윈도우 기반 중복 제거를 병행하여 데이터의 정확도를 극대화했습니다. **이벤트센터를 통한 로그 관리 혁신** * **UI 중심의 스키마 정의:** 코드를 직접 수정하는 대신 웹 인터페이스에서 필드명, 타입, 설명, 오너십 등을 설정할 수 있어 누구나 쉽게 로그를 설계하고 관리할 수 있습니다. * **명격한 컨벤션 적용:** '행동(Action)-서비스(Service)-대상(Object)' 구조의 명명 규칙을 시스템적으로 강제하여 이벤트 검색성을 높이고 중복 정의를 방지했습니다. * **자동화된 유효성 검사:** 스키마 변경 시 발생할 수 있는 오류를 시스템이 사전에 체크하고, 변경 사항을 즉시 데이터 파이프라인에 반영하여 운영 리소스를 최소화했습니다. 데이터의 양이 늘어날수록 로그 관리의 핵심은 '자율성'과 '통제' 사이의 균형을 잡는 것입니다. 당근의 사례처럼 로그 정의 과정을 플랫폼화하고 컨벤션을 시스템으로 강제한다면, 휴먼 에러를 줄이는 동시에 전사 구성원이 데이터라는 공통 언어를 더욱 쉽고 정확하게 사용할 수 있는 환경을 만들 수 있습니다.

디자인 시스템 다시 생각해보기 (새 탭에서 열림)

디자인 시스템은 성장에 따라 경직되기 마련이며, 시스템이 제품 팀의 변화하는 요구사항을 제때 수용하지 못할 경우 팀은 시스템을 우회하거나 파편화된 코드를 생성하게 됩니다. 토스의 디자인 시스템(TDS)은 디자인 시스템을 통제 수단이 아닌 '하나의 제품'으로 정의하고, 수요자의 니즈에 따라 유연하게 대응할 수 있는 설계 구조를 지향합니다. 이를 위해 단순함과 유연함을 동시에 잡을 수 있는 하이브리드 API 전략을 도입하여 일관성과 생산성을 모두 확보하는 해결책을 제시합니다. ### 시스템의 경직성과 파편화 문제 * 조직이 커지고 제품이 다양해지면 기존 시스템의 제약 내에서 해결할 수 없는 UI 요구사항이 빈번하게 발생합니다. * 제품 팀은 빠른 해결을 위해 피그마 컴포넌트를 해제(detach)하거나 라이브러리 코드를 복제(fork)하여 로컬에서 수정해 사용하게 됩니다. * 이러한 우회 방식은 시스템 업데이트와의 연결을 끊어버려 UI 불일치를 초래하고, 장기적으로 디자인 시스템의 핵심 가치를 무너뜨립니다. * 결국 디자인 시스템이 팀의 속도를 늦추는 장애물이 되지 않으려면, 강력한 규칙보다 '우회할 이유를 줄이는 유연한 설계'가 필요합니다. ### 확장성을 고려한 컴포넌트 API 패턴 비교 * **Flat 패턴**: 내부 구조를 숨기고 모든 변형을 props로 처리하는 방식입니다. 사용이 직관적이고 간결하지만, 예외적인 요구사항이 늘어날수록 props가 기하급수적으로 증가하여 유지보수가 어려워집니다. * **Compound 패턴**: 하위 컴포넌트(Header, Body, Footer 등)를 제공하여 사용자가 직접 조합하는 방식입니다. 시스템이 예측하지 못한 레이아웃도 유연하게 구현할 수 있으나, 코드량이 늘어나고 구조에 대한 학습 비용이 발생한다는 단점이 있습니다. * 두 패턴은 상충하는 장단점을 가지고 있으므로, 단순히 하나의 패턴을 강요하는 것은 사용자의 이탈을 막기에 부족합니다. ### TDS의 하이브리드 전략과 Primitive 레이어 * TDS는 단순하고 빈번한 케이스를 위한 **Flat API**와 복잡한 커스텀을 위한 **Compound API**를 동시에 제공합니다. * 사용자는 별도의 커스텀이 필요 없을 때는 간결한 Flat 형식을 선택하고, 세밀한 제어가 필요할 때는 Compound 형식을 선택하여 시스템 내부에서 문제를 해결할 수 있습니다. * 디자인 시스템 팀은 관리 효율을 위해 **Primitive(기초 단위)** 레이어를 먼저 구축합니다. * 내부적으로는 동일한 Primitive 컴포넌트를 공유하면서 외부로 드러나는 API만 두 가지 형태로 노출함으로써, 유지보수 부담을 최소화하면서도 사용자 경험을 극대화합니다. 디자인 시스템은 팀을 가두는 울타리가 아니라 안전하게 안내하는 가드레일이 되어야 합니다. 중앙에서 모든 것을 통제하려 하기보다, 규칙에서 벗어난 예외 상황까지 시스템 안에서 지원할 수 있는 유연한 설계를 갖출 때 진정한 일관성을 유지할 수 있습니다.

코드 품질 개선 기법 28편: 제약 조건에도 상속세가 발생한다 (새 탭에서 열림)

코드의 불변성을 보장하기 위해 설계된 클래스가 상속을 허용할 경우, 자식 클래스에서 해당 제약을 위반함으로써 시스템 전체의 안정성을 해칠 수 있습니다. 특히 `Immutable`이라는 이름을 가진 클래스가 가변적인 자식 클래스를 가질 수 있게 되면 개발자의 의도와 다른 런타임 동작이 발생할 위험이 큽니다. 따라서 특정 제약 조건을 강제하고 싶다면 클래스를 상속 불가능하게 설계하거나, 공통의 '읽기 전용' 인터페이스를 활용하는 구조적 접근이 필요합니다. ### 불변성 보장을 방해하는 상속 구조 * Kotlin의 `IntArray`를 래핑하여 성능과 불변성을 동시에 잡으려는 `ImmutableIntList` 예시를 통해 상속의 위험성을 설명합니다. * 클래스를 상속 가능(`open`)하게 설정하면, `Immutable`이라는 명칭에도 불구하고 이를 상속받아 내부 상태를 변경하는 `MutableIntList`와 같은 자식 클래스가 생성될 수 있습니다. * 외부에서는 `ImmutableIntList` 타입으로 참조하더라도 실제 인덱스 값이 변할 수 있는 객체를 다루게 되어, 불변성을 전제로 한 로직에서 오류가 발생합니다. ### 멤버 오버라이딩을 통한 제약 조건 우회 * 내부 데이터 구조를 `private`이나 `protected`로 보호하더라도, 메서드 오버라이딩을 통해 불변성 제약을 우회할 수 있습니다. * 예를 들어 `get` 연산자를 오버라이딩하여 내부 배열이 아닌 가변적인 외부 필드 값을 반환하도록 재정의하면, 클래스의 핵심 규약인 '불변 데이터 제공'이 깨지게 됩니다. * 범용적인 클래스일수록 예상치 못한 곳에서 잘못된 상속이 발생할 가능성이 높으므로, 어떤 멤버를 노출하고 오버라이딩을 허용할지 엄격하게 제한해야 합니다. ### 가변·불변 객체의 올바른 상속 관계 * 가변 객체가 불변 객체를 상속하면 불변성 제약이 깨지고, 불변 객체가 가변 객체를 상속하면 불필요한 변경 메서드(`add`, `set`)로 인해 런타임 에러가 발생할 수 있습니다. * 가장 이상적인 구조는 가변 객체와 불변 객체가 모두 '읽기 전용(Read-only)' 인터페이스나 클래스를 상속받는 형태입니다. * 가변 객체는 읽기 전용 부모의 메서드 집합을 확장하고, 불변 객체는 읽기 전용 부모의 제약 조건을 확장하는 방식(예: Kotlin의 `List` 구조)이 안전합니다. 특정 제약 조건(불변성 등)이 핵심인 클래스를 설계할 때는 기본적으로 상속을 금지(`final`)하고, 확장이 필요하다면 상속 대신 독립된 타입을 정의하거나 읽기 전용 인터페이스를 통한 계층 분리를 권장합니다.