동시성 프로그래밍을 하다 보면 데이터 경쟁(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.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 IssuesRFC 저장소에서 확인할 수 있습니다.

 

 

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

 

 

 

댓글 남기기