최종 업데이트: 2025년 2월 20일

PostScript란 무엇인가?
**PostScript (PS)**는 **페이지 설명 언어 (PDL)**로, 1982년 Adobe Systems에 의해 개발되었습니다. 주로 데스크탑 출판, 인쇄, 그래픽 디자인에 사용되어 텍스트와 이미지가 페이지에서 어떻게 나타나야 하는지를 설명합니다.

PostScript (PS)의 설명
PostScript (PS)는 페이지 설명 언어 (PDL)이자 프로그래밍 언어로, 동적 타이핑과 스택 기반입니다. 이는 다음과 같은 의미를 가집니다:
1. 페이지 설명 언어 (PDL)란 무엇인가?
페이지 설명 언어는 그래픽과 텍스트가 인쇄된 페이지나 스크린에 어떻게 나타나는지를 정의합니다. PostScript는 프린터, 출판 소프트웨어, 디지털 조판에 사용되어 폰트, 이미지, 레이아웃을 정확히 렌더링합니다.
2. 스택 기반 프로그래밍 언어란?
PostScript는 명령을 처리하기 위해 스택을 사용하며, 이는 마지막 입력, 최초 출력 (LIFO) 방식을 따릅니다. 예를 들어, PostScript에서 두 수를 더하려면 스택에 값을 푸시하고 나서 연산자를 호출합니다:
10 20 add
이는 10
과 20
을 스택에 푸시한 뒤, add
명령어가 이를 팝하여 결과 (30
)를 스택에 푸시합니다.
3. 동적 타이핑
PostScript는 명시적 타입 정의가 필요하지 않습니다. 변수가 사전 정의된 타입 없이 다양한 타입(숫자, 문자열, 배열 등)을 가질 수 있습니다.
4. PostScript의 용도
PostScript는 주로 데스크탑 출판 및 전자 출판에 사용되며, 이는 폰트, 레이아웃, 그래픽을 정교하게 제어하여 고품질 문서를 생성하고 인쇄하는 데 도움을 줍니다.
5. 튜링 완전 언어
튜링 완전이라는 것은 PostScript가 충분한 메모리와 시간이 주어지면 이론적으로 모든 계산을 수행할 수 있음을 의미합니다. 이는 인쇄에만 국한되지 않고 일반 프로그래밍 작업에도 사용될 수 있음을 의미합니다.
6. 역사와 개발
- 1982년부터 1984년까지 Adobe Systems에 의해 개발됨.
- John Warnock, Charles Geschke, Doug Brotz, Ed Taft, Bill Paxton에 의해 만들어짐.
- 최신 버전인 PostScript 3는 1997년에 출시되어 높은 성능, 색상 관리 및 이미지 압축이 개선됨.
PostScript의 역사
PostScript의 기원은 1976년 Evans & Sutherland의 John Gaffney가 그래픽 데이터베이스에서 페이지 설명 언어 컨셉을 개발한 때로 거슬러 올라갑니다. 같은 시기에, Xerox PARC는 레이저 프린터를 개발하며 페이지 이미지를 정의할 표준을 필요로 했습니다. 처음에는 Press 형식을 만들었고, 후에 Interpress로 발전하여 John Gaffney와 Martin Newell이 1978년에 개발했습니다.

1982년, John Warnock과 Chuck Geschke는 Xerox PARC를 떠나 Adobe Systems를 공동 설립하였고, Doug Brotz, Ed Taft, Bill Paxton과 함께 Interpress의 단순화된 대안으로 PostScript를 개발했습니다. 이 제품은 1984년에 상업적으로 출시되었습니다.
PostScript 성공에 대한 Apple의 역할
1983년, Steve Jobs는 PostScript가 Macintosh에 적합하다고 판단하고 Adobe로부터 150만 달러에 라이선스를 얻었으며, Adobe 주식의 20%를 위한 250만 달러를 추가로 지불했습니다. 그는 또한 Adobe를 인수하려 했으나 실패했습니다. Apple과 Adobe는 Apple의 LaserWriter 프린터를 위해 PostScript를 최적화하는 데 협력했고, 이는 데스크탑 출판 혁명에 중요한 역할을 했습니다.
Adobe의 폰트 렌더링 및 힌팅 기술 발전 덕분에 PostScript는 낮은 해상도의 300-dpi Canon 레이저 프린터에서도 유용하게 사용되었습니다. Adobe는 이 기술을 특허로 보호하지 않고 비밀로 유지했습니다.
PostScript의 쇠퇴와 유산
1980년대와 1990년대 동안 PostScript는 레이저 프린터에 널리 사용되었으나, 높은 처리 능력과 메모리 요구 사항 때문에 가격이 비쌌습니다. 프린터가 저렴해지고 컴퓨터가 강력해지면서, 소프트웨어 기반 솔루션이 하드웨어 PostScript 처리를 대체했습니다. 2001년까지 대부분의 저가형 프린터는 잉크젯 기술과 소프트웨어 렌더링을 선호하며 PostScript 지원을 중단했습니다.
그러나 PostScript는 고급 전문 프린터에서 여전히 강세를 보이며, 여기서는 컴퓨터에서 프린터로 렌더링을 오프로드하여 성능을 향상시킵니다. 또한, PDF (Portable Document Format)—직접적인 PostScript의 후손—는 전자 문서 배포의 표준이 되었습니다.
PostScript의 레벨
PostScript는 기능, 성능, 효율성을 개선하면서 여러 레벨로 발전했습니다. 세 가지 주요 레벨이 있습니다:

