티스토리 뷰

Programming/C++

C++ 독학 로그 01. C++의 기초

quokka_dev 2018. 7. 10. 17:32

C++ Log 첫번째 기록으로 오늘 알아볼 내용은 C++의 기초이다.



오늘 받은 책 내용에 따르면 처음부터 설명하는 내용은 컴퓨터의 이해와 언어의 탄생배경과 역사이다.


아무래도 우리가 하는 프로그래밍이란 것을 이해하는 첫 단계일것 같다.


내용으로는 컴퓨터는 어떻게 생겼고, 어떤 부품으로 이루어졌고, 각 부품의 역할과 동작원리를 설명해준다. 아주 상세히!


이 내용은 내가 산 책을 직접 사서 읽어보거나 아니면 구글링 또는 유튜브에 "컴퓨터" (꿀팁: 따옴표까지 그대로 쳐야 검색 잘됨) 라고 검색하면 내가 설명하는 것보다 몇배는 더 알기 쉽고 잘 설명해줄 것이다. 


그게 더 낫다. 글의 집중도를 높이는 방향으로도 그게 더 좋을것 같다.


다음으로, 언어의 탄생배경과 역사이다. 이부분은 알아두면 쓸데없지만 신비해지니 알아두도록 하자. 이것도 마찬가지로 그냥 검색해라.


컴퓨터 언어의 탄생배경 이라던가 C++ 나무위키 검색해라.



드디어 본문이다. 이 내용이 끝나면 아래에 나오는 코드가 날 반긴다.


1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
 
int main() {
    cout << "Welcome to C++!" << endl;
 
    return 0;
}
cs

실제로 Visual Studio에서 동작한다(당연하지...).




이제 이 코드에 대해서 알아보도록 하자.


1
#include <iostream>
cs


선언부이다. 해석하면 <iostream>을 참조한다- 라는 뜻인데 여기서 <iostream>이란 실제로 존재하는 파일의 이름이다. 


얘를 라이브러리 라고 한다. 확장자는 .h인데 참고로 C언어에서는 .h까지 다 붙여주지만 C++로 넘어오면서 확장자를 떼는것을 국제 표준으로 정해서 저렇게 쓰기로했다.



이 iostream.h 파일 안에는 기본적으로 C++언어로 코딩하면서 우리가 쓰게될 기본 함수들을 정의해 놓았다. 그 함수들을 쓰기위해 #include라는 말로 불러오는 것이다. 


#include 는 "전처리기문"이라고 한다. 


C언어를 알고 이 글을 읽으면 정말 편해질 것 같다는 생각이 들기 시작한다. 나중에 설명해주겠다.


요약하면, iostream.h를 가져와서 쓸거야! 라고 말하는거다.


1
using namespace std;
cs

다음줄을 보자. 이번에도 해석하자면, 앞으로 std라는 이름의 네임스페이스를 쓸거야! 라는 말이다.


네임스페이스가 뭐냐고? 이것도 나중에 설명해 주겠지만 간단하게 이해를 돕자면, 함수따위의 모음집을 말한다. 


비유하자면 택배상자라고 하자. 상자안에 이거저거 담을수 있지 않는가? 그런거라고 보면 되고, std는 이 상자의 이름이다.


이 std 상자가 위에서 설명한 iostream.h 에 들어있다!


1
2
3
4
5
int main() {
    cout << "Welcome to C++!" << endl;
 
    return 0;
}
cs

다음줄은 통째로 가져와봤다. 


얘 이름은 메인 함수라고한다. 그냥 저 main() 통째로 메인함수라고 부른다. {중괄호} 이 안에 들어있는 내용이 메인 함수를 이룬다고 보면 되는데 이 내용이 프로그램에서 가장 먼저 실행되는 핵심 내용이라고 할수있겠다.


메인 함수 앞의 int는 데이터 타입이라고 한다. 다음 시간에 자세히 다뤄주겠다.


