C++ 시작
목차
C++를 시작 하시는 분들을 환영합니다!
이곳은 캐주얼하게 C++을 시작할 수 있는 블로그입니다. 프로그래밍 공부는 어떻게 해도 어렵기 때문에 머리가 안 터지게 스무디 한잔 마시는 여유 정도는 누리면서 해야 멘탈에 이롭습니다.
특히나 C++은 배우는 사람은 위를 올려다보면 답이 없고 가르치는 사람은 딱딱하고 엄격한 이미지가 있는 험난한 언어입니다.
그럴때는 한번에 큰 결과를 기대하지 말고 밑바닥 부터 기초를 쌓아 올라가면 됩니다.
이 포스팅에서는 간단하게 C++를 어떻게 시작할지에 대하여 알아보겠습니다.
C++ 기원
C++ 은 C언어를 기반하여 개발된 언어입니다. 그런데 이름이 비슷하다고 단순히 C언어를 확장한 언어라 생각할 것은 아닙니다.
뭐랄까요? 그걸 패러다임이라는 말로도 표현하는데요. 패러다임(Paradigm) 너무 어려운 단어 같고 사고 방식의 차이 정도로 볼 수 있습니다.
이제 C++은 시작부터 잘못 들어서면 어렵습니다.
절차지향의 C언어와 객체지향의 C++은 다르다는 것을 설명하는 것은 어렵고 듣는 사람 입장에서 봐도 뜬구름입니다.
결론부터 이야기하면 아직 객체지향에 대해서 잘 알려고 생각하지 않아도 됩니다. C++의 초반부에는 C언어와 배우는 내용이 같습니다. 데이터형, 변수, 상수, 제어문… 이런 내용들은 모든 프로그래밍 언어의 근간이니까요.
이걸 깨닫는 것은 C++과 수백 시간을 씨름한 후에 알게됩니다. 많은 코딩 선생님들이 이걸 처음에 주입시키려고 노력하는데 저는 좀 부족한 것인지 이해가 안되서요. 다행히 뒤에가서 이해를 했습니다.
C와 C++에는 사고방식의 차이가 있기 때문에 수많은 추상적 사고방식을 어떤 하나의 사례로 이해한다는 것은 불가능합니다. 많은 프로그래머들이 경험을 강조하는 것은 다양한 사례를 다뤄봐야 객체지향을 제대로 이해할 수 있기 때문입니다.
객체지향이 뭔지 처음부터 잘 이해가 되시는 분들은 상관이 없는데 어렵다고 느낀 사람들은 저처럼 처음에는 크게 부담을 갖지 않고 학습하시길 바랍니다.
어쨋든 미리 여러 설명을 해둬야할만큼 C++이 만만치 않은 언어인 것은 사실입니다.
C++은 객체지향언어이다
C는 절차지향언어 입니다. C언어와는 기본 철학이 다르다는 점에 유의합니다. C++의 창시자인 비야네 스트롭스트룹(실제 이름)도 C++은 전혀 다른 언어라고 밝혔습니다. 한가지 더 설명하면 C언어 C++ C# 각각은 전혀 다른 언어라는 점입니다.
그러니까 C라는 단어에 속지 않으면 됩니다.
물론 기본 문법요소에서 C언어와 닮은 점은 많지만 문법이 닮았다고 해서 똑같다고 생각하면 오산입니다.
C++은 C언어의 사고방식(절차지향언어)으로도 사용할 수 있다는 정도로 알아둡니다.
C++ 개발환경 선택과 설치
C++의 오래된 역사만큼이나 개발환경(IDE)은 다양한데요.
윈도우환경 이라면 가장 많이 추천하는 프로그램은 MS의 비주얼스튜디오 입니다. 그런데 비주얼 스튜디오는 다운로드와 설치가 쉽지 않기 때문에 간단하게 시작하기 위해서 Dev-C++ 도 많이 사용합니다.
링크 : Dev-C++ download | SourceForge.net
Code::Blocks 는 리눅스와 맥OS X에서도 사용가능한 IDE입니다.
링크 : Code::Blocks – Code::Blocks
비주얼 스튜디오, 서브라임 텍스트, 아톰 등도 많이 사용합니다.
이클립스도 C++에 많이 사용하는데 다른 것들은 설정이 좀 어렵습니다. 처음에는 Dev-C++ 같이 손쉽게 설치할 수 있는 IDE부터 시작하는게 좋습니다.
각 IDE 설치에 관하여는 별도 포스팅에서 다룰 예정입니다. 혹은 구글 검색을 활용할 수 있습니다.
요약
C++은 프로그래밍 언어중에서 가장 난해한 언어에 속합니다.
어렵기만한 언어가 아니라 학습을 마쳤을 때 프로그래밍 전체적인 실력향상과 함께 깊은 곳에서 나오는 성취감을 느낄 수 있습니다.
단순히 어려운 것을 극복해서 그런 것이 아니라 소프트웨어의 저수준 레벨인 하드웨어부터 고수준인 객체지향까지의 사고방식을 섭렵하기 때문에 프로그램의 설계와 운영에 대한 이해도가 향상되기 때문입니다.
설령 C++의 학습을 도중에 실패할지라도 괜찮습니다. 한번이 아니라 여러번 도전할 각오로 C++을 마주한다면 한번에 성공할 것 입니다.
프로그래밍을 공부한다고 사람이 기계가 되지 않습니다. 인간은 기계를 컨트롤 하는 입장입니다. C++을 마스터하면 기계에 대한 두려움이 사라질 것 입니다.
연관문서
외부참고문서
링크 : Code::Blocks – Code::Blocks으로 C++ 시작하기
링크 : Dev-C++ download | SourceForge.net