* 제 개인적인 생각으로 적는 포스트라 틀린 내용이 있을 수도 있습니다.
* 댓글에 적어주시면 감사하겠습니다.
프로그래밍과 프로그래밍 언어
몇년 전부터 개발자 품귀 현상과 고급 개발자 수요 증가에 힘입어 개발자 취업 열풍이 불고 있다.
신입 연봉 5천만 원, 6천만 원을 내걸면서 대학 서열마냥 네카라쿠배당토하야직샌... 줄줄 귀족 IT 서비스 회사들이 입에 오르내리곤 한다.
그러면 개발자는 무슨 일을 하는 사람일까?
주변에 이런 질문을 하면 많은 사람들이 "개발자? 프로그램 만드는 사람 아냐?"라고 대답하곤 한다.
맞다. 조금만 더 구체적으로 말하자면 "개발자(프로그래머)는 개발자는 프로그래밍 언어를 사용해서 원하는 기능을 만들어내는 사람"을 말한다.(적어도 내 생각에는...)
그래서 개발자가 되기 위해 많은 사람들이 프로그래밍 언어를 공부한다.
그러면 프로그래밍 언어는 뭘까?
개인적으로는 프로그래밍 언어란 개발자가 원하는 기능을 만들기 위해 컴퓨터와 사람이 소통하는 언어라고 생각한다.
많이 알려져있듯, 컴퓨터는 0과 1만으로 대화를 한다.
하지만 사람은 그렇게 대화할 수 없다. 상대방에게 "밥 먹었어?" 물어보려고 "010111101000011011010101..." 이렇게 질문해야 한다면, 아마 인류는 복장이 터져서 평균 수명이 10년도 안될 것이다.
그렇다고 컴퓨터한테 "밥 먹었어?"라고 하면 컴퓨터가 이해할 수 있나? 당연히 안 된다.
그래서 사람과 컴퓨터가 소통하기 위해서는 그 중간 수준의 언어로 대화해야 한다.
그것이 프로그래밍 언어다.
C++이란?
앞서 말한 프로그래밍 언어에는 자바, 파이썬 등 많은 언어가 있는데, 그중 가장 전통(?) 있는 언어 중 하나가 바로 C++이다.
이 C++ 언어는 C언어에 기반한 언어로 C언어에 객체지향 개념을 탑재했다고 보면 된다.(객체지향 개념은 나중에 얘기를 해본다)
나도 대학교 수업 때 첫 학기에는 C언어를 배우고 두 번째 학기에는 C++을 배웠다.
그 후로는 C++을 사용해 자료구조를 구현하고, 또 그 자료구조를 이용해 이것저것 재밌는 걸 만들어보는 수업을 들었었다.
그리고 우리 학교뿐만 아니라 많은 학교의 컴퓨터공학과에서 이처럼 C언어와 C++을 기본으로 배우도록 커리큘럼이 짜여져 있을 것이다.
많은 곳에서 왜이렇게 C언어와 C++을 기본으로 배우도록 했을까?
내 생각에는 크게 두 가지 이유가 있다.
1. C++은 컴퓨터를 이해하기 좋은 언어다.
사람의 언어에 가까울수록 추상화 정도가 높다고 하고, 컴퓨터에 가까울수록 추상화 정도가 낮다고 한다.
추상화 정도가 낮을수록 컴퓨터를 이해하기 좋다.
내가 만든 코드가 어떻게 메모리를 사용하는지 등 컴퓨터가 어떻게 동작하는지 이해할 수 있다.
C/C++은 대표적인 추상화 정도가 낮은 언어기 때문에 컴퓨터를 이해하기 위해 C/C++로 프로그래밍 공부를 시작하는 경우가 많다.
2. 빠르다.
추상화 정도가 높은 많은 언어들(파이썬과 같은)은 높은 추상화 수준을 유지하기 위해 어느정도 속도를 trade-off 한다.
그래서 예로부터 속도가 중요한 프로그램(게임 엔진 같은)은 C/C++로 구현하는 경우가 많았다.
(하지만 요즘은 다른 언어도 그렇게 느리지 않기 때문에... 정말 정말 속도가 중요한 경우가 아니면 굳이 C++로 할 필요는 없지 않을까 싶다.)
뭐 이런 장점들이 있긴 하지만 C++은 다른 언어에 비해 상당히 어려운 언어다.
또 C++은 개발자 역량에 따라 오히려 더 속도가 느려질 수도 있고, 유지보수에도 더 많은 비용이 들 수 있다.
하지만 그럼에도... 프로그래밍을 제대로 공부하고자 한다면 C/C++부터 시작해보는 건 꽤 괜찮은 선택이 아닐까 싶다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
개발환경 세팅 (1) | 2024.01.14 |
---|---|
코드가 돌아가는 원리 (1) | 2023.12.28 |
[C++] accumulate 함수 (1) | 2020.12.29 |