메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

포르잔 C++ 바이블의 역자 윤인성님께 묻다

한빛아카데미

|

2020-09-18

|

by 윤인성

14,954

 

메인프로모션_PC.png

 

 

Emotion Icon<포르잔 C++ 바이블>을 번역한 윤인성 저자를 만나 C++에 대해 함께 이야기를 나누었습니다!Emotion Icon

 

 

# C++은 다른 언어와 달리 어떤 특징이 있나요?

 

다른 현대적인 객체지향 프로그래밍 언어는 프로그래밍 언어를 실행시키는 플랫폼이 메모리 관리 등의 머신 수준의 처리를 내부적으로 알아서 해줍니다. 하지만 C++은 이러한 머신 수준의 처리를 대부분 직접 해줘야 합니다. 사소한 것처럼 보이지만 이것 하나로 C++은 다른 프로그래밍 언어와 매우 큰 차이를 갖습니다.

 

머신 수준에서의 처리를 조작할 수 있어서, C++은 개발자의 역량에 따라서 굉장히 높은 성능을 끌어낼 수 있습니다. 물론 반대로 개발자의 역량에 따라서 스크립트 언어보다 느린 프로그래밍 언어를 만들 수도 있습니다.

 

 

# C++은 어떤 분야에 사용되나요?

 

개발자의 역량에 따라서 굉장히 높은 성능을 끌어낼 수 있다는 장점, 반대로 개발자의 역량이 중요하다는 단점이 있습니다. 그래서 현대에는 성능이 중요한 코어 부분(라이브러리 집합을 코어라고 표현하겠습니다)을 C++로 작성하고, 이를 활용하는 부분을 C#, 파이썬 등의 프로그래밍 언어로 사용합니다.

 

예를 들어서 서점에 가서 "인공지능"과 관련된 분야를 보면, "텐서플로우"라는 파이썬 책을 볼 수 있을 것입니다. "텐서플로우"라는 것은 C++로 작성되어 있으며, 이를 활용하는 부분만 파이썬으로 되어 있습니다. 인공지능 처리처럼 빠른 속도를 필요로 하는 코어 처리는 C++로밖에 작성할 수 없는 것입니다.

 

마찬가지로 서점에서 "게임 개발"과 관련된 분야를 보면, "유니티"와 "언리얼"이라는 C#과 C++ 책을 볼 수 있을 것입니다. 게임은 내부적으로 매우 많은 처리를 요구합니다. 따라서 C++ 정도의 언어로만 구현할 수 있습니다. 유니티는 C#을 사용하지만, 이도 텐서플로우와 마찬가지로 활용하는 부분이 C#으로 되어 있는 것입니다. 내부적인 코어 처리는 C++로 되어 있습니다.

 

이 이외에도 얼핏 보면 "다른 프로그래밍 언어를 쓰는 것 같지만, 굉장히 높은 성능을 요구하는 처리"에는 내부적으로 C++이 사용되고 있습니다.

 

 

# C++을 배우면 어떤 장점을 얻게 되나요?

 

자동차를 제조하는 회사의 직원 수보다, 자동차를 운전해서 활용하는 사람들 수가 더 많은 것처럼 코어 개발은 수 자체가 적습니다. 하지만 코어를 단순하게 활용하는 것이 아니라, 만들고 싶다면 C++이 필요합니다. 그리고 코어를 만들 수 있는 존재가 될 수 있는 것이 C++의 장점이라고 할 수 있습니다.

 

또한 C++은 다른 프로그래밍 언어에서 자동으로 해주는 것들을 개발자가 직접 해야 하는 경우가 많습니다. 그래서 문입니다. 하지만 그렇게 프로그래밍 언어가 자동으로 해주는 부분까지 알게 된다면, 다른 프로그래밍 언어를 활용할 때도 더 심도 있게 활용할 수 있게 됩니다.

 

 

# 번역하면서 어느 내용이 가장 흥미로웠나요?

 

책이 두꺼워서 흥미로웠습니다. 지금까지 50권이 넘는 책을 출간했는데, 이렇게 두꺼운 번역서는 처음이었습니다. 아무리 번역해도 끝이 나지 않는 느낌이라 큰 벽을 느꼈는데, 그래도 계속하다 보니 또 끝이 나네요. 끝을 내니 기쁩니다.

 

책이 두꺼운 만큼 매우 많고 광범위한 내용을 담고 있습니다. C++은 다른 프로그래밍 언어와 다르게 기본 공부부터 많은 내용을 배워야 하는데, 이를 모두 다루고 있는 책입니다. 그냥 이 자체도 흥미로워서 재미있었습니다.

 

 

# C++을 공부하는 모든 독자에게 응원의 한마디 해주세요!

 

C++은 어려운 프로그래밍 언어입니다. 어떤 프로그래밍을 만드는데 필요한 기본 단계에 이르는 것만 해도 다른 프로그래밍 언어보다 2~5배의 노력이 필요합니다. 하지만 공부를 하고 나면 분명 프로그래밍 언어, 컴퓨터 구조 등과 관련된 광범위한 지식을 습득할 수 있게 될 것입니다.

 

추가로 다른 프로그래밍 언어들은 어느 정도 공부하면, 눈에 보이는 무언가를 만들 수 있게 됩니다. 하지만 C++은 코어 개발에 사용하는 프로그래밍 언어이다 보니, 눈에 보이는 무언가를 만들기 힘듭니다. 공부하는 과정에서 아무것도 손에 잡히는 느낌이 없다면, 내가 공부를 제대로 하는 것인지 감 잡기가 힘듭니다. 그래서 공부하는 중간에 알고리즘 대회 문제를 풀어보는 것을 추천합니다. 백준 코딩, Aizu Online Judge 등의 기본 문제를 풀어보면, 자신이 프로그래밍 언어를 어느 정도까지 공부했는지, 잘 활용할 수 있는지 스스로 측정해보고, 재미도 느껴 보기 바랍니다.

 

 

 

 

 

절차 지향부터 객체 지향까지 C++ 학습의 정석

포르잔 C++ 바이블

 

B1851418066_l.jpg

 

 

댓글 입력
자료실