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

오늘은 Pony 언어의 독특한 지원 정책과 버전 관리 방식을 자세히 살펴보겠습니다.

 

Pony-Language

 

 

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.22amd64, arm642025-102027년보안 업데이트 종료 시까지
Alpine Linux 3.21amd64, arm642025-102026년보안 업데이트 종료 시까지
Alpine Linux 3.20amd64, arm642025-042026년보안 업데이트 종료 시까지
Ubuntu 24.04 LTSamd642024년2029년Ubuntu 보안 지원 기간
Ubuntu 24.04 LTSarm642025-102029년Ubuntu 보안 지원 기간
Ubuntu 22.04 LTSamd642022년2027년Ubuntu 보안 지원 기간
Windows 11amd64, arm64진행 중미정Full Support
macOSamd64 (Intel)진행 중미정Full Support
macOSarm64 (Apple Silicon)2024년미정2024년 재지원

최근 지원 종료된 플랫폼 (Best Effort로 전환)

플랫폼지원 종료 시점최종 지원 버전사유
Fedora 412025-100.60.4 이전EOL 임박으로 빌드 중단
Fedora 392025년 초0.56.xEOL 도달
Ubuntu 20.04 LTS2025-100.59.xEOL 도달
Ubuntu 18.04 LTS2023년0.54.xEOL 도달, 0.55.0부터 지원 중단
FreeBSD2023년0.55.xCI 리소스 부족으로 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.x0.60.42025-10-31Alpine 3.22 추가, Fedora 41 빌드 중단
0.60.32025-10-20멀티플랫폼 버전별 Docker 이미지
0.60.22025-10-18멀티플랫폼 릴리즈 Docker 이미지
0.60.02025-10-15Ubuntu 20.04 지원 종료, LLVM 18.1.8, arm64 Windows 추가
0.59.x0.59.02025-04-26Runtime 이벤트 트레이싱, LLVM 17.0.1
0.58.x0.58.132025-03-09Epoll ASIO 버그 수정
0.58.122025-03-01Trait 상속 버그 수정
0.58.112025-02-22Actor 회수 버그 수정
0.58.102025-02-01중요 보안 패치: ISO Soundness 문제
0.57.x0.57.02024년Actor 핀닝 기능 추가
0.56.x0.56.02024년Alpine 3.17+ 필수, 링크 호환성 변경
0.55.x0.55.22024년Actor heap 최적화 버그 수정
0.55.12024년Heap chunk 버그
0.55.02024년Docker 이미지 Ubuntu 22.04 기반으로 변경
0.50.x-0.54.x여러 버전2023-2024안정성 개선 및 최적화
0.40.x-0.49.x여러 버전2021-2022지속적인 기능 개선
0.35.x0.35.12020-05Windows ProcessMonitor 버그 수정
0.35.02020년주요 기능 업데이트
0.27.x0.27.02018년LLVM 7/6/5 공식 지원, LLVM 3.9 지원 종료 예정
0.21.x0.21.32017-12LLVM 3.7, 3.8 지원 중단
0.21.12017-12Scheduler 메모리 관리 개선
0.14.x0.14.02017-05중요 버그 수정, 네트워크 에러 처리 강제화
0.13.x0.13.02017-04타입 시스템 문제 수정 (고우선순위)
0.10.x-0.12.x여러 버전2016-2017초기 안정화
0.6.x-0.9.x여러 버전2016-10 ~ 2016-11초기 공개 릴리즈들
0.3.x-0.5.x0.5.02016-09초기 개발 버전들
0.4.02016-09초기 개발
0.3.32016-09초기 개발

2024-2025년 상세 릴리즈 내역

버전날짜핵심 내용중요도
0.60.42025-10-31Alpine 3.22 arm64/amd64 지원 추가일반
0.60.32025-10-20멀티플랫폼 버전별 이미지일반
0.60.22025-10-18멀티플랫폼 릴리즈 이미지일반
0.60.02025-10-15Ubuntu 20.04 종료, ld.gold 제거, arm64 Windows중요
0.59.02025-04-26Chromium JSON 트레이싱, GC 개선중요
0.58.132025-03-09Epoll race condition 수정일반
0.58.122025-03-01Trait 메서드 상속 수정일반
0.58.112025-02-22Use-after-free 수정중요
0.58.102025-02-01ISO 변수 Soundness 문제긴급

 

 

6. 중요 보안 업데이트 히스토리

Pony 사용 시 반드시 알아야 할 중요 보안 패치들입니다:

버전날짜문제영향도권장 조치
0.58.102025-02-01ISO 변수 매칭 시 soundness 문제치명적즉시 업데이트 필수
0.58.112025-02-22Actor 빠른 회수 시 use-after-free높음업데이트 권장
0.14.02017-05Hashmap 구현 오류로 인한 GC 버그높음업데이트 권장
0.13.02017-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.12025년 4월 업데이트
0.27.0LLVM 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:nightlyamd64, arm64Alpine 3.21최신 개발 빌드
ponyc:releaseamd64, arm64Alpine 3.21최신 안정 릴리즈
ponyc:0.60.4amd64, arm64Alpine 3.21특정 버전

중단된 Docker 이미지

태그 패턴중단 시점대체
ponyc:*-alpine2025-10nightly 태그 사용
glibc 기반 이미지2025-10musl 기반(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 IssuesRFC 저장소에서 확인할 수 있습니다.

 

 

13. 공식 리소스 및 커뮤니티

공식 리소스

리소스URL용도
공식 웹사이트ponylang.io전체 정보
튜토리얼ponylang.io/learn학습
Playgroundplayground.ponylang.io브라우저 테스트
GitHubgithub.com/ponylang/ponyc소스코드
릴리즈 노트ponylang.io/categories/release버전 정보

커뮤니티 및 지원

채널URL목적
Zulip 채팅ponylang.zulipchat.com실시간 질문
GitHub DiscussionsGitHub토론
Pony Patternspatterns.ponylang.io디자인 패턴
Standard Librarystdlib.ponylang.ioAPI 문서

 

 

마무리하며…

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를 활용해보시길 추천드립니다! 🙂

 

 

 

댓글 남기기