1. PostScript 레벨 1 (1984)
원래의 PostScript (1984년에 출시된 레벨 1)는 사용자들이 텍스트, 그래픽, 이미지로 페이지 레이아웃을 정확히 제어할 수 있게 했으며, 초기 레이저 프린터에 사용되었습니다. 그러나 이 버전은 그레이스케일에만 국한되었고, 복잡한 그래픽을 처리하는 데 속도가 느렸으며 이미지 압축이 지원되지 않아 파일 크기가 컸습니다.
- 1984년 Adobe에 의해 출시된 초기 버전.
- 텍스트, 그래픽, 이미지를 위한 장치 독립적인 페이지 설명을 제공.
- 타이포그래피와 레이아웃에 대해 정확한 제어를 허용.
- Apple LaserWriter를 포함한 첫 PostScript 프린터에 사용됨.
- 제한 사항:
- 색상 지원 결여 (그레이스케일만 가능).
- 복잡한 그래픽의 경우 느린 처리 속도.
- 이미지 압축이 내장되어 있지 않아, 파일 크기가 큼.
2. PostScript 레벨 2 (1991)
PostScript 레벨 2 (1991)는 성능, 컬러 인쇄, 파일 압축, 폰트 처리, 복잡한 그래픽 처리 속도를 개선했습니다.
- 성능 및 메모리 효율성 향상.
- 컬러 인쇄(CMYK 및 스팟 컬러) 지원 추가.
- 파일 크기를 줄이기 위한 데이터 압축 도입.
- 폰트 처리 개선(타입 1 및 타입 3 폰트).
- 더 나은 텍스트 렌더링을 위한 패턴, 폼 및 컴포지트 폰트 도입.
- 레벨 1보다 복잡한 그래픽에 대한 처리 속도가 더 빠름.
3. PostScript 3 (1997)
PostScript 3 (1997)은 더 빠른 렌더링, 개선된 색상, 매우 높은 해상도 인쇄 지원, 폰트 향상 및 향상된 그래픽 효과를 특징으로 한 주요 업데이트였습니다. 이제 덜 일반적이지만 일부 고급 인쇄에서는 여전히 사용됩니다.
- 더 효율적 렌더링을 제공하는 주요 업그레이드.
- ICC 프로파일을 이용한 향상된 색상 관리.
- 고해상도 인쇄 지원 향상(2400 dpi 이상).
- 폰트 처리 향상, 다중 마스터 폰트 지원 포함.
- 더 많은 투명도 및 음영 효과(향상된 그래픽 랜더링 제공).
- 현대 출판에서의 PDF 기반 워크플로우로 대체되었지만, 일부 고급 프린터에서는 여전히 사용됨.
PostScript의 인쇄
PostScript 이전:
- 초기 프린터는 보통 ASCII로 텍스트 문자만 인쇄할 수 있었으며, 고정된 글리프(예: 타자기 키, 금속 밴드 또는 광학 판)를 사용했습니다.
- 도트 매트릭스 프린터는 선택 가능한 폰트 및 사용자 지정 글리프 업로드를 도입했으며, escape sequences를 통해 기본적인 래스터 그래픽을 제공했으나 각 프린터 모델에 대한 특정 드라이버가 필요했습니다.
- 벡터 그래픽은 플로터(예: HPGL 기반)에서 처리되었지만, 이들은 느리고 비싸며 그래픽에만 제한적이었습니다.
PostScript 인쇄:
- 레이저 프린터는 도트 매트릭스 프린터와 플로터의 장점을 결합하여 동일한 페이지에 고품질 텍스트와 그래픽을 가능하게 했습니다.
- PostScript는 전 세계의 인쇄 제어를 통합하여, 다양한 프린터 및 소프트웨어에서 작동하는 장치 독립적인 언어를 제공했습니다.
- 전통적인 프린터 제어 언어와 달리 PostScript는 완전한 프로그래밍 언어로, 정교한 문서 렌더링을 신속하게 수행할 수 있습니다.
- 즉석에서의 래스터화: PostScript는 모든 것을 직선 및 베지어 곡선으로 정의하며, 매끄러운 확대, 회전 및 변환이 가능합니다.
- PostScript 해석기, 이른바 **Raster Image Processors (RIPs)**는 최종 출력을 위해 필요한 도트로 명령을 변환합니다.
PostScript 문자 처리
PostScript의 폰트 시스템은 기본 그래픽 형상을 사용하여 스케일이 가능한 글리프를 생성하여, 폰트 크기를 늘이거나 줄이더라도 품질 손실 없이 사용할 수 있도록 합니다. 폰트 힌팅은 폰트가 작은 크기나 낮은 해상도에서도 명확하고 읽기 쉽게 유지되도록 합니다. PostScript 폰트는 다양한 기능을 제공하는 여러 “타입” 형식으로 저장됩니다.

