* 제 개인적인 생각으로 적는 포스트라 틀린 내용이 있을 수도 있습니다.
* 댓글에 적어주시면 감사하겠습니다.
IDE를 고르자
개발 환경을 세팅하는 것은 개발 속도에 아주 많은 영향을 미치기 때문에 개발 환경을 잘 세팅하는 것이 정말 중요하다.
이를 위해서 많은 IDE(통합 개발 환경 프로그램)들이 존재하는데... 자바 언어의 경우에는 이클립스나 인텔리제이가 많이 쓰이고... 파이썬은 vscode, 주피터, 파이참 등을 많이 쓰는 것 같다.
그러면 C++에서는 어떤 IDE를 쓰는 게 좋을까?
C++ IDE에는 visual studio도 있고, CLion도 있다.
또 IDE라고 보기는 좀 애매하지만 VS code도 있다.
뭘 사용해야 할까?
모두 굉장히 좋은 IDE들이지만... Effective C++ 의 저자인 스콧 마이어스는 적어도 코딩을 시작할 때만큼은 IDE를 사용하지 않기를 권장한다.
나도 같은 생각이고, 나는 실제로 일을 할 때도 IDE를 따로 쓰지 않고 vim이라는 에디터를 사용해서 코딩한다.
vim에 대한 아주 간단 설명
vim에 대해 간단하게만 설명하자면... vim은 linux 계열 환경에서 많이 사용하는 에디터인데, IDE에 비해 아주 가벼운 에디터다.
(linux에 대해 잘 모른다면 windows와 같은 os 중에 하나라고 생각하면 된다. 서버 장비로 굉장히 많이 쓰이는 os다.)
vim은 windows의 메모장과 비슷하다면 비슷하지만, 메모장에 비하면 훨씬 많은 기능을 가지고 있고 원한다면 plugin을 깔아서 IDE처럼 사용할 수도 있다.(원하는 기능만 깔기 때문에 엥간히 많이 깔아도 IDE보다는 훨씬 가볍다)
vim을 사용하는 데 익숙해지면 코딩할 때 굉장한 손맛을 느낄 수 있으므로... 개인적으로는 vim을 사용하길 추천하지만, emacs(vim과 경쟁? 관계인 editor)나 다른 IDE를 사용해도 상관은 없다.
중요한 건 자신한테 맞는 개발환경을 세팅하는 것이니까...
참고로 windows에서 vim을 사용하려면 wsl에서 사용하는 것을 추천한다.
wsl에 관련해서는 조금만 검색해봐도 대량의 데이터가 나오니까 잘 찾을 수 있을 거라고 생각한다.
mac os에서는 그냥 vi 사용하면 된다.
그럼 vim 사용법에 대해서는 나중에 다른 포스트에서 설명하기로 하고.. 다음으로 넘어가자
어떤 운영체제(Operating System)에서 개발할까?
자, vim이든 IDE든 골랐다고 개발환경 세팅이 끝난 게 아니다.
어떤 운영체제(os)에서 개발할 것인지도 정해야 한다.
당연히 windows 아냐? 하는 사람들도 있을 수 있지만, 나는 좀 다른 추천을 하려고 한다.
나는 ubuntu 22.04 에서 실습을 할 것이다.
"ubuntu가 뭐야?" 한다면 앞서 말했던 linux os의 여러 버전 중에 하나라고 생각하면 된다.
왜 ubuntu에서 실습하려고 하냐면... 예전에 클라우드 서버를 하나 받아놓은 게 있는데 이게 아까워서... 는 농담이고,
아주 많은 서버들이 linux 계열로 되어 있기 때문에 개발을 windows에서 하더라도 실제로 그 프로세스가 돌아가는 것은 linux os에 해야하는 경우가 많다.
나는 개발환경과 실제로 프로세스가 운영되는 환경을 일치시키는 것이 좋다고 생각해서, 그냥 리눅스에서 개발하는 것을 좋아한다.(vim 쓰기도 편하고 ㅎㅎ)
* 배포 : "내가 개발한 프로그램을 실제 서버에서 실행시키는 일" 정도로 생각하면 된다.
* linux에 대해서는 따로 좀 더 정리해보겠다.
근데 그러려면 "ubuntu os 컴퓨터를 사야하는 거 아냐? 그렇게까지 해야돼?" 할 수 있는데 그렇지 않다.
다양한 회사에서 ubuntu os 장비를 대여해주고 있다.(나는 cafe24에서 월 3만원 주고 쓰고 있다.)
그냥 내 컴퓨터에서 대여한 장비에 원격으로 접속해서 개발하면 된다.
IDE를 사용해도 당연히 원격 개발 서버에 접속해서 하는 기능이 있으니까 걱정하지 않아도 된다.
(그 유명한 AWS에서는 free tier(공짜)로도 서버를 제공하긴 하는데 사용해보니 너무 스펙이 딸려서 그냥 안 쓰는 게 낫겠더라..)
"아 난 싫어, 돈 아까움" 하면 그냥 자기 컴퓨터에 깔려있는 os에서 해도 된다.(아마 대부분이 이렇지 않을까 싶다)
다만 mac os는 상관없지만 windows에서 할 거면 wsl에서 하는 걸 조금 더 추천하긴 하는 정도다.
(wsl 사용은 간단하니 검색해서 해보길 바란다.)
왜이렇게 windows를 싫어하냐고?
안 싫어한다.
그냥 나랑 다른 os를 사용하다가 "너는 되는데 나는 외않되?" 하는 상황이 발생할까봐... 개발환경을 나와 맞춰주길 바라는 마음이다.
C++ version 고르기
C++이라고 다 같은 C++이 아니다.
세상이 발전하면서 C++도 발전한다.
C++이 발전하면서 뒤에 붙는 버전이 높아지는데, C++11 C++14 C++17 C++20 등이 있다.
나는 C++17이 익숙해서 C++17 쓸 것이다.
뭘 써도 상관 없지만 가능하면 C++14 이상을 사용하길 권장한다.
(중요한 문제는 아니라서 웬만하면 나랑 똑같이 C++17 쓰는 게 좋을 것 같다.)
컴파일러 설치
#include <iostream>
int32_t main(void)
{
std::cout << "Hello World!\n";
}
내가 위의 코드를 짰다고 해보자!(당연히 뭔 내용인지는 몰라도 된다)
근데 이 코드는 인간만이 이해할 수 있다.
컴퓨터는 0과 1만 인식하기 때문에 저것만 보고는 뭘 어떻게 해야할지 알 수 없다.
그러면 뭐가 필요할까?
내가 짠 코드를 컴퓨터가 이해할 수 있도록 바꿔주는 과정이 필요하다!
그걸 해주는 게 컴파일러다.
C++ 컴파일에는 g++이 많이 사용되므로 g++을 사용하도록 한다.
근데 이 g++에도 version이 있다.
g++ version에 따라 컴파일할 수 있는 C++ version이 다르다.
내 환경인 ubuntu 22.04에서는 default g++ version이 11이고, C++17을 지원하므로 굳이 따로 설치할 필요는 없겠다.
"내 g++ version은 어떻게 알고 설치는 어떻게 하냐!" 한다면...
$ g++ --version
커맨드 창에 저렇게 입력해보길 바란다. (앞의 '$'는 빼고 입력해야 된다. shell prompt라는 걸 말하기 위해표시해둔 것이다.)
그러면 아래처럼 g++ version이 나올 것이다.
version이 너무 낮다? 하면 g++ 11을 설치해주도록 하자.
아래 커맨드를 입력하면 된다.(wsl shell 창에서 입력해야 될듯)
windows는 내가 직접 해본 게 아니라 이거 안 되면 직접 찾아서 해야한다ㅠ
$ sudo apt-get install gcc-11
mac os는 default compiler가 clang으로 되어 있기 때문에 이 링크를 참조해서 설치하면 될 것 같다.(아마 설치 안 해도 실습 코드 돌리는 데는 문제 없을 것 같다.)
테스트해보자
아마 내가 세팅 과정을 너무 대충 써놔서 다른 블로그의 포스팅들을 많이 참고해야 하지 않을까 싶긴 하지만...
일단 다 됐다!
잘 됐는지 테스트해보고 마무리하자.
"main.cpp" 라는 파일을 만들고 파일에 아래처럼 입력해보자.
#include <iostream>
int32_t main(void)
{
std::cout << "Hello World!\n";
}
그리고 g++을 이용해서 커맨드창에 아래처럼 입력해본다.(앞서 말했듯 $는 빼고 입력해야 한다.)
컴퓨터가 이해할 수 있는 코드로 컴파일이 될 것이다.
$ g++ main.cpp -std=c++17
"g++"이 "g++ 을 수행시켜라!" 라는 의미고
"main.cpp"가 앞서 작성했던 "main.cpp 코드를 컴파일해라!"라는 의미다.
"-std=c++17"은 당연히 "c++17 version을 사용해라!"라는 의미다.
아무것도 출력되지 않고 끝난다면 컴파일이 잘 된 것이다.
그다음에 만들어진 실행파일을 실행시켜보자.
$ ./a.out
이렇게 입력하면 아래처럼 "Hello World!"가 출력될 것이다.
그러면 성공!
'프로그래밍 언어 > C++' 카테고리의 다른 글
코드가 돌아가는 원리 (1) | 2023.12.28 |
---|---|
프로그래밍과 C++ (0) | 2023.12.27 |
[C++] accumulate 함수 (1) | 2020.12.29 |