- Published on
엔지니어와 예술 완전 가이드: 코드의 美·디자인·음악·글쓰기·사진·Craft·Hofstadter·Dieter Rams·Paul Graham (2025~2026)
- Authors

- Name
- Youngju Kim
- @fjvbn20031
"Great artists steal." — Pablo Picasso (추정) "Great engineers steal beautifully." — Unknown
Staff+ 엔지니어에게 "한 줄이 너무 아름답네요"라는 칭찬이 "이 코드 빠르네요"보다 더 큰 찬사가 되는 순간이 온다. 이것이 Taste의 문을 넘었다는 신호다.
기술과 예술은 같은 뿌리에서 나왔다. Leonardo da Vinci는 화가이자 공학자였고, Steve Jobs는 서예에서 Mac Typography를 가져왔다. 엔지니어가 예술을 만나지 않으면 Craftman이 되지 못한다.
이 글은 Knuth·Hofstadter·Rams·Graham·Sennett의 지혜를 엮어, 엔지니어가 예술적 감각을 매일 훈련하는 시스템을 제공한다.
1. 코드의 美 — Beauty in Code
1.1 Knuth의 "Literate Programming"
Donald Knuth: 코드는 사람에게 먼저 쓰고, 기계에 두 번째로 번역되는 문학.
"Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to humans what we want the computer to do." — Knuth
Literate Programming의 원칙:
- 코드 ↔ 설명 유기적 결합.
- 읽는 순서가 자연스러운 서사.
- 타입·이름·구조가 의미를 전달.
엔지니어 실전:
- 변수 이름은 단락의 제목처럼.
- 함수는 한 문장으로 요약 가능해야.
- 파일은 한 이야기가 있어야.
1.2 Code Poetry
코드에는 시가 있다:
# Perlis: "A language that doesn't affect the way you think about programming, is not worth knowing."
# Functional elegance
from functools import reduce
fibonacci = lambda n: reduce(lambda x, _: (x[1], x[0] + x[1]), range(n), (0, 1))[0]
# Python Zen의 美
# "Readability counts."
def is_prime(n: int) -> bool:
if n < 2:
return False
return all(n % i != 0 for i in range(2, int(n**0.5) + 1))
美의 기준:
- Simplicity (단순): 필수만.
- Symmetry (대칭): 구조의 균형.
- Brevity (간결): 중복 제거.
- Clarity (명료): 의도가 즉시 보임.
- Economy (경제): 최소 자원.
1.3 Bad vs. Beautiful Code 체크
# Bad
def proc(data, flag):
if flag == 1:
result = []
for i in range(len(data)):
if data[i] > 0:
result.append(data[i] * 2)
return result
else:
# ...
# Beautiful
def double_positives(numbers: list[int]) -> list[int]:
return [n * 2 for n in numbers if n > 0]
차이:
- 이름이 의도.
- Flag의 제거.
- Pythonic 리스트 컴프리헨션.
- 타입 힌트.
1.4 Taste 훈련 — 코드 미학의 근육
- 주 1시간 Top Repo 독서: Redis·SQLite·React·Kubernetes 소스.
- Before/After 리팩토링 일지: 본인 코드 Ugly → Beautiful.
- Style Guides 탐독: Google Python Style Guide, Rust API Guidelines.
- Diff Review 일기: PR Comment의 미학적 논점 기록.
- 언어 다양성: Haskell·Rust·Elixir 접하면 Python의 미가 보임.
2. Dieter Rams — 디자인 10계명
2.1 Braun 시대의 Rams
Dieter Rams는 Braun 디자인을 수십 년 이끌었고, Jony Ive의 Apple 디자인에 절대적 영향. iPod은 Braun T3 라디오의 후예.
2.2 10 Principles of Good Design
- Innovative: 새로움을 줌.
- Useful: 실제로 쓸모.
- Aesthetic: 보기 좋음.
- Understandable: 설명 없어도 이해.
- Unobtrusive: 주인공 아님, 사용자가 주인공.
- Honest: 과장 없음.
- Long-lasting: 유행 지나도 좋음.
- Thorough: 디테일까지.
- Environmentally friendly: 지속 가능.
- As little design as possible: 최소.
2.3 "Less, but Better"
Rams의 모토. 엔지니어 번역:
- 더 많은 기능 ≠ 더 좋은 제품.
- 지우는 용기가 더해지는 용기보다 귀함.
- MVP는 철학이지 기법이 아님.
2.4 소프트웨어 적용 예
- Apple Calculator: Basic 6 버튼만 처음에. 필요할 때 확장.
- Slack 초기: Channel 단 하나 원칙, Thread는 나중.
- Notion: 모든 것을 Block으로.
- Basecamp: Feature 거절이 성공의 축.
2.5 엔지니어의 Rams 적용
- 다음 Feature 제안 전 "이게 진짜 필요한가?" 10번.
- UI 설계 시 "지울 수 있는 요소" 찾기.
- API 설계 시 최소 Public Interface.
- 코드 리뷰에서 "이 줄 없으면?" 질문.
3. Hofstadter — "Gödel, Escher, Bach"의 교훈
3.1 GEB의 핵심
Douglas Hofstadter의 1979년 대작 (Pulitzer 수상): 수학자 Gödel, 화가 Escher, 작곡가 Bach가 공유하는 구조를 통해 Strange Loop·Self-Reference·Formal System을 탐구.
3.2 Strange Loop
- Escher "Drawing Hands": 두 손이 서로를 그림.
- Bach의 Crab Canon: 앞으로 읽어도 거꾸로 읽어도 같은 선율.
- Gödel 불완전성: 수학이 자기 자신에 대해 말할 수 없음.
- 코드: Quine — 자기 자신을 출력하는 프로그램.
엔지니어 취향: Recursion·Self-hosting Compiler·Bootstrapping은 모두 Strange Loop.
3.3 Pattern Recognition의 예술
Hofstadter: 창의성의 본질은 Analogy Making.
- Kepler: 행성 궤도 = 타원 (기하학과 천문학의 Analogy).
- Einstein: 시공간 = 곡면 (물리와 기하의 Analogy).
- Turing: 계산 = 기호 조작 (수학과 기계의 Analogy).
엔지니어의 큰 도약은 다른 분야의 패턴을 내 영역에 가져오는 것.
3.4 엔지니어의 다분야 탐험
- 수학: Category Theory → 함수형 프로그래밍.
- 생물: Genetic Algorithm, Swarm Intelligence.
- 물리: Thermodynamics → 분산 시스템 (CAP, Entropy).
- 음악: Rhythm → 동시성 패턴.
- 건축: Christopher Alexander → Software Pattern.
- 언어학: Chomsky → 컴파일러 이론.
분야 경계 넘을수록 Taste가 깊어진다.
4. Paul Graham — "Hackers and Painters"
4.1 핵심 주장
"Great hackers think of themselves as makers, not scientists. ... I think hackers are makers, like painters or architects or writers."
Graham은 Hacker를 예술가로 재정의. 과학자는 기존 진리 발견, 예술가는 새로운 것을 만든다.
4.2 Painters에게서 배울 것
- Study Old Masters: 옛 거장 학습 → 엔지니어는 Classic Repo 공부.
- Sketches: 초안 많이 → 프로토타입 많이.
- Iteration: 계속 개선 → 리팩토링 문화.
- Empathy with User: 관람자 관점 → 사용자 관점.
- Boldness: 대담한 시도 → Risk Taking.
4.3 Essay 속 명언
- "Good design is redesign."
- "The right thing is often the less clever thing."
- "A language that doesn't affect the way you think is not worth knowing." (Perlis에서)
- "Design for the first users — because then you're designing for the users who care."
4.4 Graham 글쓰기에서 배우기
Graham 에세이 품질의 공통점:
- Plain Language: 쉬운 단어.
- Short Sentences: 긴 문장 쪼개기.
- Concrete Examples: 추상 → 실례.
- Honest: 본인 의심 공개.
- Iterative: 계속 고침, 발표 후에도.
엔지니어의 기술 글쓰기 표준 참고.
5. 글쓰기로서의 프로그래밍
5.1 Julia Evans의 "Zine" 문화
Julia Evans는 복잡한 기술 주제를 손 그림 Zine으로 설명하여 수십만 팬. 배운 점:
- 손 그림이 주는 친밀함.
- 복잡한 것을 단순하게.
- 개인 Voice 중요.
- 빠른 반복, 완벽 대기 X.
5.2 기술 에세이 Top 10 (필독)
- "On Being A Senior Engineer" — John Allspaw.
- "Choose Boring Technology" — Dan McKinley.
- "Worse is Better" — Richard Gabriel.
- "The Cathedral and the Bazaar" — Eric Raymond.
- "Things You Should Never Do, Part I" — Joel Spolsky.
- "Falsehoods Programmers Believe About Names."
- "The Rise of 'Worse is Better' Again" — 각종 후속.
- "10x Programmer" 분석 — Dan Luu.
- "On the Shoulders of Giants" — Andy Grove.
- "Solved Problems, Interesting Problems" — Gwern.
5.3 Engineer Writing Ladder
- Internal Doc: Design Doc, RFC.
- Internal Blog: 회사 Wiki 포스트.
- Personal Blog: 외부 공개, 영어 어색해도.
- Guest Post: Engineering Blog 초대.
- Talk: Conference 20분.
- Book: 오랜 축적의 결정체.
5.4 매일 10분 글쓰기 훈련
- 시작: Morning Pages 3페이지 (Julia Cameron).
- 중간: 기술 개념 1개 본인 언어로 500자.
- 공개: 주 1회 블로그 or Twitter Thread.
- 편집: 24시간 후 재읽고 30% 단축.
6. 음악과 엔지니어 뇌
6.1 왜 엔지니어가 음악을 좋아하나
- 패턴 인식: 리듬·하모니·대위법.
- 시간 구조: 음악은 시간 위의 아키텍처.
- 추상과 구체: 악보(추상)가 소리(구체)로.
- 개인적 표현: 사람의 결.
6.2 음악 이론과 엔지니어링
- Counterpoint (대위법): 여러 선율의 독립 + 조화 → 분산 시스템의 복수 에이전트 협력.
- Fugue (푸가): 주제의 다양한 변형 → 하나의 패턴을 여러 각도에서.
- Jazz Improvisation: 규칙 + 즉흥 → 좋은 프로그래밍 (표준 + 창의).
- Song Form (ABA, AABA): 반복·변주 → UI 컴포넌트 재사용.
6.3 악기 하나 배우기의 이점
연구 (Nina Kraus, Northwestern): 악기 학습자는:
- Working Memory ↑.
- Pattern Recognition ↑.
- Auditory Processing ↑ (미팅에서 더 잘 들음).
- 스트레스 감소.
하루 15분, 5년이면 중급. 엔지니어의 Human Capital 축.
6.4 코딩과 음악
- BGM 실험: 로파이·클래식·Ambient 각각 Test.
- 개인 차이 큼: 본인 Peak 음악 발견.
- 가사 없음: 대체로 유리.
- 완전 침묵도 OK: Deep Work.
7. 사진 — The Eye 훈련
7.1 Composition의 기본
- Rule of Thirds: 화면 3x3 격자, 교차점에 주제.
- Leading Lines: 선이 시선을 유도.
- Framing: 자연 액자.
- Negative Space: 여백의 힘.
- Symmetry / Asymmetry: 균형과 긴장.
7.2 Light의 이해
- Golden Hour: 일출·일몰 전후 1시간.
- Blue Hour: 일출 전·일몰 후 30분.
- Side Light: 입체감.
- Backlight: 실루엣·감성.
- Hard vs Soft: 그림자 선명도.
7.3 The Decisive Moment (Cartier-Bresson)
"There is a decisive moment in which all elements come together in perfect harmony."
- 관찰 → 예상 → 반응.
- 준비되어 있을 때만 잡힘.
- 엔지니어 번역: 버그의 순간, 인사이트의 순간, 대화의 순간.
7.4 엔지니어의 사진 훈련 효과
- Observation: 사용자·시스템을 다르게 봄.
- Patience: 시간 위에서 기다림.
- Composition: UI 디자인 감각.
- Narrative: 한 장면의 스토리텔링.
- Presence: 지금 이 순간 집중.
스마트폰 카메라로 매일 1장, 1년이면 눈이 바뀐다.
8. Craft 정신 — Sennett의 The Craftsman
8.1 Richard Sennett의 정의
"Craftsmanship names an enduring, basic human impulse, the desire to do a job well for its own sake."
Craft = 스스로 만족을 위해 잘 하려는 본능.
2026년 AI 시대, "빠른 결과"의 유혹 속에서 Craft 정신이 더 귀해진다.
8.2 Craftsman의 7가지 특성
- Repetition: 반복으로 숙련.
- Material Sensitivity: 재료(=코드·언어)의 성질 이해.
- Problem Finding > Problem Solving: 좋은 문제를 찾음.
- Standards: 본인의 기준, 외부 평가 독립.
- Slow: 충분한 시간.
- Tacit Knowledge: 말로 설명 어려운 것.
- Pride: 작업에 자부심.
8.3 Kelly Johnson의 Skunk Works
Lockheed의 전설적 설계자. U-2, SR-71 Blackbird 개발. Craft 14 Rules:
- Small team, 고품질.
- Fast decision, 적은 보고.
- Prototype early, test often.
- 책임과 권한 Pair.
Skunk Works 문화는 Meta·Google의 비밀 팀 DNA.
8.4 엔지니어가 Craft를 잃는 신호
- "빨리만" 챕터.
- "돌아가니까 OK."
- Review에서 "Good enough".
- 리팩토링 거부.
- 본인 코드 다시 안 읽음.
8.5 Craft 회복 훈련
- Master 모방: Top 10 라이브러리 소스 반복 읽기.
- Handcraft 시간: AI 없이 본인 손으로 쓰는 시간 확보.
- Standards 문서화: "내가 자랑스러워할 코드" 기준.
- Public Portfolio: 블로그·OSS로 남김.
- Deliberate Practice: 약점 영역 의도적 훈련.
9. AI 시대 Human Craft의 의미
9.1 AI가 못 하는 것
- Taste: 수많은 옵션 중 "이게 맞다"고 선언.
- Context-Sensitive Judgment: 맥락 전체 파악.
- Physical Intuition: 손이 알고 있는 것.
- Narrative: 본인 삶에서 나온 이야기.
- Care: 이 일이 중요하다는 감각.
9.2 AI Co-Creator로서의 Craft
- 1차 초안: AI.
- Taste·Edit·Polish: 사람.
- Voice·Intent: 사람.
- Final Call: 사람.
Craft는 AI를 반대하지 않는다. AI를 재료로 다루는 장인의 손이 더 귀해진다.
9.3 새로운 Renaissance?
- 1450년 인쇄술: 정보 대중화 → Renaissance.
- 1970년 PC: 계산 대중화 → Software Revolution.
- 2020년 LLM: 생성 대중화 → New Renaissance?
"모두가 만들 수 있다"는 가능성 속에서, 본인만의 Voice가 있는 Craftsman이 구별된다.
10. 예술 훈련 일일·주간·월간
10.1 매일 (30분)
- 10분: 음악 청음 or 악기.
- 10분: 사진 or 스케치.
- 10분: 시·에세이 읽기.
10.2 매주
- 주 1회: 박물관·전시·콘서트 (영상도 OK).
- 주 1회: Top Repo 1개 소스 읽기.
- 주 1회: 본인 글 or 코드 Polish.
10.3 매월
- 월 1권: 예술·디자인·철학 책.
- 월 1회: 새 매체 시도 (도자기·작곡·시 쓰기).
- 월 1회: 본인 작업 외부 공유.
10.4 매년
- 연 1회: 예술 여행 (Paris·Kyoto·Florence 등).
- 연 1회: 장기 프로젝트 완성 (책·앨범·전시).
- 연 1회: Craft Retreat (1주일 Deep).
11. 예술·Craft 체크리스트 12
- 본인의 "미의 기준" 문서화.
- Top Repo 주 1시간 소스 독서.
- 월 1권 디자인·예술 도서.
- 매일 10분 악기 or 사진.
- 주 1회 박물관·전시.
- 매일 10분 글쓰기.
- 손 그림·Sketch 노트.
- Craft Standards 명문화.
- 외부 Portfolio (블로그·OSS).
- 다분야 학습 연 1회+.
- AI Co-Creator Workflow.
- Deep Work 하루 2~4시간.
12. 예술·Craft 안티패턴 10
- "예술은 여유 있는 사람의 것": 습관화되지 않으면 평생 없음.
- Taste 없이 속도만: Fast but Ugly.
- 기술만 있고 취향 없음: Senior에 머무름.
- AI에 100% 의존: Craft 근육 소실.
- Handcraft 경시: 모든 것을 자동화 시도.
- Portfolio 없음: Silent Expert.
- 다분야 탐험 無: 동일 Echo Chamber.
- Deep Work 없음: 얕은 Craft.
- 완벽주의 정체: Ship 안 함.
- Critic에 과민: 성장 피드백 차단.
13. 추천 자료 Top 20
13.1 책
- "Gödel, Escher, Bach" — Hofstadter.
- "The Craftsman" — Sennett.
- "Hackers and Painters" — Paul Graham.
- "The Design of Everyday Things" — Don Norman.
- "Design as Art" — Bruno Munari.
- "A Pattern Language" — Christopher Alexander.
- "The Art of Electronics" — Horowitz & Hill.
- "Surely You're Joking, Mr. Feynman" — Feynman.
- "Zen and the Art of Motorcycle Maintenance" — Pirsig.
- "The Art of Computer Programming" — Knuth.
13.2 영화·다큐
- "Jiro Dreams of Sushi" — 완벽주의 Craft.
- "Side by Side" — 디지털 vs 필름.
- "Abstract: The Art of Design" (Netflix).
- "Objectified" — 디자인 다큐.
13.3 웹·Newsletter
- Julia Evans 블로그.
- Paul Graham 에세이 모음.
- Gwern.net.
- Dan Luu 블로그.
- The Morning News.
- It's Nice That.
14. 마무리 — Craft는 영혼의 흔적이다
"Craftsmanship is the stamp of who we are." — Richard Sennett
2026년, AI가 효율을 최고까지 끌어올린 시대에, Craft는 사람의 흔적이다. 누가 이 코드를 썼는지, 이 문서를 만들었는지, 이 제품을 디자인했는지 — AI 공통 Output과 구별되는 지점.
그 흔적은 하루에 안 생긴다. 수천 시간의 관심으로만 쌓인다. Sennett의 말처럼 "잘 하려는 본능"이 반복되어 굳어진 습관.
엔지니어가 Craftsman이 되려면:
- Knuth처럼 코드를 문학으로.
- Rams처럼 "Less, but Better".
- Hofstadter처럼 다분야 패턴 연결.
- Graham처럼 Maker 정체성.
- Sennett처럼 스스로 기준.
2026년의 엔지니어는 예술가다. 이걸 받아들이는 순간 당신의 커리어는 다른 궤도에 올라탄다.
시작은 3가지면 된다:
- 오늘 당신의 코드 한 줄을 다시 쓰고, 더 아름답게.
- 이번 주 박물관 or 전시 한 곳.
- 이번 달 완전히 다른 분야 책 한 권 (디자인·건축·음악 중).
1년 후, 당신의 Taste는 전혀 다른 사람의 것이다.
다음 글 예고 — "엔지니어의 철학: Epistemology·Ethics·Free Will·의미·Stoic·Buddhism·Technology 윤리"
예술이 美였다면, 철학은 진리·선·자유다. 다음 글은:
- Epistemology — 우리는 어떻게 아는가
- Technology Ethics — Data, Privacy, AI Bias
- 자유의지와 Determinism
- Stoicism 재심화
- Buddhism과 소프트웨어 (Zen, Impermanence)
- Pragmatism (Dewey, James)
- Popper의 Falsifiability
- 엔지니어가 살아야 할 가치 체계
기술만으로 답하지 못하는 질문들. 시리즈 후반의 지성적 정점, 다음 글에서 이어진다.