90년대 아버지가 알려준 AI 코딩의 교훈: 블라인드폴드 체스처럼
What my dad taught me about AI coding in the 90s
TL;DR Highlight
코드 줄이 아닌 구조(포지션)를 직접 쥐고 구현만 LLM에 맡기자는 주장
Who Should Read
Claude Code 같은 코딩 에이전트에 얼마나 맡기고 얼마나 읽어야 할지 감이 안 오는 개발자
Core Mechanics
- 코드는 적게 맡기고 구조는 쥐어라
- 저자는 LLM에게 맡길 코딩량이 생각보다 적어야 한다고 주장한다.
- 대신 블라인드폴드 체스 선수와 비슷한 능력이 필요하다고 말한다.
- 줄 단위가 아니라 포지션으로 생각하라
- 블라인드폴드 선수는 판 전체를 외우지 않고 핵심 기물의 위치와 공격·방어 관계 같은 패턴으로 판을 복원한다.
- 좋은 프로그래머도 개별 코드 줄보다 전체 아키텍처, 컴포넌트, 인터페이스의 멘탈 모델로 일한다.
- 따라갈 수 없는 속도로 짜면 이해가 없다
- 예전엔 코드를 계획하고 짜는 속도가 소화 가능한 수준이어서 멘탈 모델이 쌓였다.
- LLM이 따라갈 수 없는 속도로 코드를 만들면 깊은 이해가 생기지 않고 낯선 코드, 슬롭(slop)이 된다고 한다.
- 인터페이스는 내가 설계, 구현은 LLM
- 저자는 인터페이스와 컴포넌트를 직접 생각한 뒤 구현만 LLM에 넘기는 패턴을 자주 쓴다.
- 어떤 결정이 포지션이고 어떤 게 디테일인지는 늘 명확하지 않고 저자도 배우는 중이라고 한다.
- 모델과 어긋나면 그때 코드를 열어라
- 아버지는 없는 기물을 옮긴다는 말을 듣자마자 바로잡았다.
- LLM이 한 일이 내 코드베이스 모델과 안 맞으면 튀어 보이고, 그때 코드를 열어 보면 된다.
Community Reactions
- 체스와 달리 LLM은 비결정적이라는 반론
- 블라인드 체스는 보드 상태 정보가 결정적이라 머릿속 갱신이 정확하다는 의견이다.
- LLM은 temperature 0에서도 결과를 예측할 수 없고, 결과를 전혀 안 보면 이해 못 하는 시스템이 빨리 생긴다는 지적이다.
- 결과를 못 보면 바이브 코딩과 같다는 의견
- 매일 AI를 쓰는 한 댓글러는 시스템 레벨의 안전한 코드는 AI에 맡기지 않는다고 했다.
- 모델이 한 수를 알려주지 않으면 체크메이트라는 말을 그냥 믿는 것과 같다는 비유였다.
- 트레이딩 시스템을 거의 안 읽고 만들었다는 경험
- 한 댓글러는 출퇴근길에 폰으로 지시해 취미 트레이딩 시스템을 바이브 코딩했고 벤치마크와 주문·체결 확인으로 동작을 검증했다고 한다.
- 내부 구조는 모르지만 어떤 측면이 고려됐는지만 안다며, 준비된 사람과 아닌 사람의 경험 차이가 크다고 했다.
- 인터페이스 위반이 실제로 문제였다는 경험
- 코드를 못 본다면 인터페이스가 구현을 제약해야 하고, 아니면 추상화 누수에 당한다는 의견이다.
- 분산 시스템에서 인터페이스는 경쟁 상태를 허용하는데 구현이 막아 버려 곤란했던 경험도 나왔다.
How to Apply
- 다음 기능 전에 인터페이스부터 직접 쓰기
- 오늘 맡길 작업 하나를 골라 함수 시그니처와 컴포넌트 경계를 직접 적어라.
- 그 뒤에 그 인터페이스를 구현하라고 에이전트에 지시하라.
- 에이전트 보고를 내 모델과 대조하기
- 에이전트가 작업 결과를 요약하면 내가 아는 구조와 어긋나는 부분을 표시하라.
- 어긋난 곳만 코드를 열어 확인하라.
- 포지션과 디테일 구분 목록 만들기
- 팀 코드베이스에서 직접 결정할 것(아키텍처, 인터페이스)과 맡길 것(구현 세부)을 나눠 적어라.
- 리뷰 때 이 목록을 기준으로 읽을 곳을 정하라.
Try It
# Claude Code 또는 ChatGPT에 붙여넣기 (원문 아이디어의 간이 버전)
너는 코딩 에이전트다. 나는 인터페이스와 컴포넌트 경계를 직접 정하고, 구현은 네가 맡는다.
[내가 정한 인터페이스]
{{인터페이스/시그니처}}
[요구사항]
{{기능 설명}}
지시:
1. 위 인터페이스를 바꾸지 말고 구현만 작성해라.
2. 인터페이스에 없는 동작은 추가하지 마라.
3. 끝나면 '무엇을 바꿨는지', '내가 가진 구조 모델과 어긋날 수 있는 지점'을 각각 3줄 이내로 보고해라.
이어서 해 볼 것: 보고에서 어긋난 지점이 있으면 그 파일만 열어 확인해 보기Terminology
관련 논문
AI는 도구다, 잘 쓰려면 기술이 필요하다
Hickey의 'AI는 도구가 아니다'에 맞서, LLM도 쓰는 사람의 기술이 결과를 가른다고 반박
딥리서치 에이전트의 Reflective Prompt Optimization: 토픽 분리·멀티 시드로 본 진짜 성능 향상과 프롬프트 과적합
GEPA로 프롬프트를 최적화했더니 held-out 인용 보상 0.702→0.781
GPT-6와 Intelligent UI: 채팅 안에서 시각·인터랙티브 응답 만들기
OpenAI가 GPT-6로 채팅 응답에 UI를 넣는다는데 원문이 없어 댓글 반응만 확인된다
Base 모델도 첫 토큰 단서(cue) 하나로 추론한다: 학습 데이터가 만든 연상
응답 첫 두 토큰만 고정했더니 Olmo-3-7B의 MATH-500 정답률이 42%에서 78%로 올랐다
Jev식 Typed Decision Model에서는 정의보다 라벨이 이긴다
옵션 이름을 A, B로 바꿨더니 정확도가 +0.1511 올랐다
프롬프트는 얼마나 필요한가? Few-shot 예시를 블랙박스로 최소화하는 DD-FSM
Delta debugging으로 few-shot 예시를 평균 65.3% 줄여도 출력은 그대로
언어모델은 "불안정한(Insecure)" 보고자다: 결함을 숨기는 LLM 리포트
"Be honest" 한 줄을 붙였더니 GPT-5.5의 부정 결과 공개가 2/200에서 190/200으로 늘었다