PostScript 폰트 시스템
- 그래픽 프리미티브를 사용하여 스케일 가능한 글리프를 정의합니다.
- 폰트 힌팅은 낮은 해상도에서도 높은 품질의 렌더링을 보장합니다.
- 전문 타입 형식에 저장된 폰트는 다양한 기능을 제공합니다.
PostScript 폰트 타입
PostScript는 다양한 폰트 형식을 제공했습니다. Adobe의 고품질 Type 1 폰트는 처음에는 라이선스를 받아야 했으며, Type 3 폰트는 표준화된 힌팅이 부족한 채 다른 사람이 사용했습니다. Type 2 및 CFF 형식은 파일 크기를 줄이고 OpenType을 위한 기반을 마련했습니다. CID-Keyed 폰트는 대형 아시아 문자 세트를 지원하며 Type 1 또는 Type 2 구조를 사용할 수 있었습니다.
Type 1 폰트 (T1):
- Adobe에 의해 개발된 압축 및 암호화된 독점 폰트 형식.
- 고품질 힌팅 폰트에 사용되었습니다.
- 처음에는 Adobe가 Type 1 기술을 사용료를 받고 라이선스화했습니다.
Type 3 폰트 (T3):
- 전체 PostScript 기능을 허용했지만, 표준화된 힌팅 기능이 부족했습니다.
- Type 1 기술을 라이선스할 수 없는 사람들이 사용했습니다.
Type 2 폰트 (T2) & 압축 폰트 형식 (CFF):
- 효율성을 위한 폰트 파일 크기를 줄였습니다.
- OpenType 폰트의 기본이 되었습니다.
CID-Keyed 폰트:
- 아시아 (CJK) 문자 세트를 위한 큰 인코딩 공간을 위해 설계됨.
- 각기 다른 폰트 구조에 대해 Type 1 또는 Type 2를 사용할 수 있었습니다.
폰트 형식의 진화
Apple은 Adobe의 폰트와 경쟁하기 위해 TrueType 폰트를 만들었습니다. 이는 Adobe가 폰트 작동 방식에 대한 정보를 공개하게 만들었습니다. 이후 Adobe와 Microsoft는 OpenType 폰트를 공동으로 개발하여 두 기술의 장점을 결합하고 오늘날 사용되는 표준 폰트 형식을 탄생시켰습니다.
TrueType (1991):
- Apple에 의해 개발되어 Adobe의 시스템과 경쟁했습니다.
- Adobe가 Type 1 사양을 공개적 사용을 위해 발표하게 했습니다.
OpenType (1990년대 후반):
- Adobe & Microsoft가 공동 개발.
- Type 1과 TrueType 기능 통합.
- 현대 폰트에 대한 산업 표준이 되었습니다.
Type 1 지원 종료
- Adobe는 공식적으로 2023년 1월에 Type 1 폰트 지원을 종료하고 OpenType으로 전환했습니다.
휴대용 문서 형식 (PDF)와 PostScript
PDF 대 PostScript
PDF와 PostScript는 동일한 그래픽 시스템을 사용하여 동일한 인쇄 출력을 생성하는 두 문서 형식입니다. 주요 차이점은 구조에 있습니다: PostScript는 동적 작업을 가능하게 하는 완전한 프로그래밍 언어인 반면, PDF는 효율적인 보기 및 탐색을 위해 설계된 더 간소화된 정적 형식입니다. 이러한 차이점에도 불구하고 두 형식 간의 파일 변환이 가능합니다.

