2024년 개발 연대기: 실시간 멀티모달 AI와 업데이트 한 번의 세계적 파장
GPT-4o, React 19, EU AI Act, xz Utils 공급망 공격 시도, CrowdStrike 장애와 국내 AI 기본법 국회 통과로 2024년의 개발 흐름을 살펴봅니다.
2024년의 AI는 text를 주고받는 순서를 넘어 음성·image·video를 하나의 model이 실시간에 가깝게 처리하는 방향으로 움직였다. GPT-4o는 audio, vision과 text를 함께 다루는 ‘omni’ model로 공개됐다. 개발자는 model capability만이 아니라 지연 시간, streaming, 대화 중 interruption과 사람의 목소리·얼굴 같은 민감 data를 설계해야 했다.
web 개발에서는 React 19가 4월 release candidate를 거쳐 12월 안정판으로 나왔다. form mutation과 optimistic UI를 Actions라는 흐름으로 묶고 Server Components를 안정된 application model에 포함했다. 다만 framework가 Server Components를 구현하는 내부 API는 여전히 version 고정이 필요한 부분이 있었다.
한편 xz Utils backdoor 시도와 CrowdStrike의 잘못된 content update는 software supply chain의 서로 다른 위험을 보여줬다. 하나는 신뢰를 쌓아 upstream project에 악성 code를 심으려 한 공격이었고, 다른 하나는 정상 vendor의 검증 결함이 수많은 Windows system을 동시에 멈춘 사고였다. code의 출처와 update의 rollout 방식이 모두 resilience의 일부가 됐다.
2024년을 보여주는 장면
| 분야 | 주요 변화 | 개발자에게 생긴 의미 |
|---|---|---|
| multimodal AI | GPT-4o 공개 | text·vision·audio를 낮은 latency의 하나의 interaction으로 처리 |
| web UI | React 19 안정판 | async Action, optimistic state와 Server Components 지원을 정식화 |
| AI 규제 | EU AI Act 발효 | 위험 수준과 역할에 따라 AI provider·deployer의 의무를 단계 적용 |
| 공급망 보안 | xz Utils backdoor 발견 | maintainer 신뢰, release artifact와 build provenance 검증의 중요성 부각 |
| 운영 장애 | CrowdStrike update 사고 | security agent update에도 canary·rollback·recovery path가 필요 |
| 국내 제도 | AI 기본법 국회 통과 | AI 산업 진흥과 고영향·생성형 AI 투명성 의무의 법적 기반 마련 |
GPT-4o, text·vision·audio를 하나의 model로
OpenAI는 5월 13일 GPT-4o를 발표했다. o는 omni를 뜻하며 text, audio, image와 video input을 받아 text, audio와 image를 output으로 생성하도록 설계됐다. 음성 input에 최소 232ms, 평균 320ms로 응답할 수 있다고 발표해 사람 대화에 가까운 latency를 목표로 했다.
기존 ChatGPT voice mode는 음성을 text로 변환하고 language model이 답한 text를 다시 음성으로 바꾸는 여러 model pipeline이었다. GPT-4o는 audio를 포함한 input과 output을 end-to-end로 처리해 억양, 속도와 배경음 같은 정보를 잃지 않고 반응할 가능성을 넓혔다.
그러나 발표 demo와 실제 제공 범위를 구분해야 한다. 5월에는 text와 image capability가 ChatGPT와 API에 먼저 rollout됐고 새 음성 기능은 safety test를 거쳐 제한적으로 제공됐다. 발표 당일 모든 multimodal output API가 일반 이용 가능했던 것은 아니다.
실시간 AI application은 request-response API와 다른 engineering을 요구했다. audio stream을 작은 chunk로 보내고 partial output을 재생하며 사용자가 말을 끊으면 generation을 취소해야 했다. network jitter, echo cancellation과 turn detection이 model quality만큼 경험을 좌우했다.
음성과 camera data는 biometric·생활 공간 정보를 포함할 수 있다. 녹음·보관·model 개선 사용 여부에 대한 명확한 consent와 retention, access control이 필요했다. 사람처럼 빠르게 반응하는 interface일수록 이용자가 model을 사람으로 과신하거나 합성 voice를 악용할 위험도 커졌다.
React 19, data mutation을 UI 상태와 연결하다
React 팀은 4월 25일 React 19 release candidate를 공개하고 12월 5일 안정판을 npm에 배포했다. 2024년 기록에서는 RC 발표와 stable release를 구분해야 한다.
React 19의 Actions는 asynchronous mutation의 pending state, error와 optimistic update를 연결했다. <form action={fn}>, useActionState, useFormStatus와 useOptimistic으로 제출 중 UI와 결과 반영을 일관되게 다룰 수 있었다.
function LikeButton({ likes, saveLike }) {
const [optimisticLikes, addOptimisticLike] = useOptimistic(
likes,
(current) => current + 1
);
async function action() {
addOptimisticLike();
await saveLike();
}
return (
<form action={action}>
<button>{optimisticLikes}명이 좋아합니다</button>
</form>
);
}
새 use API는 render 중 Promise나 context를 읽고 Suspense와 연결했다. function component는 ref를 prop으로 받을 수 있었고 metadata, stylesheet와 resource preload 지원도 강화됐다.
React Server Components와 Server Actions도 React 19의 안정 feature set에 포함됐다. 그러나 직접 bundler integration을 만드는 내부 API는 semantic versioning으로 완전히 안정화되지 않아 framework 개발자는 특정 React version을 고정해야 했다. application developer가 쓰는 model의 안정과 tool author가 의존하는 protocol의 안정은 달랐다.
EU AI Act, AI 위험을 법적 의무로 분류하다
유럽연합 이사회는 5월 21일 AI Act에 최종 승인했고 법은 8월 1일 발효됐다. AI system을 unacceptable, high-risk와 제한적 위험 등으로 나누고 provider, deployer, importer와 distributor의 역할에 따라 의무를 부과하는 risk-based framework였다.
금지되는 일부 사용, high-risk system의 risk management·data governance·logging·human oversight, chatbot과 synthetic content의 transparency, general-purpose AI model provider의 documentation과 copyright policy 등이 포함됐다. 유럽연합 밖에서 만든 service도 EU 시장에 제공하거나 EU 안에서 output이 사용되는 조건에 따라 적용될 수 있었다.
발효와 전면 적용은 같은 날이 아니었다. 금지 행위와 AI literacy 의무, general-purpose AI 규칙, high-risk system 의무가 수개월에서 수년에 걸쳐 단계적으로 적용되도록 했다. 2024년에 모든 조항이 즉시 집행됐다고 쓰면 잘못이다.
개발 조직은 자신이 model provider인지 기존 model을 사용한 deployer인지, application이 high-risk 영역에 해당하는지부터 분류해야 했다. training·evaluation data의 출처, model limitation, incident와 human override를 문서화하는 능력이 compliance와 product quality의 공통 기반이 됐다.
xz Utils, 오래 쌓은 신뢰를 악용한 공급망 공격 시도
3월 29일 PostgreSQL 개발자 Andres Freund는 일부 Linux distribution의 SSH login이 비정상적으로 CPU를 사용하고 느려지는 현상을 추적하다 xz Utils 5.6.0과 5.6.1의 backdoor를 발견해 oss-security에 공개했다. CVE-2024-3094가 부여됐다.
악성 동작은 source repository의 눈에 잘 띄는 code 한 줄이 아니었다. release tarball에 포함된 test file과 복잡한 build script가 특정 Linux build 환경에서 liblzma를 변조했고, systemd를 통해 OpenSSH가 libsystemd와 연결된 distribution에서 authentication 경로에 영향을 줄 수 있었다.
공격자는 수년에 걸쳐 project에 기여하고 maintainer 역할을 얻은 뒤 악성 release를 준비한 것으로 조사됐다. 우연한 performance anomaly와 깊은 분석으로 stable distribution에 널리 퍼지기 전에 발견됐지만, rolling·testing distribution 일부는 이미 package를 배포했다.
사건은 repository tag와 배포 tarball이 동일한 source에서 재현되는지, binary가 선언된 source로부터 reproducibly build됐는지 확인할 필요를 보여줬다. maintainer 한 명에게 review와 release 권한이 집중되는 구조, 사회공학적 압박과 burnout도 technical control과 함께 다뤄야 했다.
CrowdStrike 장애, 보안 update가 만든 전 세계의 동시 실패
7월 19일 CrowdStrike는 Windows용 Falcon sensor에 Rapid Response Content update를 배포했다. 특정 Channel File 291의 configuration data가 sensor의 Content Interpreter에서 out-of-bounds memory read를 유발했고 Windows host가 blue screen과 reboot loop에 빠졌다. CrowdStrike는 cyberattack이 아니라 update defect라고 밝혔다.
security sensor는 kernel과 가까운 높은 권한에서 작동하고 수많은 endpoint가 짧은 시간에 update를 받는다. 공격을 빨리 탐지하기 위한 신속한 content 배포 구조가 defect도 전 세계에 빠르게 전달하는 경로가 됐다. 항공, 병원, 금융과 방송 등 Windows 기반 업무가 광범위하게 중단됐다.
문제 update는 약 78분 뒤 교체됐지만 이미 boot loop에 빠진 device는 network를 통해 자동 복구하기 어려웠다. safe mode 진입과 file 삭제, recovery key 입력 같은 현장 조치가 필요해 중앙 update의 속도와 endpoint recovery의 속도가 크게 달랐다.
사후 분석은 template type과 input field 수가 맞지 않았는데 validator가 이를 발견하지 못했고 runtime bounds check도 충분하지 않았다고 설명했다. CrowdStrike는 validation 강화, 단계적 deployment, customer가 update channel과 rollout을 더 통제하는 방안을 제시했다.
이 사고는 canary rollout이 application server에만 필요한 것이 아님을 보여줬다. security content와 configuration도 representative device에서 관찰한 뒤 ring별로 확대하고, health metric이 나빠지면 자동 중단해야 한다. endpoint가 boot하지 못해도 실행 가능한 out-of-band recovery와 tested runbook이 필요하다.
국내: AI 기본법은 통과됐지만 아직 시행 전이었다
국회는 12월 26일 ‘인공지능 발전과 신뢰 기반 조성 등에 관한 기본법’ 제정안을 통과시켰다. AI 산업 육성과 국가 차원의 기본계획, 연구개발·data center 지원과 함께 고영향 AI와 생성형 AI의 transparency·safety 의무를 규정하는 법적 기반이었다.
사업자는 이용자에게 AI를 이용한 product나 service임을 알리고, 실제와 구분하기 어려운 synthetic output에는 표시해야 하는 의무를 준비해야 했다. 사람의 생명·안전과 기본권에 중대한 영향을 줄 수 있는 고영향 AI에는 risk management와 설명·human oversight 등 더 강한 요구가 예정됐다.
그러나 2024년에는 국회 의결까지만 이뤄졌다. 법률은 2025년 1월 21일 공포됐고 1년의 유예를 거쳐 2026년 1월 22일 시행되는 일정이었다. 하위 법령과 구체적 기준도 준비가 필요했으므로 2024년 국내 AI service가 이미 이 법의 모든 의무를 적용받았다고 서술해서는 안 된다.
개발 조직에는 model과 application inventory, 고영향 여부 판단, training·evaluation 기록, synthetic content 표시와 이용자 안내를 준비할 시간이 주어졌다. 진흥과 규제를 함께 둔 법의 실제 영향은 시행령·guideline과 집행 과정에서 구체화될 문제였다.
2024년의 의미
2024년의 AI는 더 많은 감각과 더 짧은 latency로 사람의 일상 interface에 가까워졌다. React 19도 server와 client, data mutation과 UI feedback의 경계를 framework 수준에서 다시 묶었다. 기술이 더 자연스러워질수록 내부 동작과 실패를 사용자에게 설명하는 책임은 오히려 커졌다.
EU AI Act의 발효와 국내 AI 기본법의 국회 통과는 model 개발과 배포가 기술팀만의 결정이 아닌 법적 lifecycle에 들어갔음을 보여줬다. 두 법 모두 발표·발효·단계별 적용 시점을 구분해야 하며 역할과 위험 수준에 따라 요구가 달랐다.
xz backdoor와 CrowdStrike 장애는 서로 다른 공급망 위험이 같은 결론으로 이어짐을 보여줬다. 누가 만든 artifact인지 검증하고, 정상 update도 작은 범위에서 시작하며, 실패했을 때 update channel 밖에서 복구할 수 있어야 한다. 2025년에는 AI가 답변을 넘어 여러 tool을 연속으로 사용하는 agent로 발전하고, 표준화된 context·tool 연결 protocol과 reasoning model이 개발 workflow를 다시 바꾼다.
참고 자료
- OpenAI, Hello GPT-4o
- React, React v19
- Council of the European Union, Artificial intelligence act: Council gives final green light
- European Commission, AI Act enters into force
- oss-security, Backdoor in upstream xz/liblzma leading to ssh server compromise
- CrowdStrike, Preliminary Post Incident Review
- CrowdStrike, Root Cause Analysis: Channel File 291
- 과학기술정보통신부, AI 기본법 국회 본회의 의결