리얼타임 eBook
집필서
판매중
합계 : 10,800원
하나의 소스로 다양한 플랫폼에 대응하자
다양한 플랫폼이 등장하고 있지만 해당 플랫폼에서는 자신만의 고유한 프로그래밍 언어에 특화된 환경만을 제공하고 있다. 여러 가지 여건을 고려해 볼 때, 하나의 프로그래밍 소스로 여러 플랫폼에 대응하는 코드를 개발하는 것은 불가능한 것처럼 보이지만, SDL과 C++를 활용한다면 이 문제를 해결할 수 있다. 여러 플랫폼에서 자신만의 프로그래밍 언어로 소프트웨어를 개발하긴 하지만, 이런 소프트웨어의 개발을 도와주는 커널이나 상위 프레임워크는 근본적으로 C나 C++로 작성되었고 개별 플랫폼들이 C++ 컴파일을 지원하여 C++로 작성된 소스는 여러 플랫폼에서 활용할 수 있기 때문이다. 그리고 SDL은 미디어 처리, 렌더링, 사운드 처리에 관련된 프로그래밍 인터페이스를 여러 플랫폼에서 대응할 수 있게 제공하므로 SDL로 작성된 코드는 새로운 플랫폼으로 이식하더라도 코드를 거의 수정하지 않아도 된다. 즉, SDL과 C++를 이용해 소프트웨어를 개발한다면 저비용으로 타 플랫폼에 이식하는 게 가능하다.
SDL과 C++를 사용하면 여러 플랫폼에서 해당 소스를 재활용할 수 있지만 생산성이란 부분에서 걸림돌로 작용한다. 하지만 C++로 작성된 레거시 코드를 재활용한다거나 게임 프로그래밍처럼 C++와 궁합이 잘 맞는 분야에 사용하는 경우 C++와 SDL의 조합은 탁월한 선택이라고 할 수 있다. 물론 게임의 경우 Unity3D라는 크로스 플랫폼 개발 환경을 제공하는 개발 툴이 있다. Unity3D는 다양한 애셋이 존재하고 막강한 게임 개발 환경을 제공해 주어 그래픽 디자이너나 기획자도 게임을 제작할 수 있게 해 주지만 프로그래머 입장에서는 그만큼 구현 자유도를 빼앗기는 결과를 낳는다. 이로 볼 때 C++와 SDL 조합을 통한 게임 개발은 소프트웨어의 동작 하나하나를 처음부터 끝까지 프로그래머가 제어할 수 있기에 꽤 매력적이라고 할 수 있다.
『SDL과 C++를 이용한 크로스 플랫폼 프로그래밍』에서는 SDL과 C++로 크로스 플랫폼 프로그래밍을 하는 데 필요한 환경 설정을 구성하는 방법과 SDL을 활용하여 레거시 코드를 재활용하는 예제를 살펴본다. 특히 윈도우와 안드로이드 플랫폼용 프로그램을 단일한 소스 코드로 개발하는 방법을 중점적으로 설명한다. 이 과정에서 각 플랫폼에 특화된 내용을 점검하고 이를 해결하는 방법도 설명한다. 또한, SDL로 완성한 게임 프로젝트를 설명함으로써 SDL이 게임 개발과 궁합이 맞는다는 것을 보여준다. 게임 개발뿐만 아니라 SDL을 활용한 멀티미디어 프로그램 개발에 대한 예제도 다루며 WIN32에 특화된 사용법을 설명하고 SDL 확장 모듈에 관해 다룬다.
아직 국내에서는 크로스 플랫폼 시장이 활성화되지 않았지만 언젠가 크로스 플랫폼 프로그래밍이 주목받게 될 것이며 이 책이 큰 도움이 되리라 생각한다. 비록 이 책에서는 WIN32와 안드로이드에 중점을 둔 SDL 활용을 다루지만 이 책을 읽고 나면 프로그램을 윈도우폰이나 아이폰으로 포팅하는 것이 어렵지 않음을 알게 될 것이다.