- 유사한 이미지 모델 – 둘 다 PDF와 PostScript는 동일한 그래픽 시스템을 사용하여 동일한 인쇄 출력을 보장합니다.
- 차이점은 무엇인가?
- PostScript는 동적 작업을 수행할 수 있는 튜링 완전 프로그래밍 언어입니다.
- PDF는 효율적 접근성과 탐색을 위해 최적화된 정적 데이터 구조로, 상호작용적 보기에 더 적합합니다.
- 상호 변환 가능성 – PDF는 PostScript로 변환될 수 있으며, 그 반대도 가능.
PostScript 언어
PostScript는 스택 기반 프로그래밍 언어로, 동적 타이핑을 갖추고 있으며 Forth와 유사하지만 Lisp와 유사한 데이터 구조를 가집니다. 역폴란드 표기법을 사용하여, 메모리를 신중하게 관리해야 합니다. PostScript는 배열과 사전을 사용하며, 실행 시에 타입을 관리하고 가비지 컬렉션을 포함합니다. 의견은 “%“로 시작하며, 프로그램은 보통 “%!PS"로 시작합니다.
- 튜링 완전 & 스택 기반 – Forth와 유사하지만 동적 타이핑 및 Lisp 유사 데이터 구조를 가집니다.
- 역폴란드 표기법 (RPN) – 연산자는 스택에서 작동하여 신중한 관리가 필요.
- 메모리 관리 –
- 스코프 메모리를 사용합니다.
- PostScript 레벨 2에서는 가비지 컬렉션 도입.
- 데이터 구조 –
- 배열 & 사전 사용.
- 공식적인 타입 선언이 없으며, 타입 관리는 런타임에 이루어짐.
- 의견 & 프로그램 구조 –
- **%**가 의견을 소개합니다.
- 프로그램은 일반적으로 PostScript 형식을 나타내기 위해 **”%!PS”**로 시작.
PostScript의 사용 방식
- 대부분 소프트웨어에서 생성, 수동으로 작성되지 않음.
- 자동화를 위한 완전한 프로그래밍 언어로 사용될 수 있음.
- 프린터 (RIPs) 또는 화면 상의 뷰어에 의해 해석됩니다.
간단한 PostScript 파일 예시
여기 “Hello, World!“를 페이지에 인쇄하는 PostScript (.ps) 파일의 간단한 예가 있습니다:
%!PS
/Times-Roman findfont 24 scalefont setfont
100 700 moveto
(Hello, World!) show
showpage
설명:
%!PS
→ 파일을 PostScript 문서로 식별./Times-Roman findfont 24 scalefont setfont
→ Times-Roman 폰트를 24 크기로 선택.100 700 moveto
→ 페이지 상의 좌표 **(100, 700)**로 커서를 이동.(Hello, World!) show
→ 지정된 위치에 **“Hello, World!”**를 인쇄.showpage
→ 프린터에게 페이지를 인쇄하도록 지시.
이 파일을 hello.ps로 저장하고 PostScript 뷰어 (예: GSview, Ghostscript)로 열거나, PostScript 프린터로 보내 인쇄할 수 있습니다.
렌더링된 후 Hello.ps

PostScript 렌더링 소프트웨어 목록
PostScript 뷰어 & 해석기
- Ghostscript (오픈 소스) – PostScript와 PDF를 위한 인기 있는 해석기.
- GSview – Ghostscript의 GUI 프론트엔드.
- MuPDF – PostScript와 PDF를 지원하는 경량 뷰어.
- Xpdf – 일부 PostScript 지원을 갖춘 오픈 소스 PDF 뷰어.
- Evince – PostScript 파일을 처리할 수 있는 GNOME 문서 뷰어.
- Okular – PostScript 지원이 있는 KDE 문서 뷰어.
- Apple Preview – PostScript 및 PDF를 지원하는 macOS 기본 뷰어.
PostScript 프린터 & 래스터라이저
- Adobe Acrobat Distiller – PostScript를 고품질 PDF로 변환.
- CUPS (Common Unix Printing System) – Unix/Linux에서 PostScript 인쇄를 처리.
- PPR (Printer Production Release) – PostScript 스풀러 및 렌더러.
벡터 그래픽 & DTP 소프트웨어
- Adobe Illustrator – PostScript 파일을 열고 편집할 수 있습니다.
- CorelDRAW – 벡터 그래픽을 위한 PostScript 지원.
- Scribus – PostScript 지원이 있는 오픈 소스 데스크탑 출판 소프트웨어.
- Inkscape – PostScript를 가져오고 내보낼 수 있음 (Ghostscript를 통해).
명령줄 & 변환 도구
- ps2pdf (Ghostscript의 일부) – PostScript를 PDF로 변환.
- pstopdf (macOS 명령줄 도구) – PostScript를 PDF로 변환.
- ImageMagick – PostScript 파일을 이미지로 렌더링할 수 있음.