{{위키데이터 속성 추적}}
{{소프트웨어 정보
| title                  = 
| name                   = Simple and Fast Multimedia Library
| logo                   = SFML2.svg
| logo caption           = SFML 로고
| screenshot             = 
| caption                = 
| collapsible            = 
| author                 = Laurent Gomila 등
| developer              = SFML 팀
| released               = {{시작 날짜와 나이|2007|8|9}}
| discontinued           = 
| latest release version = 2.5.1
| latest release date    = {{시작 날짜와 나이|2018|10|15}}
| latest preview version = 
| latest preview date    = <!-- {{시작 날짜와 나이|YYYY|MM|DD|df=yes/no}} -->
| status                 = 
| programming language   = [[C++]]
| operating system       = [[게이밍 플랫폼으로서의 리눅스|리눅스]], [[macOS]], [[마이크로소프트 윈도우|윈도우]], [[FreeBSD]]
| platform               = 
| size                   = 
| language               = 
| language count         = 
| language footnote      = 
| genre                  = [[API]]
| license                = [[Zlib 라이선스]]<ref>{{웹 인용|title=License |url=http://www.sfml-dev.org/license.php}}</ref><ref>https://github.com/SFML/SFML/blob/master/license.md</ref>
| website                = {{URL|www.sfml-dev.org}}
| logo_size              = 160px
| logo_alt               = SFML 로고
| screenshot_size        = 
| screenshot_alt         = 
}}
'''SFML'''(Simple and Fast Multimedia Library)은 컴퓨터의 다양한 멀티미디어 구성 요소에 단순한 [[API]]를 제공하기 위해 설계된 [[크로스 플랫폼]] 소프트웨어 개발 [[라이브러리 (컴퓨팅)|라이브러리]]이다. [[C++]]로 작성되어 있으며 [[C (프로그래밍 언어)|C]], [[크리스탈 (프로그래밍 언어)|크리스탈]], [[D (프로그래밍 언어)|D]], [[유포리아]], [[Go (프로그래밍 언어)|Go]], [[자바 (프로그래밍 언어)|자바]], [[줄리아 (프로그래밍 언어)|Julia]], [[닷넷 프레임워크|.NET]], [[님 (프로그래밍 언어)|님]], [[OCaml]], [[파이썬]], [[루비 (프로그래밍 언어)|루비]], [[러스트 (프로그래밍 언어)|Rust]]용 [[언어 바인딩|바인딩]]이 제공된다.<ref name="SFML Bindings">{{웹 인용|url=http://sfml-dev.org/download/bindings.php|title=Bindings (SFML / Download)|publisher=SFML|accessdate=13 November 2014}}</ref> 실험적인 모바일 포트들은 SFML 2.2의 출시와 함께 [[안드로이드 (운영 체제)|안드로이드]], [[iOS]]용으로 이용 가능하게 되었다.<ref name="Mobile ports">{{웹 인용|url=http://www.sfml-dev.org/changelog.php#sfml-2.2|title=Changelog (SFML / Development)|accessdate=18 December 2014}}</ref>

SFML은 [[창 (컴퓨팅)|창]]에 대한 만들기 및 입력, 그리고 [[OpenGL]] 컨텍스트의 만들기 및 관리를 관리한다. [[프리타입]]을 이용한 텍스트 렌더링, [[OpenAL]]을 사용하는 오디오 모듈, 기본적인 [[전송 제어 프로토콜]](TCP)과 [[사용자 데이터그램 프로토콜]](UDP) 통신을 위한 네트워크 모듈을 포함하여 [[2차원 컴퓨터 그래픽스]]의 단순한 [[하드웨어 가속]]을 위한 그래픽 모듈도 제공한다.

SFML은 [[Zlib 라이선스|zlib/png 라이선스]] 조항으로 제공되는 [[자유-오픈 소스 소프트웨어]]이다. [[마이크로소프트 윈도우|윈도우]], [[리눅스]], [[macOS]], [[FreeBSD]]에서 이용할 수 있다.<ref name="SFML Download">{{웹 인용|url=http://www.sfml-dev.org/download/sfml/2.1/|title=SFML 2.1 (SFML / Download)|last1=Gomila|first1=Laurent|publisher=SFML|accessdate=9 August 2014}}</ref><ref name="SFML/cmake/Config.cmake">{{웹 인용|url=https://github.com/SFML/SFML/blob/f24ca9a84012531cf886f72354c1f88341dd7ac7/cmake/Config.cmake#L30|title=SFML/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML|publisher=[[깃허브]]|accessdate=13 November 2014}}</ref> 최초 버전 1.0은 2007년 8월 9일 출시되었으며 최신 버전 v2.5.0은 2018년 5월 9일 출시되었다.

== 소프트웨어 구조 ==
=== 모듈 ===
SFML은 다양한 모듈로 구성되어 있다:
* 시스템 – [[벡터 (물리)|벡터]], [[유니코드]] [[문자열]] 클래스, 포터블 [[스레드]] 및 타이머 기능
* 창 – [[창 (컴퓨팅)|창]] 및 [[컴퓨터 입력 장치|입력 장치]] 관리 ([[조이스틱]], [[OpenGL]] 컨텍스트 관리 지원 포함)
* 그래픽스 – [[스프라이트 (컴퓨터 그래픽스)|스프라이트]], [[다각형]], 텍스트 렌더링을 포함한 2차원 그래픽스의 [[하드웨어 가속]]
* 오디오 – 하드웨어 가속 [[스페셜 뮤직|스페셜]] 오디오 재생 및 녹음
* 네트워크 – TCP 및 UDP [[네트워크 소켓]], 데이터 캡슐화 기능, [[HTTP]] 및 [[파일 전송 프로토콜]] 클래스
=== 언어 바인딩 ===
SFML은 C++로 작성되어 있으며 C++ 인터페이스를 제공한다. 다른 프로그래밍 언어로 SFML을 사용할 수 있게 해주는 여러 [[언어 바인딩]]이 존재한다.<ref name="SFML Bindings"/>

이 표는 2017년 기준으로 SFML을 위해 지원되는 바인딩을 나열한다.
{| class="wikitable collapsed collapsible"
|-
! 이름
! 언어
! 지원 버전
|-
| [http://www.sfml-dev.org/download/csfml CSFML]<sup>1</sup>
| [[C (프로그래밍 언어)|C]]
| 2.3
|-
| [http://www.sfml-dev.org/download/sfml.net SFML.Net]<sup>1</sup>
| [[닷넷 프레임워크|.NET]]
| 2.2
|-
| [https://github.com/oprypin/crsfml CrSFML]
| [https://crystal-lang.org Crystal]
| 2.4.1
|-
| [https://github.com/DerelictOrg/DerelictSFML2 DerelictSFML2]
| [[D (프로그래밍 언어)|D]]
| 2.3
|-
| [https://github.com/Jebbs/DSFML DSFML]
| [[D (프로그래밍 언어)|D]]
| 2.1
|-
| [https://github.com/gAndy50/EuSFML2 EuSFML2]
| [[:en:Euphoria (programming language)|Euphoria]]
| 2.3.2
|-
| [https://github.com/DJMaster/csfml-fpc csfml-fpc]
| [[프리 파스칼]]
| 2.4.0
|-
| [https://bitbucket.org/krepa098/gosfml2/wiki/Home GoSFML2]
| [[Go (프로그래밍 언어)|Go]]
| 2.2
|-
| [https://hackage.haskell.org/package/SFML Hackage]
| [[하스켈]]
| 2.3.2
|-
| [https://jsfml.sfmlprojects.org/ JSFML]
| [[자바 (프로그래밍 언어)|자바]]
| 2.2
|-
| [https://github.com/zyedidia/SFML.jl SFML.jl]
| [[줄리아 (프로그래밍 언어)|Julia]]
| 2.2
|-
| [https://github.com/oprypin/nim-csfml nim-csfml]
| [[님 (프로그래밍 언어)|님]]
| 2.3
|-
| [https://github.com/JoeDralliam/Ocsfml Ocsfml]
| [[OCaml]]
| 2.3
|-
| [http://ocaml-sfml.forge.ocamlcore.org/ OCaml-SFML]
| [[OCaml]]
| 2.0
|-
| [https://github.com/CWBudde/PasSFML PasSFML]
| [[파스칼 (프로그래밍 언어)|파스칼]]
| 2.3
|-
| [https://web.archive.org/web/20180527201512/https://python-sfml.org/ pySFML]
| [[파이썬]]
| 2.3.2
|-
| [https://web.archive.org/web/20180527120743/https://groogy.se/mainsite/rbsfml/ rbSFML]
| [[루비 (프로그래밍 언어)|루비]]
| 2.3.2
|-
| [https://github.com/jeremyletang/rust-sfml rust-sfml]
| [[러스트 (프로그래밍 언어)|러스트]]
| 2.3
|}
<sup>1</sup> 공식 바인딩

== 같이 보기 ==
* [[CreateJS]]
* [[OpenGL]]
* [[OpenGL 유틸리티 툴킷]] (GLUT)
* [[심플 다이렉트미디어 레이어]] (SDL)

== 추가 문헌 ==
* Jan Haller, Henrik Vogelius Hansson, Artur Moreira: ''SFML Game Development'', Packt Publishing, {{ISBN|1-849696-84-5}}
* http://www.lifehacker.com.au/2013/02/xna-is-dead-3-alternatives-that-let-you-use-your-c-and-net-skills/
* https://web.archive.org/web/20180417194130/http://www.binpress.com/tutorial/creating-a-city-building-game-with-sfml/137
* http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-The-Introduction.aspx

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* {{Github|SFML/SFML|Simple and Fast Multimedia Library}}

[[분류:API]]
[[분류:오디오 라이브러리]]
[[분류:C++ 라이브러리]]
[[분류:크로스 플랫폼 소프트웨어]]
[[분류:자유 소프트웨어]]
[[분류:그래픽 라이브러리]]
[[분류:리눅스 API]]
[[분류:MacOS API]]
[[분류:비디오 게임 개발]]
[[분류:윈도우 API]]
[[분류:Zlib 라이선스 소프트웨어]]