렉시오 CPU 플레이어 만들기 Part 5: 봇이 아무것도 하지 않는 이유

Part 1~4 에서 설계한 렉시오 hard 봇을 실제로 구현했더니 봇이 거의 모든 턴을 패스했습니다. 개별 항은 전부 맞았고 항을 합치는 방식이 틀렸습니다. 평가 함수가 무너지는 네 가지 자리와, 그 회귀 테스트가 엉뚱한 이유로 통과한 이야기를 다룹니다.

[Read more]

AI가 코딩을 다 하는 시대, 컴공은 무엇을 배워야 하나 Part 3: 반론 — 2026년 데이터로 다시 본 것들

서울대 이재욱 교수 인터뷰에 대한 반론을 2026년 최신 자료로 재검증합니다. 무너진 반론 하나를 먼저 밝히고, 속도가 새는 곳, 격차의 진짜 원인, Naur와 Bainbridge라는 두 사각지대를 다룹니다.

[Read more]

AI가 코딩을 다 하는 시대, 컴공은 무엇을 배워야 하나 Part 2: 교육, 학과의 존재 이유, 그리고 안목

서울대 이재욱 교수 인터뷰의 후반부 — 학생이 “중간 배달원"이 되는 문제, 컴공에 가야 하는 이유, 미래 개발자의 안목, 비전공자를 위한 조언 — 을 학습과학과 고용 데이터로 검증합니다.

[Read more]

AI가 코딩을 다 하는 시대, 컴공은 무엇을 배워야 하나 Part 1: 영상이 짚은 현실과 바이브 코딩의 임계점

서울대 이재욱 교수의 “코딩도 과제도 AI가 다 하는 시대” 인터뷰를 챕터별로 정리하고, 각 주장에 대한 외부 근거를 붙여 검증합니다. 1부는 코딩 현장의 변화, 코드 작성 자동화, 바이브 코딩의 한계를 다룹니다.

[Read more]

달무티 CPU 플레이어 만들기 Part 4: 만들어 보니 hard 봇이 더 약했다

Part 1부터 3까지의 설계안을 실제로 구현해 시뮬레이션으로 재봤더니, hard 봇이 easy 봇보다 평균 0.6601등 나빴습니다. 무엇을 어떻게 쟀는지, 세 개의 구조 결함이 무엇이었는지, 어떤 고급 기능이 살아남았는지, 그리고 정정 후의 정식 검증 수치를 정리합니다.

[Read more]

8비트의 벽을 넘은 게임들 Part 5: 제약이 사라진 시대에 남은 것

압축·생성·전복이라는 세 가지 돌파구가 40년 뒤에 어떻게 됐는지 정리합니다. 엘리트의 씨앗이 노 맨즈 스카이의 64비트로 이어진 계보, 제약이 사라지자 드러난 역설, 제약을 일부러 되살리는 데모신, 그리고 오늘의 개발에 그대로 쓸 수 있는 여섯 가지 원칙을 다룹니다.

[Read more]

8비트의 벽을 넘은 게임들 Part 4: 메탈기어, 못 그리는 것을 안 그려도 되게 만들다

1987년 MSX2 메탈기어가 하드웨어의 거부를 게임 문법으로 바꾼 과정을 주석 disassembly 로 확인합니다. SCREEN 5 비트맵과 가로 스크롤 부재, 48바이트짜리 방 165개, 스프라이트를 짝지어 색을 늘리고 순서를 섞어 깜빡이는 기법, 원뿔이 아닌 복도형 시야 판정, 그리고 방에 붙어 있는 경보 상태 머신을 다룹니다.

[Read more]

8비트의 벽을 넘은 게임들 Part 3: 엘리트, 우주를 6바이트에 담다

1984년 엘리트가 21,952바이트에 항성계 2,048개를 담은 방법을 주석 disassembly 를 근거로 확인합니다. 트리보나치 씨앗 트위스팅, 두 글자 토큰 이름 생성, 곱셈 명령 없이 도는 3D 회전(민스키 알고리듬), 그리고 타이머 인터럽트로 만든 화면 분할을 Go 재현 코드와 함께 다룹니다.

[Read more]

8비트의 벽을 넘은 게임들 Part 2: 슈퍼 마리오브라더스, 레벨을 그리지 않고 서술하다

슈퍼 마리오브라더스의 disassembly 를 직접 읽고 40KB 안에 32개 스테이지가 들어간 방법을 확인합니다. 레벨 오브젝트 2바이트 인코딩, 월드 1-1 의 실제 바이트 해독, 구름과 수풀이 같은 타일이라는 사실의 바이트 단위 증명, 8프레임 컬럼 파이프라인, 그리고 4.4 및 8.8 고정소수점 물리를 다룹니다.

[Read more]

8비트의 벽을 넘은 게임들 Part 1: 그 기계들은 무엇을 못 했는가

1980년대 8비트 게임기가 실제로 무엇을 못 했는지 데이터시트 수준에서 확인합니다. 곱셈 명령이 없는 CPU, 16x16 픽셀 단위로만 색을 고를 수 있는 화면, 한 프레임의 7.6%뿐인 VRAM 접근 시간을 숫자로 재고, 그래서 개발자에게 남은 선택지가 압축·생성·전복 셋뿐이었음을 보입니다.

[Read more]

렉시오 CPU 플레이어 만들기 Part 4: 수 평가와 정산 기대값

렉시오 hard 봇의 목적 함수를 정산 구조에서 직접 유도합니다. 수 평가 함수의 항을 분해하고, 낼 수 있어도 참아야 하는 여섯 가지 상황을 정리하며, 이길 수 없다고 판단했을 때 봇이 손실 최소화 모드로 전환하는 기준을 다룹니다.

[Read more]

렉시오 CPU 플레이어 만들기 Part 3: 손패 분해 플랜

렉시오 hard 봇이 자기 손패를 몇 번에 털 수 있는지 정확히 계산합니다. 유효 조합으로의 최소 분할을 비트마스크 DP 로 풀고, 탐욕법이 왜 다섯 번에 한 번꼴로 최적을 놓치는지, 그리고 DP 한 번이 왜 모든 후보의 평가까지 공짜로 끝내 주는지 다룹니다.

[Read more]

렉시오 CPU 플레이어 만들기 Part 2: 60비트 카운팅과 확실승수 판정

렉시오 hard 봇이 무엇을 아는지 다룹니다. 미공개 타일을 uint64 하나로 정확히 복원하고, 이 수를 아무도 못 받는다는 판정을 확률이 필요 없는 구조적 영역과 확률이 필요한 영역으로 나누며, 패스 로그를 비트마스크 제약으로 환산합니다.

[Read more]

렉시오 CPU 플레이어 만들기 Part 1: 타일 하나를 정수 하나로

렉시오(Lexio)를 디지털 게임으로 만들 때 CPU 플레이어를 어떻게 설계할지 다룹니다. Part 1 에서는 타일 60장을 정수 하나로 압축하는 표현을 잡고, 공식 룰의 비교 규칙을 정수 키 하나로 환원한 뒤, 결정적 규칙만으로 동작하는 easy 봇을 Go 코드로 구현합니다.

[Read more]

달무티 CPU 플레이어 만들기 Part 3: 수 평가와 전략적 패스

달무티 hard 봇이 실제로 어떤 수를 고르는지 다룹니다. 리드권 확보 확률과 가치를 분리한 수 평가 함수, 낼 수 있어도 참는 전략적 패스, 차단 의무의 정확한 조건, 세금과 혁명의 기대값 계산, 그리고 봇이 정말 세졌는지 재는 검증 방법을 Go 코드로 정리합니다.

[Read more]