{중괄호} 하나를 블록이라고 한다. 나중에 코딩을 하다보면 중괄호 안에 또 중괄호를 쓰게 될텐데 그럼 블록안에 또 블록이 생기는거다. 그정도만 알아두자.


블록안을 보면 cout 이 보인다. console out(콘솔 출력)의 줄임말로, 출력해주는 기능을 가진 함수이다. 

그냥 이거 쓰면 우리가 쓴거 볼수있음.


다음으로 << 이게 보인다. 정식명칭은 스트림 삽입 연산자고 내가 알기론(주워들은거긴 한데) 시프트 연산자라고도 하는거 같다. 정식 명칭을 씁시다. 

얘의 역할은 문자열 출력을 위한 연산자란다. 출력시키고 싶은 문자열을 << 얘 다음 " 이 안에 " 써주면 출력된다.


나는 저안에 Welcome to C++! 을 썼지만 다른거 써도 출력됨. 한번 바꿔서 실행시켜보자. 재밌다. 내이름 넣고 "땡땡아 안녕?" 하면 컴퓨터가 나한테 인사한다. 와 신기해라! 아싸는 오늘도 이렇게 논다. 이래서 컴공과가 너드 소리 듣는거야...




그 다음 보이는 스트림 삽입 연산자는 뒤에 나오는 애를 위해 한번 더 쓰였다. endl 은 엔터쳐주는거다. 직접 endl 을 쓴것과 안쓴것의 차이를 보고 싶다면 지우고 실행해보고 쓰고 실행해봐라. 이건 말로 하는거보다 직접 해봐야 이해가 빠름.




다음은 아주 유명한 세미콜론 ; 이라는 것이다. 얘 무조건 써줘야함. 안써주면 코드 밑에 빨간 물결 쳐지는데 이거 오류난거다. 개빡치니까 항상 모든 문장이 끝나면 ; 이거를 꼭 붙여주도록 하자. 그렇다고 모든 문장 끝날때마다 ; 이거 붙여주면 또 오류남...개빡치네 ㅅㅂ


1
return 0;
cs

다음으로 볼 내용이다. 이것은 프로그램이 끝났다는 말이다. 


정상적으로 끝나면 0을 붙여주고, 오류가 나면 1을 써주는걸로 알고있다. 


때에 따라 다르니까 나중에 공부하면서 알아가보자. 나도이건 아직 잘모른다. 몰라도 코딩하는데 전혀 지장없으니 그냥 알고 넘어가자.



여기까지 기본 코드를 해석해 보았다. 이제 우리는 C++을 아는것이다. 우와! 신기해!




다음은 참고사항이다. 써먹으면 여러모로 편리한 것들이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// <- 얘는 주석이라고 한다. 프로그래머는 읽을 수 있는데 컴퓨터는 읽어도 무시해버림~
 
/* <- 얘는 주석끝에 나올 표시까지 싹다 무시해주는 통째로 주석이라는 것이다*/
 
/* 이런것도됨 잘보셈..
 
#include <iostream>
using namespace std;
int main() {
    cout << "Welcome to C++!" << endl;
    return 0;
}   여기까지 통째로 없는 코드~~~*/
 
 
 
// 반면 이거는 이 코드 한줄만 무시함.
cs


프로그래밍에서 주석처럼 중요한 것이 없다. 반은 농담, 반은 진담이다. 


주석은 어느 언어나 다 존재한다. 보통은 저렇게 많이들 쓴다. 다른언어에서도 저렇게 쓰는게 많다.


주석에 대한 설명은 위 코드 내용에 다 썼으므로 말을 줄이겠다.


주석은 진짜 활용하기 나름이다. 

내가 쓴 코드 중간중간에 주석을 달아서 내가 쓴 코드를 알아보기 쉽게 설명하는 글도 달수있고, 또는 여기서부터 저기까지 코드를 잠시 비활성화 할때도 쓸 수 있고, 책갈피처럼 중간에 끼워넣어서 찾기 쉽게 만들수도있다. 

어차피 IDE 프로그램 쓰면 찾기기능도 다 지원하니까, 적극 활용하도록 하자.


