WIPIVERSE

SDL

SDL은 여러 분야에서 사용되는 약어로, 대표적으로 두 가지 의미가 널리 알려져 있다.


1. Simple DirectMedia Layer (심플 다이렉트미디어 레이어)

SDL은 Simple DirectMedia Layer의 약자로, C 프로그래밍 언어로 작성된 크로스플랫폼 멀티미디어 개발 라이브러리이다. 이 라이브러리는 비디오, 오디오, 사용자 입력(키보드, 마우스, 조이스틱) 등의 하드웨어 계층을 추상화하여, 리눅스, 마이크로소프트 윈도우, macOS, iOS, 안드로이드, FreeBSD 등 여러 운영 체제에서 동일한 코드로 실행될 수 있도록 한다.

SDL은 1998년 초에 샘 랜틴가(Sam Lantinga)가 로키 소프트웨어(Loki Software)용으로 작업하는 과정에서 처음 출시되었다. 그는 윈도 응용 프로그램을 매킨토시로 포팅하는 과정에서 이 개념을 떠올렸으며, 이후 SDL을 이용하여 게임 '둠(Doom)'을 BeOS로 포팅하였다.

SDL은 게임 개발 및 멀티미디어 응용 프로그램 개발을 위한 간단하고 일관된 인터페이스를 제공한다. SDL 라이브러리 자체는 비디오, 오디오, CD-ROM, 조이스틱, 타이머 등의 하부 시스템으로 구성되어 있으며, 공식 표준 라이브러리로는 SDL_image(다수의 이미지 포맷 지원), SDL_mixer(복잡한 오디오 함수/사운드 믹싱), SDL_net(네트워킹), SDL_ttf(트루타입 글꼴 렌더링), SDL_rtf(서식 있는 텍스트 포맷 렌더링) 등이 제공된다.

SDL 1.2는 GNU LGPL 라이선스를 따랐으나, SDL 2.0부터는 zlib 라이선스로 변경되어 상용 클로즈드 소스 프로젝트에서도 정적 링크하여 자유롭게 이용할 수 있다. 최신 안정화 버전(SDL 3)은 3.4.14이다.

SDL을 사용하는 주요 게임 및 소프트웨어로는 OpenTTD, The Battle for Wesnoth, Hedgewars, 0 A.D., Frets on Fire 등이 있다.

공식 웹사이트: www.libsdl.org


2. Specification and Description Language (명세 및 기술 언어)

SDL은 Specification and Description Language의 약자이기도 하다. 이는 ITU-T(국제전기통신연합 전기통신표준화부문)가 권고안 Z.100부터 Z.106까지에서 정의한 명세 언어로, 반응형 시스템(reactive systems) 및 분산 시스템(distributed systems)의 동작을 명확하게 명세하고 기술하는 것을 목표로 한다.

SDL은 원래 통신 시스템(telecommunication systems)에 초점을 맞추어 개발되었으나, 이후 적용 범위가 확장되어 프로세스 제어(process control) 및 실시간 응용 프로그램(real-time applications) 전반에 사용된다. 모호함이 없는 명세가 가능하며 그래픽 표기법(graphical notation)을 제공한다.

SDL은 그래픽 표현(SDL/GR)과 텍스트 구문 표현(SDL/PR)의 두 가지 형태를 제공하며, 이 두 표현은 동일한 의미론(semantics)을 가진다. 시스템은 유한 상태 기계(finite-state machine, FSM)의 확장 형태인 상호 연결된 추상 기계(abstract machines)들의 집합으로 명세된다.

SDL의 첫 번째 버전(SDL-76)은 1976년 그래픽 구문으로 발표되었다. 이후 SDL-80, SDL-84를 거쳐 1988년(SDL-88)에 형식적 기반이 마련되었고, 1992년(SDL-92)에는 객체 지향 개념이 도입되었다. 최신 버전은 SDL-2010으로, 완전히 객체 지향 기반으로 재정의되었으며 UML 프로파일(Z.109)과 C 데이터 타입을 지원한다.


기타 의미

그 외에도 SDL은 다음과 같은 의미로 사용될 수 있다.

  • Simple Declarative Language (단순 선언 언어): 데이터 구조를 표현하기 위한 언어.
  • Structure Description Language (구조 기술 언어): 구조를 기술하기 위한 언어.
  • Screen Definition Language (화면 정의 언어): 화면 구성을 정의하기 위한 언어.

SDL은 이와 같이 컴퓨터 프로그래밍, 통신 시스템 공학, 데이터 표현 등 다양한 정보기술 분야에서 각기 다른 의미로 사용되는 약어이다. 사용되는 맥락에 따라 적절한 의미로 해석되어야 한다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기