# 지니 길들이기: "Kent Beck처럼"

> Clean Markdown view of GeekNews topic #26086. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26086](https://news.hada.io/topic?id=26086)
- GeekNews Markdown: [https://news.hada.io/topic/26086.md](https://news.hada.io/topic/26086.md)
- Type: news
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-01-24T10:51:01+09:00
- Updated: 2026-01-24T10:51:01+09:00
- Original source: [tidyfirst.substack.com](https://tidyfirst.substack.com/p/taming-the-genie-like-kent-beck)
- Points: 5
- Comments: 1

## Summary

AI 코딩 도구 **지니(Genie)** 에 ‘**Kent Beck처럼 코딩해**’라는 페르소나를 부여하자 변수명과 테스트 스타일은 개선되었지만, **아키텍처 설계**에는 변화가 없었습니다. 연구진은 Rope 데이터 구조 구현 실험을 통해, 페르소나는 미시적 습관을, 명시적 제약 조건은 거시적 구조를 결정한다는 점을 확인했습니다. 두 접근을 결합한 프롬프트가 가장 안정적인 품질을 보였으며, 이는 인간 전문성을 주입하기보다 **계산 자원의 활용**이 더 큰 진전을 이끈다는 *The Bitter Lesson*의 통찰과 맞닿아 있습니다.

## Topic Body

- AI 코딩 도구(지니)에게 **"Kent Beck처럼 코딩해"** 라는 페르소나 프롬프트를 추가하면 코드 품질이 개선되는지 실험한 결과, 테스트 스타일과 변수 명명은 개선되었으나 **아키텍처 설계**는 변하지 않음  
- **Rope 데이터 구조**를 구현하는 프로젝트를 통해 페르소나 프롬프트와 설계 제약 조건의 효과를 비교 검증  
- 페르소나는 **마이크로 행동**(테스트 방식, 네이밍)을 개선하고, 명시적 제약 조건은 **매크로 아키텍처**(클래스 계층 구조)를 결정  
- 4개 그룹 실험 결과, 페르소나와 제약 조건을 **결합한 프롬프트**가 가장 좋은 결과 도출  
- Rich Sutton의 **"The Bitter Lesson"** 을 인용하며, 인간 전문성을 인코딩하기보다 **계산 자원을 활용**하는 방식이 더 효과적임을 시사  
  
---  
  
### 현재 AI 코딩 도구의 단계  
  
- 현재 AI 코딩 도구(지니)는 **"말 없는 마차"** 단계에 해당  
- 모든 기술 혁신은 기존 프레임으로 먼저 이해한 후, 근본적 변화를 인식하게 됨  
  - 말 없는 마차 → 자동차  
  - 무선 전신 → 라디오  
  - 전자 메일 → 메시징  
- 새로운 기술의 **2차 효과**, 강화 및 억제 루프를 이해하려면 충분히 오래 사용해야 함  
  
### 실험: Rope 데이터 구조  
  
- **Rope 데이터 구조**는 매우 긴 문자열에서 중간 문자 삭제를 효율적으로 수행하기 위한 구조  
- 단순 방식은 오른쪽 문자를 모두 이동시켜 **O(n)** 시간 소요  
- Rope 구조는 **substring 객체**와 **concatenation 객체**를 사용해 삭제를 **상수 시간**으로 처리  
  - 삭제 시 3개 객체 할당  
  - 탐색은 O(연산 수)이나, 문자열 길이보다 작고 주기적 압축 가능  
  
### 실험 진행 과정  
  
#### Phase 1: 페르소나 ("Code like Kent Beck")  
  
- **"Code like Kent Beck"** 프롬프트 추가 시 코드 품질이 개선되는지 검증  
- **결과**: 코드 스타일 개선 확인  
  - 변수명 개선  
  - 테스트 전략이 **모놀리식 스크립트에서 모듈화된 단위 테스트(TDD 방식)** 로 전환  
- **예상 밖 발견**: 아키텍처는 변하지 않음  
  - 표준 이진 트리로 Rope 구현  
  - Kent Beck이 사용하는 **Composite 패턴**은 무시됨  
  
#### Phase 2: 설계 가이드 추가  
  
- Control 그룹 코드가 너무 장황해 **토큰 한도 초과**로 구문 오류 발생  
  - 토큰 한도 증가로 해결  
  - "더 많은 컴퓨팅"이 단순한 해결책이 될 수 있음  
- 프롬프트에 **명시적 제약 조건** 추가  
  - "**Composite 패턴 사용**"  
  - "동작을 작고 전문화된 클래스로 분리"  
- **결과**: 예상한 설계 구현  
  - **Substring**과 **Concatenation** 분리 클래스  
  - 단일 클래스보다 단순한 구조  
  - 실제로는 더 단순한 설계 도출: Null Object(EmptyString)나 네이티브 문자열 래퍼 없이 **Substring 0..size**로 처리  
  
#### Phase 3: 4개 그룹 분리 실험  
  
- 어떤 개입이 효과를 만들었는지 확인하기 위해 교차 실험 설계  
  1. **Control**: 표준 어시스턴트  
  2. **Kent Beck**: 페르소나만 적용  
  3. **Composite**: 아키텍처 제약만 적용  
  4. **Combined**: 페르소나 + 제약 조건  
  
### 실험 결론  
  
- **2x2 매트릭스 효과** 확인  
  1. **페르소나는 마이크로 행동 결정**: "Kent Beck" 프롬프트는 **테스트 스타일**과 **네이밍**을 안정적으로 개선, 그러나 구조적 결정에는 영향 없음  
  2. **제약 조건은 매크로 아키텍처 결정**: "Composite Pattern" 프롬프트는 **클래스 계층 구조**를 강제, 페르소나 없이도 세분화된 설계 생성  
  3. **결합이 최선**: Combined 그룹이 올바른 아키텍처(Composite)와 올바른 개발 습관(TDD/Unit Tests)을 모두 제공  
  
### The Bitter Lesson 적용  
  
- 숨겨진 목표: 지니가 **기능과 미래의 균형**을 맞추며 더 나은 개발을 수행하도록 하는 것  
- 시도한 방법들: 세심한 프롬프팅, 지니 제안 변경사항 주의 깊게 검토, 더 작은/큰 단계 등  
- Rich Sutton의 [**"The Bitter Lesson"**](http://www.incompleteideas.net/IncIdeas/BitterLesson.html) 인용  
  - 70년간의 AI 연구가 보여주는 교훈: **인간 전문성을 인코딩하는 것보다 계산 자원 활용**이 더 나은 결과 도출  
  - 스타일을 인코딩하려 했던 것이 모든 사람이 하는 **같은 실수**였음  
  
### 계산 활용을 통한 효과적 개발 스타일 제안  
  
- 수많은 저장소의 형편없는 코드 스타일을 복사하는 **서툰 코딩 지니**에 갇힐 필요 없음  
- **계산 활용 방법** 제안  
  1. 대규모 저장소 선택  
  2. 백만 개의 지니가 다음 기능을 구현하되, 각 지니가 **정리 방법과 정리량을 다르게 선택**  
  3. 가장 낮은 비용(시간, 토큰, 전기, 비용 등)으로 기능 추가에 성공한 지니 선택  
  4. 많은 지니, 많은 기능, 많은 저장소에서 반복  
- 코딩을 "낭비"하는 것처럼 보이지만 실제로는 그렇지 않음  
- [Jessica Kerr는 이를 **"Design Contest"** 라고 부름](https://open.substack.com/users/2616183-jessica-kerr?utm_source=mentions)

## Comments



### Comment 49880

- Author: kallare
- Created: 2026-01-25T09:21:50+09:00
- Points: 1

그럼 제프 딘처럼 코딩하라고 하면 과연...?!
