Ruby — 인간 행복을 위해 설계된 언어
1. 요약
Ruby는 1995년 12월 21일 일본의 Yukihiro "Matz" Matsumoto가 발표한 객체지향 스크립트 언어다. Matz는 1993년부터 Perl과 Python의 한계에 답답함을 느껴 자기 손으로 프로그래머가 행복한 언어 를 짓기 시작했다. "Ruby is designed for humans, not machines" 가 핵심 슬로건이다.
2. 배경 — 일본의 객체지향 스크립트 갈증
1990년대 초반 Matz는 Perl을 장난감 언어 로 여겼고, Python은 진정한 객체지향이 아니다 라고 비판했다. 그가 바라던 것은 두 가지다. 첫째, 모든 것이 객체인 진정한 객체지향. 둘째, Perl처럼 자유롭게 표현할 수 있는 풍부한 문법.
이름은 동료의 생일석에서 따왔다. 진주(Pearl, Perl의 발음)와 같은 보석 계열을 의도한 작명이다.
Matz는 일본 인터넷 그룹에서 Ruby 0.95를 발표한 직후 Netlab(Network Applied Communication Laboratory)에 채용되어 Ruby 전담 개발자가 되었다. 일본은 2000년경 Ruby가 Python을 추월할 정도로 빠르게 받아들였다.
3. 핵심 특징
- Pure object-oriented — 정수·문자열·nil 모두 객체. 메서드 호출 가능.
- Principle of Least Surprise (POLS) — 코드를 보면 동작이 짐작되어야 한다.
- TMTOWTDI — Perl에서 물려받은 "There's More Than One Way To Do It" 철학
- Blocks & closures — 코드 블록을 메서드 인자로 자유롭게 넘김
- Metaprogramming — 런타임에 클래스·메서드를 동적으로 박을 수 있음
- Open classes — 기존 클래스에 메서드를 추가할 수 있음 (논쟁적이지만 강력)
4. 주 용도
- 1995~2005: 일본 내 스크립트·시스템 관리·웹 개발
- 2005~2015: Ruby on Rails (David Heinemeier Hansson, 2004) — 웹 개발의 패러다임을 바꿈. Convention over Configuration·DRY 원칙으로 프레임워크 = 설계 를 보여줌.
- 2015~현재: GitHub·Shopify·Airbnb 등 거대 서비스의 백본. Sorbet(타입 시스템)·YJIT(JIT 컴파일러)로 진화.
5. 시대 설계 도구 매핑
Ruby on Rails가 등장한 2004년은 Agile·TDD가 산업계 주류로 기록된 시점과 겹친다. Rails는 "Convention over Configuration" 을 통해 설계 결정을 프레임워크 안에 박아 두었고, 개발자는 비즈니스 로직 설계 에만 집중하면 됐다.
이는 설계의 위치 이동 을 보여준다. 90년대 PHP 시대의 설계는 코드 안에 있었다면, 2000년대 Rails 시대의 설계는 프레임워크 안에 있었다. 2010년대 마이크로서비스 시대의 설계는 시스템 아키텍처 안에 있다.
6. 강의 활용
Ruby는 "언어 설계 자체가 곧 사용자 경험" 이라는 점을 보여주는 사례다. Matz가 처음부터 프로그래머 행복 을 설계 목표로 박았기 때문에, Ruby는 읽기 좋고 쓰기 즐거운 언어가 되었다.
이는 강의의 핵심 명제와 연결된다. "AI 에게 어떻게 일을 시키는가가 곧 설계도이다" — Ruby의 설계 철학(POLS·인간 중심)은 30년 후 LLM 프롬프트 설계의 원리와 정확히 같다. 읽기 좋게·예측 가능하게·인간 중심으로 기록한다.
또한 Rails는 프레임워크가 설계 결정을 기록하는 좋은 예시로 강의에 활용할 수 있다. Vibe Coding 시대의 CLAUDE.md·AGENTS.md 가 바로 프레임워크의 설계 결정을 명시적으로 기록하는 도구이기 때문이다.
출처
- Ruby (programming language) - Wikipedia
- Yukihiro Matsumoto - Wikipedia
- The Ruby Story - twobithistory
- The Philosophy of Ruby - Artima
- Yukihiro Matsumoto: "Ruby is designed for humans, not machines"
그룹 시리즈
→ synthesis/group-g5 (시대 그룹 종합 카드)