내가 구독하는 유튜브 채널 중 '노마드 코더 Nomad Coders'가 있다. 기술에 대한 완벽한 이해는 못하더라도 왜 그런 관점이 나왔는가에 대한 도움을 주기에 관심이 있는 주제는 챙겨 보는 편이다. 그리고 이 영상을 봤다.
영상에서 니꼴라스는 AI는 코드를 잘 작성할 수 있지만 문제 정의에서 한계가 있다고 말한다. 그리고 그걸 잘 정의하는 것이 개발자의 역할이라고 한다. 아래는 관련 내용이다.
1. 경쟁 상태(Race Condition) 상황
- 예시: 남은 티켓이 딱 1개인 상황에서 Alice와 Bob이 동시에 '구매' 버튼을 누름.
- 문제의 본질: 수리적 코드(수량 확인 $\rightarrow$ 차감 $\rightarrow$ 주문) 사이에 존재하는 미세한 '시간의 마찰(밀리초 단위의 지연)' 때문에, 두 요청이 동시에 수량을 1로 읽어버려 티켓 1개가 2명에게 중복 판매됨.
니꼴라스의 대응 방법(2가지 상황별 제안)
대응 A [단일 연산일 때]: 원자적 연산(Atomic Operation)
- 방법: 코드가 DB를 두 번 오가며 읽고 쓰는 게 아니라, DB 내부에서 한 번에 처리하도록 문장을 하나로 합침. (UPDATE stock = stock - 1 WHERE id = X AND stock > 0)
- 결과: 수리적으로 순서를 단일화하여 Bob이 틈새로 끼어들 수 있는 '시간의 마찰'을 원천 차단함.
대응 B [여러 복잡한 연산이 얽혀있을 때]: 로우 락 (Row Lock)
- 방법: 쿼리 뒤에 FOR UPDATE를 붙여 Alice의 연산이 끝날 때까지 해당 데이터 행(Row)을 물리적으로 잠가버림.
- 결과: Bob의 요청을 강제로 대기(Wait)시켜 현실의 충돌을 제어함.
2. 부분 쓰기 (Partial Write)
- 예시: 티켓 수량을 1개 줄이는 데는 성공했으나, 그다음 단계인 주문서를 만드는 도중에 서버가 죽거나 데이터베이스 연결이 끊어짐
- 문제의 본질: 연속된 수리적 연산 중 '물리적 환경의 한계(네트워크/서버 다운)'라는 마찰이 발생하여 시스템의 정합성이 깨짐. (티켓 수량은 줄었으나 주문 내역은 없는 상태)
니꼴라스의 대응 방법: 데이터베이스 트랜잭션(Transaction)
- 방법: 관련된 모든 연산을 하나의 '트랜잭션 wrapper'로 감싸 결합함.
- 결과: All or Nothing(전부 성공하거나 아예 취소되거나)의 규칙을 적용. 중간에 마찰(실패)이 생기면 이미 처리된 수량 차감까지 전부 원래대로 되돌리는 롤백(Rollback)을 실행해 시스템의 순수성을 지킴.
3. 멱등성 없음(No Idempotency)
- 예시: Alice(사용자)가 결제 버튼을 눌렀으나 네트워크가 느려 화면이 멈추자, 전송이 실패한 줄 알고 '구매' 버튼을 한 번 더 누름 (또는 앱이 자동으로 재시도함).
- 문제의 본질: 유저의 심리적 불안감이나 네트워크의 불안정성(현실의 마찰) 때문에, 하나의 의도(Intent)가 여러 개의 중복 요청으로 서버에 도달해 유저가 돈을 이중으로 내게 됨.
니꼴라스의 대응 방법: 멱등성 키(Idempotency Key)
- 방법: 프론트엔드에서 최초 요청 시 무작위의 고유 ID(예: ABC123)를 생성해 서버로 보냄. 서버는 이 ID와 처리 결과를 메모리에 기억함.
- 결과: 똑같은 ID(ABC123)로 두 번째 요청이 들어오면, 서버는 실제 결제 로직을 다시 실행하지 않고 기존에 저장해 둔 성공 결과만 그대로 복사해서 유저에게 반환(Cache)함. 버튼을 1번 누르든 50번 누르든 수리적 결과는 단 1번만 일어나도록 보장함.
그런데 난 이 영상을 보면서 든 생각은... 하나였다.
'어... 이거 결국 선착순의 문제 아닌가?'
난 갑자기 묘한 생각이 들었다. 개발 영역에서 AI의 코드 생성 능력은 인간보다 뛰어나고 또 그로 인해 개발자의 개발 업무가 대체된다는 걸 워낙 미디어를 통해 들어왔기에 인간이 AI에게 현실 문제를 재정의하고 설명해 줘야 온전한 코드가 된다는 그 상황이 낯설고 신기했다. 보통은 인간이 AI에게 질문하면 인간에게 알려주지 않았던가?
그리고 이 생각은 다음과 같이 정리되었다. 'AI는 어쩌면 인간의 현실을 이미 이해했다고 전제한 상태에서 코드를 구성하는 것은 아닐까?' 하고 말이다. AI는 인간의 방대한 코드 구성 역사를 통해 학습을 했고 그 지적 유산 위에서 코드를 만들 것이다. 하지만 이 코드는 기본적으로 현상을 수학으로 정의한 것이다. 그렇기에 현실은 함수라는 수학적 형태로 표현된다. 그리고 이 함수들은 현실의 조각들이지 현실 그 자체는 아니다.

