Page 186

C++ 프로그램은 다양한 컴퓨팅 플랫폼에 맞게 컴파일해서 실행할 수 있으며, 언어는 한 플랫폼 에서 작성한 C++ 프로그램을 다른 플랫폼에서 거의 똑같이 사용할 수 있도록 엄격히 정의되었 다. 이렇게 언어 차원에서 표준화됐음에도 불구하고 실전에서 프로그램을 작성하다 보면 플랫폼 마다 차이점이 드러나기 마련이다. 대상 플랫폼이 고정되더라도 컴파일러마다 다른 점으로 인해 작업이 굉장히 힘들어질 수 있다. 이 장에서는 여러 플랫폼과 여러 프로그래밍 언어를 사용하는 환경에서 C++ 프로그래밍을 하는 데 발생할 수 있는 이슈를 소개한다. 이 장 전반부는 C++ 프로그래머가 흔히 접하는 플랫폼 관련 이슈를 살펴본다. 플랫폼 platform 이 란 개발 시스템 또는 런타임 시스템을 구성하는 모든 요소를 한데 묶은 것을 말한다. 예를 들어 인텔 코어 i7 프로세서가 장착된 머신에 윈도우 10 OS를 설치한 환경에서 마이크로소프트 비 주얼 C++ 2017 컴파일러로 개발하는 플랫폼이 있다. 또는 파워PC 프로세서가 장착된 리눅스 머신에서 GCC 7.2 컴파일러로 개발하는 플랫폼도 있다. 둘 다 C++ 프로그램을 컴파일해서 실행할 수 있지만, 조금씩 차이가 있다. 이 장 후반부는 C++와 다른 프로그래밍 언어를 함께 사용하는 방법을 소개한다. C++는 범용 프로그래밍 언어지만 모든 작업을 C++만으로 할 수 있는 것은 아니다. C++는 원하는 기능에 보다 적합한 언어로 작성한 코드와 함께 연동할 수 있는 메커니즘을 다양하게 제공한다.

30.1 크로스 플랫폼 개발 C++ 언어에서 플랫폼 이슈가 발생하는 데는 여러 가지 이유가 있다. C++는 하이레벨 언어라 서 표준에 로우레벨 사항이 명시되지 않은 경우가 있다. 예를 들어 표준에는 객체를 메모리에 나 열하는 방식에 대한 정의가 없어서 컴파일러마다 객체에 대한 메모리 레이아웃을 다르게 처리한 다. 또한 C++는 구현 방식에 대한 표준이 없는 상태에서 표준 언어와 표준 라이브러리를 제공 해야 하는 부담이 있다. C++ 컴파일러와 라이브러리마다 표준을 해석하는 방식이 달라서 특 정 시스템에 대해 개발된 코드를 다른 시스템에 그대로 적용하기 힘들 때가 있다. 마지막으로

C++는 기능을 표준에 포함시키는 데 보수적이다. 그래서 C++나 표준 라이브러리에서 제공하 지 않는 기능이 필요할 때가 종종 있다. 이러한 기능은 주로 서드파티 라이브러리나 플랫폼에서 제공하는 기능으로 처리하지만 종류와 형태가 제각각이다.

1388 5부 C++ 소프트웨어 공학

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement