1. Ruby의 탄생 배경 (1993–1995)
Ruby는 **일본의 프로그래머 마츠모토 유키히로(Matz)**가 1993년에 설계를 시작해, 1995년 처음 공개한 프로그래밍 언어다.
당시 Matz의 문제의식은 명확했다.
- Perl은 강력하지만 코드가 난해하다
- Python은 깔끔하지만 당시에는 표현력이 제한적이라고 느꼈다
- “프로그래머가 즐겁게 사용할 수 있는 언어”가 필요했다
이 철학이 Ruby의 핵심이 된다.
“Ruby는 인간을 행복하게 하기 위해 만들어졌다.”
초기 Ruby의 특징은 다음과 같다.
- 완전 객체지향 (숫자, nil, true/false까지 모두 객체)
- 표현력이 풍부한 문법
- 개발자 생산성 중심
2. Ruby 1.x 시대 – 일본에서 세계로 (1995–2005)
Ruby 1.0 (1996)
- 기본 문법과 객체 모델 확립
- 일본 커뮤니티 중심으로 확산
Ruby 1.6 / 1.8
- Ruby 1.8 (2003)은 사실상 첫 번째 안정 표준
- Rails 이전까지 Ruby는 “마니아 언어”에 가까웠음
이 시기 Ruby는 다음 특징을 가진다.
- 인터프리터 성능은 느렸지만
- 문법의 자유도와 표현력은 매우 높았음
3. Rails 등장과 Ruby의 세계화 (2005–2010)
Ruby on Rails (2005)
- David Heinemeier Hansson(DHH)이 Rails 공개
- Ruby는 단숨에 웹 개발의 중심 언어로 부상
Rails가 가져온 변화:
- Convention over Configuration
- ActiveRecord
- MVC 패턴의 대중화
- “빠른 MVP 개발” 문화 정착
이 시기 Ruby의 위상:
- 스타트업 붐과 함께 폭발적 성장
- Twitter, GitHub, Shopify 등이 Ruby/Rails 채택
4. Ruby 1.9 – 언어 내부의 대전환 (2007–2012)
Ruby 1.9의 핵심 변화
- 새로운 VM(YARV, Yet Another Ruby VM)
- 성능 대폭 개선
- 인코딩 시스템(UTF-8) 내장
- 문법 일부 변경
문제점도 있었다.
- Ruby 1.8과 호환성 붕괴
- 젬 생태계의 혼란
하지만 결과적으로 Ruby는 현대 언어로 재탄생한다.
5. Ruby 2.x – 성숙과 안정의 시대 (2013–2020)
Ruby 2.0 ~ 2.7
이 시기는 “큰 혁명보다는 지속적 개선”의 시기다.
주요 특징:
- 성능 지속 개선
- Garbage Collector 개선
- Refinements, Keyword Arguments 등 추가
- Rails와의 안정적 공진화
Ruby 2.x는 다음 이미지를 확립했다.
- 생산성 높은 백엔드 언어
- “비즈니스 로직 표현에 강한 언어”
6. Ruby 3.x – 성능 선언과 병렬성 (2020–2024)
Ruby 3.0 (2020)
Ruby 역사상 가장 중요한 선언 중 하나가 등장한다.
“Ruby 3는 Ruby 2보다 3배 빠르다”
이를 위해 도입된 핵심 기술:
- MJIT / YJIT
- Ractor (병렬성 모델)
- 타입 힌트(RBS)
- 정적 분석 도구(Steep)
Ruby는 이 시점부터 단순한 스크립트 언어를 넘어
**“확장 가능한 서버 사이드 언어”**를 목표로 한다.
7. Ruby 4.0 – 미래 지향적 전환 (2025)
Ruby 4.0의 방향성
Ruby 4는 단순한 메이저 업데이트가 아니라 정책 변화에 가깝다.
주요 특징:
- 오래된 문법/동작의 정리
- 성능 최적화의 본격화
- 타입 시스템과 도구 생태계 강화
- “느리지만 우아한 언어”라는 이미지 탈피
의미 있는 변화:
- 하위 호환성보다 미래 설계를 우선
- Rails 8과의 긴밀한 연계
Ruby는 이제 다음 단계로 이동한다.
“즐거운 언어이면서도, 대규모 시스템을 감당할 수 있는 언어”
8. Ruby 히스토리 한 줄 요약
- 1.x: 즐거운 언어의 탄생
- Rails 시대: 웹 개발의 중심
- 1.9: 내부 구조 혁신
- 2.x: 안정과 성숙
- 3.x: 성능과 병렬성
- 4.x: 미래 지향적 재정비
참고 자료
- Ruby 공식 히스토리: https://www.ruby-lang.org/en/about/
- Ruby 릴리즈 노트: https://www.ruby-lang.org/en/news/
- Matz 인터뷰 모음: https://www.artima.com/intv/ruby.html
반응형
'Ruby' 카테고리의 다른 글
| Ruby - Gem(라이브러리) (1) | 2026.01.21 |
|---|---|
| Ruby - 환경 설정과 기초 문법 (0) | 2026.01.21 |