코드를 보면 중간중간 색깔이 다른 언어들이 있다. 저것들을 보고 전부 예약어라고한다. 미리 프로그래머가 가져다 쓸수있게 언어를 개발한 사람이 미리 기능을 구현하여 만들어놓은 단어라고 생각하면 쉽다.



다음은 특수기호에 대한 설명이다. 난 너무 깨알같은거 좋아하니까 전부 다 설명할거임.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 전처리기문을 표시하기 위해 사용하는 기호다. #include 이렇게 쓰는거임
 
<> 라이브러리 이름 표시할때 쓰는거. <iostream> 같은거 표시할때 쓰는건데, < iostream > 이렇게쓰면 안됨. 공백 지우자.
 
() 소괄호. 보통 함수랑 같이쓰는데 이 안에 함수를 발동하는 조건을 쓰기도 하고 뭐 그럼.
 
{} 중괄호. 아까 설명했듯 블록 표시할때 많이 씀.
 
// 더블슬래시. 한줄짜리 주석쓸때! 이 한줄도 혼자 주석처리됨.
 
<< 스트림 삽입 연산자. 출력할땐 왼쪽, 입력할땐 >> 이거씀.
 
"" 따옴표. 문자열 양 끝에 쓰는거임. 이거 안쓰면 문자열로 인식 안함.
 
; 세미콜론. 이름 외우자. 이거 많이 쓰고 얘때문에 스트레스 앞으로 많이 받을거임. 구문오류나면 이거부터 찾아보세여
cs


다음은 코딩 스타일이다.


내가 예제로 퍼온 코드를 보면 줄이 엄청 띄어쓰기를 한 것을 볼 수 있다. 이것을 들여쓰기라고한다. 


어차피 컴퓨터는 들여쓰든 들여쓰기를 안하든 어차피 이해하는건 결국 0과 1뿐이다. 


그냥 문법맞추면 다 돌아감. 그럼에도 불구하고 우리가 들여쓰기를 하는 이유는 우리가 알아보기 쉽게 코딩하기 위함이다. 


지금이야 코딩하면서 "나만 알아보면 됐지 뭐하러 규칙을 따르냐~" 라고 생각할수 있겠지만 언젠가는 당신이 쓴 코드를 남도 보게 될 날이 올것이라고 믿는다. 


그때 가서 당신의 프로그램 실력을 좌우하는것은 프로그램 구현의 능력 정도라고 생각하겠지만 아니다.  


30년 넘게 프로그래머로 일하신 우리 아버지가 말씀하시길,


"프로그래머의 진짜 실력은 얼마나 간결하고 알아보기 쉽게 코드를 쓸 수 있는가" 가 좌우한다고 하셨다.


이 말은 나중에 프로그래밍과 코딩을 배워가며 느끼게 될것이다.


그 팁으로 들여쓰기와 띄어쓰기의 예제를 보여주겠다.



들여쓰기는 예제 코드처럼 쓴다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 좋은 예
 
#include <iostream>
using namespace std;
 
int main() {
    cout << "Welcome to C++!" << endl// 블록이 생기면 공백4개 or Tab버튼 한번!
 
    return 0// 그다음줄부터는 공백이 끝날때까지 유지!
}
 
// 안좋은 예
 
#include <iostream>
using namespace std;
 
int main() {
cout << "Welcome to C++!" << endl// 블록이 어디인지 알아보기가 힘들다.
 
return 0;
}
cs


띄어쓰기 예제이다.

1
2
3
cout << "1+2=3"// 안좋은 예. 알아보기가 힘들다.
 
cout << "1 + 2 = 3" ; // 좋은 예. 수식의 가독성이 좋다.
cs

오늘은 프로그램의 기초와 C++이란 녀석의 기본을 알아보았다. 이것만 알면 일단 앞으로 프로그래밍을 배우는데 크게 어렵지 않을것이다.


오리엔테이션 정도로 생각하면 좋을 듯.




이번 Log는 여기서 끝!

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함