자, 이제부터 우리는 그 어렵다는 C언어를 시작해 볼 겁니다.
제가 블로그를 개설하고 쓴 첫 글에서 말씀드렸듯이, 저 역시 C언어를 전혀 할 줄 모릅니다.
여러분과 저는 사실상 똑같이 함께 시작하는 초보자 입장이지만, 한가지 차이가 있다면 제가 먼저 학습하고 그 학습한 내용들을 여러분에게 공유한다는 점이지요.
그러니 제 블로그 글들은 '코딩 강의'가 아니라 '코딩 스터디'라고 생각하시고 보는게 마음 편합니다.
다시 한 번 강조하지만, 강의가 아닙니다! 함께 공부하는 스터디(다만 주인장이 한발짝 먼저 공부해서 공유하는) 입니다.
공포의 C언어
C언어라는것은 1970년대, 모니터조차 없던 낭만의 시대에 등장한 아주 오래된 언어입니다.
놀라운것은 나온지 40년이 넘어가는 이 언어는 40년전이나 지금이나 별로 변한게 없다는 점입니다.
처음 컴퓨터라는게 세상에 나왔을 때 컴퓨터는 아주 거대했다는걸 다들 아실겁니다. 엄청나게 거대했지만 성능은 우리가 요즘 쓰는 컴퓨터에 발끝에도 미치지 못했지만요.
아무튼 당시 내로라하는 천재들이 만든것이 바로 이 C언어입니다.
게다가 그 당시에 C언어를 사용하는 사람들은 극히 드물었기 때문에, 이들이 언어체계를 만들면서 초심자를 배려하지도 않았겠죠.
애초에 천재들이 본인들이 쓰기 위해서 만든 언어가 난이도가 쉬울리가 없습니다.
심지어 40년이 지난 지금에도 그때와 별반 다르지 않으니, 어려운건 어찌보면 당연할 수 밖에 없습니다.
반대로 말하면 40년전에 쓰던걸 지금도 쓴다는건 그만큼 검증되고 완벽에 가까운 언어라는 의미이기도 하겠죠.
조금 위안을 삼자면, 사실 C언어가 난이도가 있는것은 맞지만, 만약 '컴퓨터 작동원리'를 잘 이해하고 있다면 C언어 자체는 작은언어이기 때문에 이해하기 쉽습니다. (근데 우리가 컴퓨터 작동원리를 잘 알고있을리가...)
그래서 C언어를 제대로 배우기 위해서는 거의 반필수적으로 '컴퓨터의 작동 원리'에 대한 이해가 필요합니다.
문제는 C++입니다. 이녀석은 투쁠한우가 일반소고기 대비 엄청나게 비싼것처럼 C대비 공부해야 할 것들이 엄청나게 많습니다.
그냥 많은 것도 아니고 무지무지무지무지무지 복잡하고 많고 어렵습니다.
이런 이유로 C공부의 경우에는 처음부터 너무 원론적으로 접근하면 금방 멘탈이 부셔질 가능성이 높습니다.
그래서 파이썬은 좀 원론적으로 차근차근 접근하되, C는 조금이라도 더 재미를 붙이면서 할 수 있게 실습위주로 하며 원리를 파악하는 방향으로 시작해보려고 합니다.
그래서 파이썬과는 다르게 시작부터 바로 게임부터 만들어보면서 C의 세계로 아주 천천히 들어가볼 계획입니다.
참고로 이 실습에 사용된 채널이 있는데, 채널과 영상은 나도코딩 채널의 C언어 무료 강의(입문부터 게임 개발까지)입니다.
그래서 실습에 쓰일 소스들도 이 곳에 있는 곳을 참고해서 받아주시면 되겠습니다.
비주얼 스튜디오(Visual Studio) 설치
우선 시작하기에 앞서, 우리는 코딩을 편하게 도와줄 보조프로그램인 '비주얼 스튜디오'를 설치해야 합니다.
파이썬 입문 [#0]을 보고 오신 분들이라면 아시겠지만, 파이썬 강의에서 다루는 비주얼 스튜디오 코드(VScode)보다 더 큰 개념의 프로그램입니다.
아래 링크로 들어가면 마이크로소프트에서 제공하는 비주얼스튜디오를 공식 다운로드 가능합니다.
https://visualstudio.microsoft.com/ko/
Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기
Visual Studio 개발 도구 및 서비스를 사용하면 모든 개발자가 모든 플랫폼 및 언어로 앱을 쉽게 개발할 수 있습니다. 무료로 어디서나 코드 편집기 또는 IDE를 사용하여 개발하세요.
visualstudio.microsoft.com
이렇게 다운로드가 끝나고 다운로드한 설치파일을 실행해보면 바로 아래와 같은 설정창이 뜰 겁니다.
여기서 스크롤을 조정해가며 'C++를 사용한 데스크톱 개발'이란 항목을 찾아 체크해줍시다.
용량이 10gb이상으로 꽤 큰데, 만약 본인의 컴퓨터가 여유가 없다면 이거만 설치하시고, 좀 여유가 된다면 그 아래있는 'C++를 사용한 모바일 개발'도 체크해줍시다.
그럼 비주얼 스튜디오와 함께 우리가 쓰게될 C++도 함께 설치가 됩니다. 아마 용량이 꽤 커서 설치하는데 시간이 좀 걸릴겁니다.
설치가 완료되면 아마 'Visual Studio 2022'라는 실행파일이 생겼을텐데, 이걸 실행해줍니다.
그럼 로그인을 하라는 창이 뜰 겁니다. 마이크로소프트 계정이나 Github계정이 있어야 하는데, 만약 둘 다 없다면 둘 중 하나를 만들어서 등록하면 됩니다.
개인적으로 마이크로소프트 계정은 앞으로 쓰일일이 많을테니 이참에 만들어 두시는걸 추천드립니다.
로그인을 완료하면, 깃헙 코파일럿 관련 안내가 뜰겁니다. 요즘은 AI가 대세라서 뜨는건데, Github Copilot에 가입하더라도 쓰는걸 추천합니다.
우리 코딩공부에 AI를 적극 활용하기로 했잖아요? 이참에 마이크로소프트(마소, MS)의 대표 AI인 코파일럿도 좀 익혀봅시다.
'Copilot 무료 등록'을 클릭하시면 웹 페이지로 자동 이동될 겁니다. 거기서 Github아이디를 만들어야 합니다.
깃허브 아이디가 없다면 화면 아래쪽에 있는 'Create an account'를 눌러 회원가입을 진행해줍시다. 회원가입은 내가 쓰는 이메일주소와 비밀번호만 설정하면 쉽게 가입이 되니 평소 자주쓰는 이메일 아이디로 가입하시면 됩니다.
가입이 끝나면 아래처럼 비주얼 스튜디오와 연동할 것인지를 물어보는 창이 뜰텐데, 이 역시 'Authorize Github'를 눌러 연동을 시켜 줍시다.
VS실행 및 기본세팅
그럼 이제 본격적으로 비주얼 스튜디오(VS)가 실행될 겁니다. 앞으로 비주얼 스튜디오는 VS로 줄여 부르겠습니다.
실행하면 아래와 같은 창들이 나올텐데 제가 네모를 친 부분들을 클릭해서 새 파일을 만들어 주겠습니다.
그럼 다시 아래처럼 파일명을 설정하는 탭이 나오는데, 전 그냥 기본으로 제공하는 'Project1'을 그대로 쓰겠습니다.
여기까지 와서 오른쪽 아래 '만들기(C)' 버튼을 누르게 되면 드디어 본격적인 VS사용이 가능해집니다.
만약 깃허브 코파일럿과 성공적으로 연동이 됐다면, 아래처럼 비주얼 스튜디오 첫 화면에서 우측에 코파일럿이 연동돼서 채팅가능 상태로 바뀌게 될 겁니다. 만약 되지 않았을 시에는 해당 창에 깃허브와 연결시키는 버튼이 뜨니 그걸 눌러서 연동해주시면 됩니다.
지금 왼쪽에 나와있는 '새로운 기능'들은 어차피 우리가 봐봤자 뭔말인지 잘 알지도 못할테니 과감히 x를 눌러 꺼버립시다.
그럼 갑자기 휑해지고 아무것도 없는 화면에 당황스러워질텐데, 당황스러워 하지말고 위 이미지처럼 우측 하단에 있는 '솔루션 탐색기'를 찾아 눌러줍니다. 그럼 코파일럿 채팅창이 탐색창으로 바뀌는데, 여기서 다시 '소스 파일'이란 것을 우클릭해 줍시다.
이후 맨 위에있는 '추가(D)'에 마우스를 가만히 올려놓으면 또 옆에 메뉴가 뜨는데 여기서 제일 위에 있는 '새 항목(W)'을 눌러줍니다.
그럼 아래처럼 파일명을 입력하는 칸이 뜹니다. 아마 저처럼 'FileName.cpp'로 되어있을텐데, 이걸 'helloworld.c'로 바꿔주고 추가(A)버튼을 눌러줍니다.
간단하게 설명하자면, 확장자 .cpp는 C++파일이고, 확장자 .c는 그냥 C언어입니다.
자 여기까지 완료했으면 이제 정말로 C언어로 코드를 입력할 수 있는 상태가 됩니다.
이제 아래처럼 저 1과 박스가 있는 칸에 코드를 입력하면 그 코드가 작동하게 되는 겁니다
일단 여기다가 코드를 하나 입력해볼건데, 쓰일 명령어들이 뭔지는 지금은 신경쓰지 마시고, 아래의 코드를 한번 입력해 봅시다.
#include <stdio.h>
int main() {
printf("Hello, World! \n");
}
만약 이 코드를 쓰는것조차 좀 버겁다면, 그냥 이 코드를 복사해서 붙여넣기 해봐도 됩니다.
이후 위처럼 상단메뉴의 '디버그(D)'를 누르고 '디버그 하지 않고 시작(H)'을 누르면 뭔가가 실행될 겁니다. (Ctrl+F5 단축키로도 바로 실행 가능)
뭔가가 디디디딕 실행되더니 아래처럼 검은 실행파일에 "Hello, World!"가 출력된다면 성공입니다.
다음시간부턴 본격적으로 게임을 만들어보며 C언어에 재미를 붙여봅시다.
'C++ > 입문' 카테고리의 다른 글
[#5] 중첩(이중, 삼중) 반복문과 별 쌓기 (4) | 2025.05.30 |
---|---|
[#4] 반복문(while, do while)에 대해 알아보자 (2) | 2025.05.29 |
[#3] 반복문(++, for)과 초보 프로그래머의 첫번째 벽, 별쌓기 게임 만들기 (1) | 2025.05.28 |
[#2] 문자와 문자열, 그리고 게임 완성하기 (6) | 2025.05.24 |
[#1] 정수, 변수, 주석으로 '경찰서 조서 쓰는 게임' 만들어보기 (1) | 2025.05.23 |