# 프로그래밍은 형편없다 [2014]

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29287](https://news.hada.io/topic?id=29287)
- GeekNews Markdown: [https://news.hada.io/topic/29287.md](https://news.hada.io/topic/29287.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-05-08T10:52:02+09:00
- Updated: 2026-05-08T10:52:02+09:00
- Original source: [stilldrinking.org](https://www.stilldrinking.org/programming-sucks)
- Points: 2
- Comments: 0

## Topic Body

- 소프트웨어 개발의 혼돈을 다리 건설 비유로 풀어낸 에세이, **모든 프로그래밍 팀은 미친 사람들로 구성**되어 있고 그 결과물 위에서 은행 소프트웨어와 인터넷이 돌아가고 있다는 자조적 고백  
- 완벽한 코드는 혼자서 한 가지만 수행하는 파일 속에만 존재하며, 현실에서는 금요일에 화요일까지 600개를 만들라는 지시 아래 **녹아내린 눈송이 더미 위에 피카소를 기대놓는** 식으로 운영  
- 웹 개발자는 매주 하나씩 새 기술을 배우면서 수백 개의 기존 도구가 깨지지 않았는지 확인해야 하고, 전문가여도 문제 원인 파악에 **6시간이 걸리는 것이 다행**인 세계  
- 인터넷은 수조 달러가 비공식 합의와 "TODO: FIX THIS"라고 적힌 10년 된 코드 위에 의존하고 있으며, **시스템 관리자 전원이 동시에 점심을 먹으면 문명이 붕괴**  
- 프로그래머는 하루 10~15시간 뇌가 원래 하도록 설계되지 않은 작업을 수행하며 **서서히 미쳐가고 있고**, 이것이 50파운드를 들어올리는 대신 선택한 직업의 대가  
  
---  
  
### 모든 프로그래밍 팀은 미친 사람들로 구성되어 있다  
- 육체 노동을 하는 친구들이 항상 "너는 편하잖아, 나는 모르도르 밑에 **드라이버로 터널을 팠다**"는 식으로 대화를 시작함  
- 스트레스와 정신적 고통이 나쁜 것이라는 데 동의한다면, `프로그래밍의 세계에 온 것을 환영합니다`  
- **다리 건설 비유**: 대도시 다리 프로젝트에 합류했더니 다음과 같은 상황임  
  - Mary는 프로젝트 리더, Fred는 나무만 다루는데 200피트 높이 급류 위 다리의 보행로를 담당함  
  - Dave는 스웨터를 도둑맞은 뒤 15단계 보안 체크를 설치함  
  - Phil은 엔지니어가 아닌데 **난간 금지 규칙**을 시행하며, 아무도 Phil이 뭘 하는지 모르지만 경영진과 관련 있어서 방치  
  - Sara는 최첨단("hemorrhaging-edge") 포장 기술 여러 개를 전부 설계에 반영함  
  - Tom과 Harry는 **미터법 vs 야드파운드법** 싸움을 수년째 진행 중이고, 먼저 작업한 사람의 단위가 적용  
  - 현수교로 설계했으나 아무도 현수교 건설법을 몰라 **중간에 지지 기둥을 추가**하고, 현수 케이블은 어딘가를 지탱하고 있을 것 같아 그대로 방치  
  - 신입에게 새 아이디어를 내라고 하지만, 정작 **추진공학 엔지니어**라 다리에 대해 아는 것이 없음  
- 이 다리를 건너겠냐고 물으면 아무도 안 건너지만, **이런 구조가 은행 소프트웨어, 웹사이트, 인터넷 보안 프로그램을 전부 만들었음**  
  
### 모든 코드는 나쁘다  
- 모든 프로그래머에게는 집에 아무도 없을 때 꺼내 읽으며 눈물 흘리는 **Good Code 파일**이 있음  
  - 함수와 변수 이름이 일관적이고, 간결하고, 명백히 멍청한 짓을 하지 않으며, 야생 환경이나 영업팀의 요구에 노출된 적이 없음  
  - 단 한 사람이 작성했고 다른 사람이 손댄 적 없으며, **30세 이상이 쓴 시처럼 읽힘**  
- 현실: 금요일에 화요일까지 **600개의 눈송이**를 만들라는 지시를 받으면 여기저기 편법을 쓰고, 동료가 녹여버리고, 전부 뒤섞인 형체 위에 피카소를 기대놓고, 다음 주에는 피카소가 쓰러지지 않게 **눈을 더 퍼올림**  
- 표준(standards)을 따르면 해결된다는 이론이 있지만, 표준 수가 컴퓨터가 실제로 할 수 있는 일보다 많고, 개인 취향에 의해 변형되므로 **동일한 작업을 수십 가지 다른 방식**으로 수행하는 코드베이스가 현실  
- 새 직장의 첫 몇 주는 모든 언어·프레임워크·표준을 알아도 프로그램이 어떻게 돌아가는지 파악하는 데 소비, 표준은 **유니콘**이기 때문  
  
### 항상 어둠이 있다  
- 어린 시절 벽장 비유: 들어가면 벽이 뒤로 물러나 선반이 되고, 다시 올려다보면 빛이 닿지 않는 **크롤스페이스의 절대적 허무**가 존재하며, 매일 밤 손전등과 인형으로 막아두던 괴물이 거기 살고 있음을 직감  
- 프로그래밍 학습도 동일: 유용한 도구를 배우고, 주변을 둘러보면 새 도구가 있고, 그 도구가 항상 침대 바로 옆에 있던 **밑바닥 없는 공포**를 보여줌  
- 평균적 웹 개발자의 현실  
  - 12개의 프로그래밍 언어, 수많은 라이브러리·표준·프로토콜에 익숙해도 매주 하나씩 새로 배워야 함  
  - 수백 개의 기존 도구가 업데이트되거나 깨졌는지 확인하고, 술 취한 주말에 영리하게 활용했던 **버그가 수정되지 않았는지** 체크 필요  
  - 모든 게 최신인 줄 알았는데 갑자기 전부 고장  
- 고장 원인 예시: 누군가 1/0을 Infinity로 쓰기로 하고, 다른 누군가 그걸 **컴파일러에서 에러로** 만들면서 아무에게도 알리지 않음, 결과적으로 전문가도 원인 파악에 6시간 소요  
- 자기 분야의 전문 지식조차 컴퓨터 과학 전체에서 극히 일부이며, **5년 된 MacBook이 어떻게 작동하는지 아는 사람은 단 한 명도 없음**  
- "껐다 켜보세요"라고 말하는 이유: 뭐가 잘못됐는지 전혀 모르기 때문에 컴퓨터를 혼수상태에 빠뜨리고 **내장 자동 의사팀**에게 맡기는 것  
  
### 인터넷은 그 자체로 특별한 지옥  
- 동적 페이지 3개짜리 쇼핑카트 수준의 웹사이트도 **24시간 팀이 유지보수**, 모든 것이 항상 모든 곳에서 모든 사람에게 고장 나고 있기 때문  
- 지금 이 순간 Facebook 직원이 수만 개의 에러 메시지를 처리 중이고, Google 사무실의 한 팀은 **3일째 잠을 못 잤으며**, 어딘가의 데이터베이스 프로그래머는 빈 Mountain Dew 병에 둘러싸여 남편이 죽은 줄 앎  
- 시스템 관리자 전원이 동시에 점심을 먹으러 가면, 델리에 도착하기도 전에 **통조림을 두고 돌연변이 무리와 싸워야** 할 것  
- 수조 달러가 비공식 합의와 10년 전에 쓰인 **"TODO: FIX THIS IT'S A REALLY DANGEROUS HACK"** 코멘트가 달린 코드 위에 의존  
- 첩보·이익·심심풀이로 인터넷 곳곳을 공격하는 집단이 있고, **4chan은 오후 한나절 기분이 나빠서** 누군가의 인생과 사업을 파괴할 수 있지만, 핵겨울에 핵 하나 더 떨어지는 것이라 걱정도 안 됨  
- 인터넷에서는 "이거 가끔 되는 것 같아"라고 말하면 그것이 인터넷의 일부가 되고, 몇 백 달러와 컴퓨터만 있으면 누구든 **끔찍한 해킹 코드를 올려** 전체를 조금씩 나쁘게 만들 수 있음  
- 인터넷의 비밀 규칙: 브라우저를 처음 열고 5분 후 러시아 아이가 주민등록번호를 갖고, 가입하면 NSA가 위치 추적을 시작하고, 이메일을 보내면 나이지리아 빌보드에 주소가 올라감  
- 이것은 무관심 때문이 아니라 **모든 것이 고장 나 있고 좋은 코드가 없어서** 모두가 그냥 돌아가게 하려고 안간힘을 쓰기 때문  
  
### 우리가 미친 게 아니라 미쳐가는 것이다  
- `ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu` — 이게 웃기다면 아직 괜찮지만, "arrayReverse"냐는 질문에 `s/camel/_/`로 답하는 것이 자연스러우면 **이미 코드로 말하는 단계**에 진입  
- 인간의 뇌는 기본적 논리에 특별히 뛰어나지 않은데, 하루 종일 **극도로 복잡한 논리**를 수행하는 직업이 존재  
- 추상적 조건과 요구사항의 거대한 사슬을 뒤져 빠진 쉼표 같은 것을 찾는 작업을 하루 종일 하면, 사람의 얼굴을 보면서도 말이 끝났는지 모름 — **세미콜론이 없기 때문**  
- 난해한 프로그래밍 언어(esolang) 예시로 뇌의 파괴적 영향 시연  
  - C++의 "Hello World"와 동일한 출력을 하는 프로그램이 **Brainfuck**, **Ook!**, 마야 숫자를 90도 회전한 ASCII 아트로 표현하는 Perl 코드 등으로 존재  
  - 마야 숫자 프로그램은 **대회에서 우승**, 이런 세계에서 하루에 담배 한 갑 피우는 것을 아무도 의문시하지 않음  
- 모든 프로그래머는 뇌가 하도록 설계되지 않은 일을 하루 10~15시간, 주 5~7일 강제하고 있으며 **모두 서서히 미쳐가는 중**  
- 결론: 50파운드 물건을 들어올리는 대신, **사탄의 체모를 다듬으며 열린 두개골 위에서 식사하는 사탄을 모시는** 기회를 얻었고, 그 대가로 인터넷의 일부가 며칠 더 돌아감

## Comments



_No public comments on this page._
