Erlang — "실패한다면 어떻게 할 것인가"를 답한 통신 언어
1. 요약
Erlang은 1986년 Ericsson Computer Science Laboratory에서 Joe Armstrong·Robert Virding·Mike Williams가 만든 언어다. 통신 교환기의 결함 허용·고가용성 요구를 풀기 위해 기록되었다. 1998년 오픈소스로 공개되었고, 같은 해 Ericsson AXD301 스위치가 9개의 9 (99.9999999% 가용성) 를 박으며 전설이 되었다.
2. 배경 — 통신 산업의 잔혹한 요구사항
1980년대 중반 Ericsson 연구실은 통신 교환기의 새 언어를 찾고 있었다. 기존 모델은 한결같이 "실패는 없다고 가정한다" 였다. Armstrong과 동료는 같은 질문을 반복했다. "실패하면 어떻게 할 것인가?"
이 질문이 Erlang 설계의 핵심이 됐다. 결함 허용은 예외 처리가 아니라 시스템 아키텍처 라는 통찰이다. "Let it crash" — 프로세스가 죽으면 그냥 죽게 두고, 감시자(supervisor)가 새 프로세스를 박아 다시 시작한다.
초기 구현은 Prolog로 박혔고, 이전 Ericsson 교환기 언어 PLEX의 영향도 받았다.
3. 핵심 특징
- Lightweight processes — OS가 아니라 Erlang 런타임이 관리하는 마이크로 프로세스. 한 머신에 수백만 개도 박을 수 있다.
- Message passing only — 메모리 공유 없음. 프로세스 간 통신은 메시지로만.
- Pattern matching + Guards — 함수형 스타일의 분기
- Hot code swapping — 시스템을 멈추지 않고 코드를 교체할 수 있음 (통신 시스템 필수)
- Supervisor trees — 프로세스 계층이 곧 결함 회복 트리
- OTP (Open Telecom Platform) — 결함 허용 분산 시스템의 표준 라이브러리
4. 주 용도
- 1986~1998: Ericsson 내부 통신 교환기·라우터
- 1998~2010: 통신 산업 전체로 확산. WhatsApp(2009)이 한 노드 200만 동시접속을 박으며 유명해짐.
- 2010~현재: Discord·Riot Games·Pinterest 등 분산 시스템. Elixir(2011, José Valim) 가 Erlang VM 위에 더 친숙한 문법을 정합.
5. 시대 설계 도구 매핑
Erlang은 "동시성과 내결함성을 언어 차원에 기록한다" 는 패러다임의 표준이다. 같은 시기 산업계는 스레드·뮤텍스·세마포어 같은 저수준 동시성 도구로 씨름하고 있었다. Erlang은 그 추상을 프로세스·메시지·감시 로 박았다.
이는 Actor Model 의 산업적 구현이며, 후일 Akka(Scala)·Orleans(Microsoft)·Ray(Python)에 영향을 줬다. 멀티 에이전트 시스템 설계 의 원형이기도 하다 — 강의의 AI 에이전트 오케스트레이션 과 직결된다.
설계 도구 측면에서 Erlang은 Supervisor tree 라는 시각적·계층적 시스템 설계 도구 를 박았다. UML 시퀀스 다이어그램이 호출 관계 를 그렸다면, Supervisor tree는 결함 회복 관계 를 그렸다.
6. 강의 활용
Erlang은 강의에서 "AI 에이전트 시대의 결함 허용" 을 설명할 때 핵심 사례다. AI 에이전트 시스템도 "한 에이전트가 실패하면 어떻게 할 것인가" 를 설계해야 한다. 40년 전 Erlang이 박은 답이 그대로 유효하다.
- Let it crash → AI 에이전트도 실패 시 재시작
- Supervisor tree → 메타 에이전트가 하위 에이전트를 감시
- Message passing → 에이전트 간 SNAC 통신
- Hot code swapping → 운영 중 프롬프트·CLAUDE.md 갱신
이는 "언어는 변해도 분산 시스템 설계 원리는 일관된다" 는 강의 핵심 명제의 가장 좋은 예시다. 1986년 통신 교환기 설계와 2026년 AI 에이전트 오케스트레이션이 같은 설계 원리 위에 기록된다.
또한 Erlang은 "산업의 잔혹한 요구가 언어를 기록한다" 는 점을 보여준다. 9개의 9 가용성은 사치가 아니라 통신 산업의 생존 조건이었다. AI 시대도 생존 조건 이 새 언어·도구를 박을 것이다 — 그 신호가 이미 Vibe Coding·Spec Kit으로 박히고 있다.
출처
- Erlang (programming language) - Wikipedia
- A History of Erlang - Joe Armstrong PDF
- Joe Armstrong PhD Thesis - Making reliable distributed systems
- Concurrency in Computing - Joe Armstrong
그룹 시리즈
→ synthesis/group-g6 (시대 그룹 종합 카드)