동시성 프로그래밍을 하다 보면 데이터 경쟁(Data Race)과 데드락(Deadlock) 문제로 머리가 아플 때가 많죠. 그런 분들을 위해 등장한 언어가 바로 Pony입니다. 하지만 Pony의 지원 정책을 찾아보다가 당황하신 분들이 많을 거예요. 왜냐하면 다른 언어들처럼 “LTS 버전은 몇 년”, “이 버전은 언제 EOL”이라는 전통적인 방식을 사용하지 않거든요.
오늘은 Pony 언어의 독특한 지원 정책과 버전 관리 방식을 자세히 살펴보겠습니다.

1. Pony 언어, 도대체 어떤 언어인가요?
Pony는 Imperial College London에서 박사과정을 밟던 Sylvan Clebsch가 만든 오픈소스 프로그래밍 언어입니다. 그가 이 언어를 만들게 된 계기가 재미있는데요, 고성능 동시성 코드를 안전하게 작성할 수 있는 언어가 없어서 답답했다고 합니다.
Pony의 주요 특징
Pony는 Actor 모델 기반의 동시성을 제공하며, 독특한 Reference Capabilities 시스템을 통해 컴파일 타임에 데이터 경쟁을 완전히 방지합니다. 쉽게 말해, 프로그램이 컴파일만 되면 동시성 버그 걱정은 접어도 된다는 뜻입니다.
핵심 기능:
- 타입 안전성(Type Safety): 수학적으로 증명된 타입 시스템
- 메모리 안전성(Memory Safety): Null이라는 개념 자체가 없습니다
- 동시성 안전성(Concurrency Safety): 컴파일 타임에 데이터 경쟁 방지
- Lock-Free: 락이나 뮤텍스 같은 전통적인 동기화 메커니즘이 필요 없습니다
- 네이티브 코드: AOT(Ahead-of-Time) 컴파일로 고성능 실행
각 Actor의 힙이 독립적으로 가비지 컬렉션되기 때문에, “Stop the World” 방식의 전역 가비지 컬렉션이 필요하지 않습니다. 이는 실시간성이 중요한 시스템에서 큰 장점이죠.
2. Pony의 라이센스 정책 – 자유롭게 사용하세요
Pony는 BSD-2-Clause 라이센스를 사용합니다. 이는 매우 관대한 오픈소스 라이센스로, 상업적 사용에도 제약이 거의 없습니다. 소스코드를 수정해서 재배포할 때 원저작권 표시만 유지하면 됩니다.
BSD-2-Clause의 장점:
- 상업적 사용 가능
- 소스 코드 공개 의무 없음
- 수정 및 재배포 자유
- GPL보다 훨씬 제약이 적음
공식 라이센스 정보는 GitHub 저장소의 LICENSE 파일에서 확인할 수 있습니다.
3. 전통적인 LTS/EOL이 없다? Pony만의 독특한 방식
여기가 가장 중요한 부분입니다. Pony는 아직 1.0 버전 이전(Pre-1.0) 상태이며, 정기적으로 호환성이 깨지는 변경사항(Breaking Changes)을 도입합니다. 그래서 다른 성숙한 언어들처럼 “LTS 버전은 5년 지원”, “이 버전은 2027년 EOL” 같은 전통적인 정책이 없습니다.
그렇다면 Pony는 어떻게 지원하나요?
Pony 팀은 플랫폼 기반 지원 정책(Platform-based Support Policy)을 사용합니다. 즉, 특정 Pony 버전의 지원 기간을 정하는 것이 아니라, 각 운영체제 플랫폼의 보안 업데이트 종료 시점까지 해당 플랫폼용 빌드를 제공합니다.
4. 플랫폼별 지원 정책 및 종료 일정 (2025년 11월 기준)
현재 Full Support 플랫폼
최신 릴리즈 정보를 기준으로 다음 플랫폼들이 공식 지원되고 있습니다:
| 플랫폼 | 아키텍처 | 지원 시작 | 지원 종료 예정 | 상태 |
|---|---|---|---|---|
| Alpine Linux 3.22 | amd64, arm64 | 2025-10 | 2027년 | 보안 업데이트 종료 시까지 |
| Alpine Linux 3.21 | amd64, arm64 | 2025-10 | 2026년 | 보안 업데이트 종료 시까지 |
| Alpine Linux 3.20 | amd64, arm64 | 2025-04 | 2026년 | 보안 업데이트 종료 시까지 |
| Ubuntu 24.04 LTS | amd64 | 2024년 | 2029년 | Ubuntu 보안 지원 기간 |
| Ubuntu 24.04 LTS | arm64 | 2025-10 | 2029년 | Ubuntu 보안 지원 기간 |
| Ubuntu 22.04 LTS | amd64 | 2022년 | 2027년 | Ubuntu 보안 지원 기간 |
| Windows 11 | amd64, arm64 | 진행 중 | 미정 | Full Support |
| macOS | amd64 (Intel) | 진행 중 | 미정 | Full Support |
| macOS | arm64 (Apple Silicon) | 2024년 | 미정 | 2024년 재지원 |
최근 지원 종료된 플랫폼 (Best Effort로 전환)
| 플랫폼 | 지원 종료 시점 | 최종 지원 버전 | 사유 |
|---|---|---|---|
| Fedora 41 | 2025-10 | 0.60.4 이전 | EOL 임박으로 빌드 중단 |
| Fedora 39 | 2025년 초 | 0.56.x | EOL 도달 |
| Ubuntu 20.04 LTS | 2025-10 | 0.59.x | EOL 도달 |
| Ubuntu 18.04 LTS | 2023년 | 0.54.x | EOL 도달, 0.55.0부터 지원 중단 |
| FreeBSD | 2023년 | 0.55.x | CI 리소스 부족으로 Full Support 중단 |
“Best Effort” 플랫폼 설명
Best Effort 플랫폼은 코드베이스에 지원 코드는 있지만 테스트나 사전 빌드 바이너리를 제공하지 않는 플랫폼입니다. 소스에서 직접 빌드하면 사용할 수 있지만, Pony 팀이 공식적으로 테스트하거나 지원하지는 않습니다.
현재 Best Effort 플랫폼:
- DragonFlyBSD (x86만)
- FreeBSD 전체 (0.55.x 이후)
- Windows 10 (x86만)
- Ubuntu 20.04 (0.60.0 이후)
- Ubuntu 18.04 (0.55.0 이후)
- Fedora 39 (2025년 이후)
- Fedora 41 (2025년 10월 이후)
5. Pony 전체 버전 히스토리 – 2016년부터 현재까지
Pony는 현재 0.60대 버전을 사용 중입니다. 2016년 초기 공개 릴리즈부터 2025년까지의 주요 버전을 정리했습니다.
주요 버전 타임라인 (Major & Notable Releases)
| 버전 그룹 | 주요 버전 | 릴리즈 날짜 | 주요 변경사항 |
|---|---|---|---|
| 0.60.x | 0.60.4 | 2025-10-31 | Alpine 3.22 추가, Fedora 41 빌드 중단 |
| 0.60.3 | 2025-10-20 | 멀티플랫폼 버전별 Docker 이미지 | |
| 0.60.2 | 2025-10-18 | 멀티플랫폼 릴리즈 Docker 이미지 | |
| 0.60.0 | 2025-10-15 | Ubuntu 20.04 지원 종료, LLVM 18.1.8, arm64 Windows 추가 | |
| 0.59.x | 0.59.0 | 2025-04-26 | Runtime 이벤트 트레이싱, LLVM 17.0.1 |
| 0.58.x | 0.58.13 | 2025-03-09 | Epoll ASIO 버그 수정 |
| 0.58.12 | 2025-03-01 | Trait 상속 버그 수정 | |
| 0.58.11 | 2025-02-22 | Actor 회수 버그 수정 | |
| 0.58.10 | 2025-02-01 | 중요 보안 패치: ISO Soundness 문제 | |
| 0.57.x | 0.57.0 | 2024년 | Actor 핀닝 기능 추가 |
| 0.56.x | 0.56.0 | 2024년 | Alpine 3.17+ 필수, 링크 호환성 변경 |
| 0.55.x | 0.55.2 | 2024년 | Actor heap 최적화 버그 수정 |
| 0.55.1 | 2024년 | Heap chunk 버그 | |
| 0.55.0 | 2024년 | Docker 이미지 Ubuntu 22.04 기반으로 변경 | |
| 0.50.x-0.54.x | 여러 버전 | 2023-2024 | 안정성 개선 및 최적화 |
| 0.40.x-0.49.x | 여러 버전 | 2021-2022 | 지속적인 기능 개선 |
| 0.35.x | 0.35.1 | 2020-05 | Windows ProcessMonitor 버그 수정 |
| 0.35.0 | 2020년 | 주요 기능 업데이트 | |
| 0.27.x | 0.27.0 | 2018년 | LLVM 7/6/5 공식 지원, LLVM 3.9 지원 종료 예정 |
| 0.21.x | 0.21.3 | 2017-12 | LLVM 3.7, 3.8 지원 중단 |
| 0.21.1 | 2017-12 | Scheduler 메모리 관리 개선 | |
| 0.14.x | 0.14.0 | 2017-05 | 중요 버그 수정, 네트워크 에러 처리 강제화 |
| 0.13.x | 0.13.0 | 2017-04 | 타입 시스템 문제 수정 (고우선순위) |
| 0.10.x-0.12.x | 여러 버전 | 2016-2017 | 초기 안정화 |
| 0.6.x-0.9.x | 여러 버전 | 2016-10 ~ 2016-11 | 초기 공개 릴리즈들 |
| 0.3.x-0.5.x | 0.5.0 | 2016-09 | 초기 개발 버전들 |
| 0.4.0 | 2016-09 | 초기 개발 | |
| 0.3.3 | 2016-09 | 초기 개발 |
2024-2025년 상세 릴리즈 내역
| 버전 | 날짜 | 핵심 내용 | 중요도 |
|---|---|---|---|
| 0.60.4 | 2025-10-31 | Alpine 3.22 arm64/amd64 지원 추가 | 일반 |
| 0.60.3 | 2025-10-20 | 멀티플랫폼 버전별 이미지 | 일반 |
| 0.60.2 | 2025-10-18 | 멀티플랫폼 릴리즈 이미지 | 일반 |
| 0.60.0 | 2025-10-15 | Ubuntu 20.04 종료, ld.gold 제거, arm64 Windows | 중요 |
| 0.59.0 | 2025-04-26 | Chromium JSON 트레이싱, GC 개선 | 중요 |
| 0.58.13 | 2025-03-09 | Epoll race condition 수정 | 일반 |
| 0.58.12 | 2025-03-01 | Trait 메서드 상속 수정 | 일반 |
| 0.58.11 | 2025-02-22 | Use-after-free 수정 | 중요 |
| 0.58.10 | 2025-02-01 | ISO 변수 Soundness 문제 | 긴급 |
6. 중요 보안 업데이트 히스토리
Pony 사용 시 반드시 알아야 할 중요 보안 패치들입니다:
| 버전 | 날짜 | 문제 | 영향도 | 권장 조치 |
|---|---|---|---|---|
| 0.58.10 | 2025-02-01 | ISO 변수 매칭 시 soundness 문제 | 치명적 | 즉시 업데이트 필수 |
| 0.58.11 | 2025-02-22 | Actor 빠른 회수 시 use-after-free | 높음 | 업데이트 권장 |
| 0.14.0 | 2017-05 | Hashmap 구현 오류로 인한 GC 버그 | 높음 | 업데이트 권장 |
| 0.13.0 | 2017-04 | 타입 시스템 안정성 문제 | 높음 | 업데이트 권장 |
특히 0.58.10은 매우 중요합니다. 이 버전에서 Pony의 핵심인 데이터 경쟁 방지 보장이 깨질 수 있는 심각한 문제가 수정되었기 때문에, 모든 사용자에게 즉시 업데이트가 권장되었습니다.
7. LLVM 버전별 지원 정책
Pony는 LLVM을 백엔드로 사용하기 때문에, LLVM 버전 지원 정책도 중요합니다:
| Pony 버전 | 지원 LLVM 버전 | 비고 |
|---|---|---|
| 0.60.0+ | LLVM 18.1.8 | 현재 사용 버전 |
| 0.59.0+ | LLVM 17.0.1 | 2025년 4월 업데이트 |
| 0.27.0 | LLVM 7, 6, 5 | 공식 지원 추가 |
| 0.27.0 이후 | LLVM 3.9 | 지원 종료 |
| 0.21.3 이후 | LLVM 3.7, 3.8 | 지원 중단 |
8. 실제 사용 시 알아둬야 할 Breaking Changes 정책
Pony는 Pre-1.0이기 때문에 정기적으로 호환성이 깨지는 변경사항을 도입하지만, 이러한 변경사항은 대체로 적응하기 쉬운 편입니다.
Breaking Changes 대응 전략
| 단계 | 조치 | 리소스 |
|---|---|---|
| 1. 모니터링 | CHANGELOG 정기 확인 | 공식 GitHub |
| 2. 정보 수집 | 릴리즈 노트 읽기 | 공식 웹사이트 |
| 3. 커뮤니티 | Zulip 채팅 활용 | 커뮤니티 |
| 4. 업데이트 | 순차적 버전 업그레이드 (건너뛰기 X) | – |
9. Docker 이미지 지원 정책의 변화
현재 제공되는 Docker 이미지 (2025년 11월 기준)
2025년 10월부터 멀티플랫폼(amd64, arm64) Docker 이미지를 제공하고 있습니다:
| 태그 | 플랫폼 | 기반 OS | 용도 |
|---|---|---|---|
ponyc:nightly | amd64, arm64 | Alpine 3.21 | 최신 개발 빌드 |
ponyc:release | amd64, arm64 | Alpine 3.21 | 최신 안정 릴리즈 |
ponyc:0.60.4 | amd64, arm64 | Alpine 3.21 | 특정 버전 |
중단된 Docker 이미지
| 태그 패턴 | 중단 시점 | 대체 |
|---|---|---|
ponyc:*-alpine | 2025-10 | nightly 태그 사용 |
| glibc 기반 이미지 | 2025-10 | musl 기반(Alpine)만 제공 |
| Windows 컨테이너 | 2025-10 | 사용률 저조로 중단 |
10. 설치 및 버전 관리 도구 – Ponyup
Pony 생태계에서는 ponyup이라는 공식 버전 관리 도구를 제공합니다.
Ponyup 설치 방법
Linux/macOS:
sh -c "$(curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ponylang/ponyup/latest-release/ponyup-init.sh)"
Windows: 공식 설치 가이드를 참조하세요.
버전 관리 명령어
# 최신 릴리즈 설치
ponyup update ponyc release
# 특정 버전 설치
ponyup update ponyc 0.60.4
# Nightly 빌드 설치
ponyup update ponyc nightly
# 설치된 버전 확인
ponyc --version
11. 프로덕션 환경에서의 Pony 사용 고려사항
Pony로 작성된 애플리케이션은 현재 프로덕션 환경에서 사용되고 있습니다. 하지만 Pre-1.0이라는 점을 고려해야 합니다.
프로덕션 사용 체크리스트
| 항목 | 확인 사항 | 권장/비권장 |
|---|---|---|
| 복잡한 동시성 | 해결이 필요한가? | ✅ 권장 |
| 팀 역량 | Breaking Changes 대응 가능? | ✅ 권장 |
| 성능 요구사항 | 높은 성능과 예측 가능한 레이턴시 필요? | ✅ 권장 |
| 장기 유지보수 | 업데이트 없이 장기 운영? | ⚠️ 신중 |
| 레거시 통합 | 기존 시스템과 통합? | ⚠️ 신중 |
| 학습 시간 | Reference Capabilities 학습 가능? | 평가 필요 |
12. 1.0 버전은 언제? 향후 로드맵
현재 Pony 팀은 1.0 릴리즈를 향해 나아가고 있지만, 구체적인 일정은 공개되지 않았습니다.
1.0 버전 이후 예상되는 변화
- API 안정성 보장
- 명확한 LTS/EOL 정책 수립
- Breaking Changes 최소화
- 장기 지원 버전(LTS) 도입 가능성
최신 로드맵은 공식 GitHub Issues와 RFC 저장소에서 확인할 수 있습니다.
13. 공식 리소스 및 커뮤니티
공식 리소스
| 리소스 | URL | 용도 |
|---|---|---|
| 공식 웹사이트 | ponylang.io | 전체 정보 |
| 튜토리얼 | ponylang.io/learn | 학습 |
| Playground | playground.ponylang.io | 브라우저 테스트 |
| GitHub | github.com/ponylang/ponyc | 소스코드 |
| 릴리즈 노트 | ponylang.io/categories/release | 버전 정보 |
커뮤니티 및 지원
| 채널 | URL | 목적 |
|---|---|---|
| Zulip 채팅 | ponylang.zulipchat.com | 실시간 질문 |
| GitHub Discussions | GitHub | 토론 |
| Pony Patterns | patterns.ponylang.io | 디자인 패턴 |
| Standard Library | stdlib.ponylang.io | API 문서 |
마무리하며…
Pony는 전통적인 LTS/EOL 정책 대신 플랫폼 기반의 유연한 지원 정책을 사용하는 독특한 언어입니다. Pre-1.0이라는 점에서 변화가 빠르지만, 동시성 안전성에 대한 강력한 보장과 높은 성능은 매력적인 특징입니다.
핵심 포인트 요약:
- 버전 정책: 전통적인 EOL 대신 플랫폼 보안 지원 기간을 따름
- 현재 최신: 0.60.4 (2025년 10월 31일)
- 플랫폼 지원: Alpine 3.20-3.22, Ubuntu 22.04/24.04, Windows 11, macOS
- 중요 변경: Ubuntu 20.04 지원 종료, Alpine 전용 Docker, arm64 지원 확대
- 보안: 0.58.10 soundness 문제 – 즉시 업데이트 필수
특히 복잡한 동시성 문제로 고민하고 계신 분들이라면, Pony의 독특한 접근 방식이 새로운 해결책이 될 수 있습니다. 다만 프로덕션 도입 전에는 팀의 역량과 프로젝트 특성을 충분히 고려해야 합니다. 플랫폼별 지원 기간을 체크하시고, 정기적으로 릴리즈 노트를 확인하면서 Pony를 활용해보시길 추천드립니다! 🙂