알프레드 마셜의 1890년 저서 '경제학 원론(Principles of Economics)'에 등장하는 수요 - 공급 곡선이다. 이 개념은 너무나 유명하고 강력해서 시장의 이해를 돕는 가장 기본적인 개념이다. 하지만 현실에는 완벽한 수요-공급 곡선은 존재하지 않는다. 너무나 많은 현실의 마찰(노이즈)들이 하나의 가격에 수렴하는 것을 방해하기 때문이다. 즉, 마셜의 수요 - 공급 곡선은 진공 상태에서의 낙하 법칙과 같다. 현실에는 '정보의 비대칭'이라는 끈적한 공기 저항이 있고, 물건을 찾고 계약하는 데 드는 '탐색 및 거래 비용'이라는 마찰력이 존재하며, 알면서도 속아주는 인간의 '제한된 합리성'이라는 중력의 왜곡이 존재한다. 결국 현실의 가격은 하나의 점이 아니라, 이 무수한 노이즈 속에서 끊임없이 흔들리는 '범위'로 존재하게 된다.
그래서 'AI는 어쩌면 인간의 현실을 이미 이해했다고 전제한 상태에서 코드를 구성하는 것은 아닐까?'라는 생각은 또 다른 의문으로 이어졌다. '그렇다면 AI는 왜 그 코드를 선택했는지, 그리고 그 코드가 현실에서 어떤 의미를 가지는지까지 이해하고 있는 것일까?' 즉, AI가 코드를 선택한 이유를 AI가 설명할 수 있는가 말이다. 앞서 말했듯이 지금까지 인간이 축적해 온 코드들은 현실 그 자체가 아니라 특정 부위들을 수학적으로 해석한 함수들의 조각이다. 그래서 영상의 니꼴라스처럼 AI에게 현실의 마찰은 이런 것이다라는 설계를 추가적으로 해줘야 하는 것이고 말이다.
그렇다면 AI 시대에 인간의 코드 개발은 크게 두 가지 관점으로 나뉠 수 있다.
- 수리적 관점: AI는 인간이 수리적 관점으로 구축해온 것을 바탕으로 코드를 짠다. 하지만 그 수리적 관점들은 이미 과거의 것으로 새로운 현상이 등장하면 그것을 새롭게 해석하는 수학 철학이 필요하다. 이건 창조의 영역이며 이미 존재하는 코드를 빠르게 잘 구성하는 것과는 다른 영역이다. 그렇기에 AI 시대의 개발자는 수리적 관점에서 어떤 논리가 부족했는지를 스스로 파악하여 문제를 해결하고자 하는 본질에 더 가깝게 다가갈 수 있어야 한다.
- UX적 번역 관점: 이건 특히나 이번 니꼴라스의 설명에 가까운 부분이다. AI가 만든 수리적 관점의 코드들은 현실의 조각들을 빠르게 재구성한 것으로 그것이 곧 현실이라는 뜻이 아니다. 그렇기에 그 코드 조각들의 조합 논리가 얼마나 현실을 반영했는지에 대해 논리적 빈틈을 메꿔서 문제 또는 장애로 대변되는 현실의 마찰(노이즈)을 해결해 사용자의 UX 본질에 가깝게 다가갔는지를 증명해야 한다. 즉, UX적 번역 관점이란 현실에서 발생하는 마찰을 코드가 이해할 수 있는 구조로 번역하는 과정이다.
이번 글을 통해서 내가 하고자 하는 말은 AI의 코드 능력은 구리다, 역시 인간이 최고지 이런 식의 극단적인 결론이 아니다. AI가 그런 결과물을 만들게 된 것에는 그에 따른 이유가 있고 그 이유가 만들어내는 태생적인 한계를 인정하자는 것이다. 그리고 그 한계를 인정하는 것 위에서 AI의 성능과 잠재력을 바라본다면 우리는 좀 더 인간과 AI가 온전히 협업할 수 있는 시대를 맞이하지 않을까?
국가든 기업이든 AI가 만든 코드가 장애를 일으켰을 때 막연히 AI 못 믿겠네 이런 막연한 접근이 아니라 '수리적 관점에서 수학 논리의 문제' 였을까? 아니면 'UX적 번역 관점에서 현실의 마찰(노이즈)을 적절히 반영하지 못한 현실에서 SW로의 번역 문제' 였을까?로 정리된다면 그에 따른 해결 방향도 명확해질 것이다.
AI가 공기와 물처럼 우리 곁에 존재할 시대가 오고 있다. AI 기술에 대한 발전도 중요하지만 AI에 대한 이해 또한 그에 맞게 따라가야 할 것이다. 그리고 그 AI 시대의 경쟁력은 더 많은 코드를 작성하는 것이 아니라 현실을 더 정확하게 코드로 번역하는 능력일 것이다.
* 이미지는 구글 검색입니다(사진 1).
'윤's > Chat GPT & AI' 카테고리의 다른 글
| 아폴로 프로젝트에서 배우는 대한민국 3대 메가 프로젝트의 성공 조건 (0) | 2026.07.06 |
|---|---|
| 결핍이 만드는 카테고리, AI PC 다음에 올 AI Console (0) | 2026.06.29 |
| 일론의 Cursor 인수, 그 너머의 가치 - 신뢰 (0) | 2026.06.29 |