Tag Archives: C++

왜 C++가 여전히 유용한가

Why C++ Still Matters
Keith Ward
MSDN Magazine (July 2011 Issue)

완전한 객체지향을 지향하는 자바나, C++에서 진화한 .NET Framework 기반의 C#이 등장한 요즘에도 C++는 여전히 많은 사랑을 받고 있다. 새로운 언어의 등장과 프로그래밍 컨셉의 진화에도 불구하고 C++가 여전히 많은 사용되고 있는 것에는 나름의 이유가 있을 것이다. 그리고 그에 대한 이유들 중에서는 당연히 누구나 유추할 수 있는 요인들도 있을 것이고, 인식하기는 어렵지만 중요하게 지켜봐야할 요소들도 있을 것이다. 이 글에서는 Kenny Kerr(http://kennykerr.ca)와의 인터뷰를 통해 작성된 MSDN Magazine의 짤막한 관련 글을 정리한다.

원문: http://msdn.microsoft.com/en-us/magazine/hh288086.aspx

 

1. C++와 C#을 비교했을 때, C++가 갖는 이점

C++은 여전히 C#에 비해 보다 나은 처리량(throughput)을 보일 수 있으며 보다 적은 메모리를 사용할 수 있다. 그리고 한정된 시스템 자원 상에서 소프트웨어가 구동되어야 할 수록 이러한 C++의 이점은 더욱 중요해진다.

 

2. C++가 웹과 웹기반 서비스들에 적합한 이유

여전히 C++는 사용자와 개발자들이 선호하는 빠르고 다양한(rich) 웹 환경을 구축하기 위한 중대한(critical) 역할을 수행하고 있다. 대부분의 주요 웹브라우저들과 그러한 웹브라우저들이 구동되는 운영체제는 여전히 C++로 작성된다.

물론 JavaScript와 같은 다양한 프로그래밍 언어들이 이러한 운영체제와 브라우저 상에서 동작되는 소프트웨어의 작성에 효과적일 수 있으며, 이러한 언어들은 웹 어플리캐이션 개발에 중요한 역할을 수행하고 있다. 하지만 그러한 프로그래밍 언어들은 단지 도메인에 특정된(domain specific) 제한된 역할을 수행할 뿐이다. 이러한 언어들 만으로는 소프트웨어의 제약을 초래할 수 밖에 없으며, 결국 최적화된 소프트웨어의 개발을 위해서는 C++의 역할이 필요로되고 있다.

 

3. 여전히 C++는 변화하며 개선되고 있는가

변화의 시각에서 C++를 바라보기보다는, C++이 어떠한 장점을 가지고 있고 그러한 장점들이 어떻게 더 나은 방향으로 제공되고 있는지를 고려하여야만 한다. 최근 C++에 큰 변화가 있었던 것은 아니지만, 기존의 C++ 기능을 사용하는데 있어 편의성을 개선해주는 다양한 개선들이 이루어지고 있다.

C++의 성능이나 능력에 대해서는 누구나 강조할 수 있지만, C++의 기능이 최대한 간결하게 작성되어 이용하기 쉽냐는 측면에서는 때떄로 긍정하기가 어려운 경우들이 있다. 이런 상황을 예로 보자면, C++0x의 개선된 내용이 C++의 기능들을 보다 사용하기 편리하도록 개선하고 있음을 확인할 수 있다.

 

4. .NET 프레임워크의 등장과 인식의 오도, 그리고 Kenny Kerr의 새로운 컬럼

C++와 윈도우즈는 굉장한 어플리케이션들을 만들어낼 수 있는 매우 강력한 조합이다. 하지만 근래에 마이크로소프트가 .NET 프레임워크에 대해 강조하기 시작하면서 C++의 능력과 장점에 대해 잘못된 인식이 형성되고 있다. Kenny Kerr의 새로운 칼럼에서는 윈도우즈 API와 C++를 통하여, “즐겁게(even enjoyable)” 강력한 윈도우즈 어플리케이션을 작성할 수 있다는 사실을 프로그래머들에게 보여주고자 한다. 윈도우즈 API는 계속 그 능력을 강화하며 변화하고 있으며, 이러한 개선은 .NET 프레임워크가 최근 보여주고 있는 변화에 비해 뒤처지지 않는다. 윈도우즈 API와 C++를 사용하여 작성되어 윈도우즈7에서 구동되는 익스플로러9의 모습은 이러한 능력(capability)의 좋은 사례라고 할 수 있다. 또한 윈도우즈 API의 개선은 윈도우즈8과 그 이후에 출시될 윈도우즈 운영체제에서도 계속될 것이며, 윈도우즈의 발전과 함께 더 다양하고 강력한 기능들이 윈도우즈 API를 통해 제공될 것이다.