ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C언어] C언어 진입장벽 부수기
    미사용/##프로그래밍 2016. 3. 3. 01:35

    C언어를 시작하려는데 너무 힘들어하는 사람이 많아서 이렇게 글을 써봅니다.

    처음에 외울게 조금 있고, 생소한 용어들이 나와서 그렇지 그것들을 있는 그대로 받아들이면 않습니다!

    찬찬히 들여다 볼까요? (입문자들을 위해 중간 중간 생략된 개념이 있을 수 있습니다.)

    1. 준비물

    컴퓨터, 컴파일러, 에디터, 손가락

    2. 기본 개념 탑재

    여기서 잠깐 기본적인 용어와 C언어 프로그래밍의 개요를 살펴보고 가도록 하죠.


    소스 코드 -> 컴파일 -> 링크 -> 실행파일


    프로그램이 만들어지는 큰 과정은 위와 같습니다. 사용된 용어들을 정리해보죠.


    소스 코드(Source Code) == 프로그래머가 타이핑한 코드 그 자체

    컴파일(Compile) == 코드를 컴퓨터가 이해하는 기계어로 변환

    링크(Link) == 기계어를 이용해서 실행가능한 파일 생성


    여기서 잠깐 프로그래밍에 대해 짚고 넘어가자면 컴퓨터는 일단 무조건 2진수만 이해할 수 있습니다. 말 그대로 0과 1이 아니면 뭔소린지 당최 모른다는거에요. 근데 사람이 어떻게 0과 1만 가지고 프로그래밍을 할 수 있겠습니까.. 그래서 나온게 프로그래밍 언어라는거죠. 프로그래밍 언어는 일련의 규칙이 있습니다. 그 규칙을 문법이라고 하는거죠. 그 문법대로 작성을 하고나면 컴파일러가 문법을 보고 컴퓨터가 이해하는 기계어(2진수)로 번역을 해주는거죠. 예를들어서 코드에 "int" 라는 단어는 "101" 로 바꾸는 식입니다. 그런데 기계어만 만들어졌다고 해서 바로 실행이 되는건 아닙니다. 프로그램이 실행되기 위해서는 몇 가지 조건이 만족되어야 하는데 그 조건을 만족시키기 위해서 링커(Linker)가 링크(Link)라는 과정을 통해서 실행파일을 만들어 주는거죠!

    3. 준비

    이제 대충 프로그래밍이 뭔지 어떤 과정을 거치는지 알았으니 프로그래밍을 위한 준비를 해볼까요? 우선 윈도우 환경에서 코딩한다고 가정합니다. 준비물에서 필요한건 에디터와 컴파일러인데 MS에서는 Visual Studio 라고 해서 컴파일러와 에디터가 합쳐진 프로그램을 제공하고 있습니다. 이렇게 프로그래밍에 필요한 기능을 통합해둔 프로그램을 통합 개발 환경(IDE) 이라고 하는데 한번 설치하러 가볼까요?


    다운로드 URL : https://www.visualstudio.com/downloads/download-visual-studio-vs



    Visual Studio 공식 다운로드 주소입니다. 2015버전도 있지만 이제 막 공부를 시작하는 시점에서 굳이 최신 버전이 필요한건 아니고 제가 사용하고 있는 버전이 2013 버전이기 때문에 2013 버전을 기준으로 설명하겠습니다. (2015 를 쓰고싶으신 분도 그냥 똑같이 따라하시면 됩니다 크게 다른거 없어요 ~)

    본래 Visual Studio 는 유료 프로그램이지만 일부 기능들을 제외하고 취미 혹은 학생 개발자들을 위해 Express 버전을 무료로 제공하고 있습니다. 페이지에서 원하는 버전을 선택하고 Express 2013 for Desktop 을 클릭하고 바로 옆에 다운로드 버튼을 누르면 됩니다. 설치는 그냥 다음 누르시면 되요!


    Visual Studio 정품은 더욱 다양한 기능이 있어서 개발에 여러 가지 편의 기능을 갖추고 있습니다만 돈을주고 구매해야하죠. 하지만 공부하는 학생들을 위해 마이크로소프트에서는 드림스파크 라는 사이트를 통해서 학생들에게 무료로 제공해주고 있습니다. 대학교에서 사용하는 웹 메일을 이용해서 가입하면 되는데 해당 사항은 추후에 따로 포스팅 하도록 하겠습니다. 




    설치가 끝났으면 본격적으로 코딩을 할 준비를 해야죠!

    앞으로 개발 할 때 프로젝트 단위로 작업 환경을 구성하게 될겁니다.

    하나의 큰 프로젝트가 있으면 그 프로젝트 안에 세부적으로 기능을 구현해서 하나의 프로그램을 만드는거죠!

    Visual Studio 에서는 그 프로젝트를 만들어서 쉽게 관리할 수 있도록 도와주는데 그 프로젝트를 만들어 봅시다.


    파일 - 새로만들기 - 프로젝트

    혹은

    Ctrl + Shift + N


    로 들어가봅니다.



    좌측에 Visual C++ -> Win32 콘솔 응용 프로그램 -> 프로젝트 이름 지정 -> 확인


    이 순서로 가면 프로젝트가 하나 만들어집니다. 꼭 "Win32 콘솔 응용 프로그램" 을 선택해야합니다 ~ 


    처음에는 콘솔(Console)이라고 하는 곳에서 동작하는 프로그램을 만들겁니다. C언어 뿐 아니라 대부분의 언어는 이 콘솔 환경에서 실행하는 프로그램을 만드는 것 부터 시작을 하는데 콘솔 환경은 흔히 윈도우에서 사용하는 "명령 프롬프트" 입니다. 검정 바탕에 흰색 글자만 떠다니는 곳 있죠? 단순한 글자 입출력만 가능한 곳인데 여기서 시작해서 점차 그래픽이 탑재된 프로그램을 만들게 됩니다. 프로그래밍을 생각하고 처음에 시작할 때 많은 사람들이 여기에 실망을 하는 경우가 많은데 절대 그러지 말고 조금만 해보세요! 여기에 재미붙여서 가면 나중에 그래픽 환경.. 즉 우리가 잘 아는 그런 프로그램의 형태를 만들 수 있을거에요 ~ 사실 이 콘솔 환경에서 만드는걸 해야지 나중에 그래픽 환경 프로그램을 만드는 것도 편합니다. 





    다음을 한번 누르고 두번 째 화면에서 위 사진과 같이 체크를 하셔야합니다!

    빈 프로젝트를 안하면 처음에 당황하게 될꺼고 SDL 검사에 체크해제를 안하면 처음에 배우는 몇 가지 함수들이

    제대로 동작을 안할거에요 ~


    SDL 검사는 2010 버전 이후부터 나온 Visual Studio 버전에서 생긴 기능인데 기존에 사용하던 일부 c언어 함수는 보안상 취약점이 있었습니다. 그래서 그런 함수들을 프로그래머가 사용하려하면 Visual Studio 가 막고 보안이 강화된 함수 사용을 강제하는 기능인데 우리는 배우는 단계이기 때문에 SDL 검사를 빼고 처음부터 시작하려 합니다!




    그리고 옆에 솔루션 탐색기를 보면 위 사진과 같이 "소스 파일"이라는 항목이 있는데 마우스 우클릭하고 추가 - 새 항목 순으로 들어가면 됩니다.

    그런데 사실 이렇게 가는게 매번 귀찮기도하고 


    Ctrl + Shift + A


    를 한방에 눌러서 들어가버립시다!



    위 사진 순서대로 진행을 하면 되는데 반드시 "C++ 파일" 을 선택해야하고 이름에는 반드시 끝에 ".c" 를 붙여줘야 합니다.

    그리고 추가 버튼을 누르면 준비 끝!!


    C++이란 C언어에서 추가 적인 개념이 탑재된 또다른 언어라고 생각하시면 됩니다. 그래서 C++이 C언어를 크게 아우르고 있다고 생각하시면 되요. 그래서 사실 C++로 선택하고 파일 만들어서 코딩을 해도 문제가 되지 않습니다만 C언어를 공부하는 우리의 입장에서는 조금 방해가 될 수 있습니다. 그래서 파일 이름 끝에 ".c"를 붙여주면 C 문법대로 컴파일러가 동작을 하게됩니다. 하지만 ".c"로 만든 파일에서 C++ 을 코딩하려하면 안된다는거!

    4. 시작

    #include <stdio.h>


    int main()

    {

    printf("1234");

    printf("5678\n");

    printf("9101112\n");

    return 0;

    }


    위 코드를 이제 나타난 화면에 그대로 입력해보죠.

    저기에 나와있는 글자들이 뭔진 모르겠지만 그냥 일단 입력해보세요!

    복붙보단 직접입력 하는겁니다 우리는!


    이제 코드가 입력 되었으니 프로그램을 한번 만들어봐야죠?

    앞에서 코딩 과정에 컴파일이 있고 링크가 있다고 했는데 이 모든걸 한번에 하는걸 빌드라고 말합니다.


    Ctrl + F7


    을 누르면 빌드가 진행되고 exe 실행파일이 생성됩니다. 

    이렇게 만들어진 exe 파일은 특정 경로에 생성되는데 실행하려면 명령프롬프트에서 실행시켜야하는 번거로움이 있습니다.

    이번엔 Ctrl + F5 를 눌러보세요!



    그럼 위 사진과 같이 콘솔창이 뜨면서 우리가 입력한 내용이 출력될거에요!

    Ctrl + F5 는 빌드까지 진행하고 바로 실행시켜주는 단축키에요 ~ 앞으로 자주 쓰게 되겠죠?


    여기까지 내용을 정리해보면 프로그래밍할 때 


    Visual Studio를 켠다 -> 프로젝트를 만든다 -> .c 파일을 만든다 -> 코드를 입력한다 -> Ctrl + F5를 누른다.


    이 순서로 보통 진행이 되겠네요. 별거없죠? ㅋ

    만약 코드에 문제가 있었다면 Ctrl + F5 눌럿을 때 빌드하는 과정에서 에러가 발생할꺼에요. 그건 나중에 보도록 합시다 ~ 

    5. 코드 분석

    #include <stdio.h>


    int main()

    {

    printf("1234");

    printf("5678\n");

    printf("9101112\n");

    return 0;

    }


    위 코드에서 여러분은 앞으로


    #include <stdio.h>

    int main()

    {


    return 0;

    }


    이 부분은 매 번 쓰게 될겁니다. 정말 매엥엥ㅇ엥ㅇ에에엥에 번!! 쓰게될거니까 눈에 꼭 익혀두시구요. 계속 타이핑 해보면서 손으로도 익혀두시구요!! 저 코드가 의미하는건 다음 글에서 비교적 세세하게 다뤄보도록 하겠습니다. 오늘은 main 이란 것 안에있는 printf란 녀석에 대해서만 살짝 보고 넘어가봐요.


    printf 라는건 c언어에서 사용하는 함수 중 하나입니다. 여기서 함수의 개념에 대해서 한번 짚고 넘어갈게요. 

    함수라는건 쉽게 생각해서 해리포터에서 쓰는 마법이라고 생각하시면 됩니다. 마법마다 그 역할이 있고 사용하는 방법이 다르죠? 



    예를들어 윙가디움 레비오사는 지팡이를 한번 가볍게 튕구면서 "윙가디움 레비오-사" 라고 주문을 외어야만 마법이 발동되고 그 마법은 물체를 공중으로 띄우는 일을 합니다. 

    함수도 마찬가지로 C언어에서 함수별로 사용하는 방법이 다 다르고 그 역할이 다릅니다. 이 함수는 이미 정의되어 있는 것도 있지만 직접 함수의 사용 방법이나 역할을 정의할 수도 있습니다. 이 부분은 나중에 설명하도록 하죠!


    printf("abcd");


    printf 함수는 위와 같이 사용합니다. 괄호 속에 쌍따옴표로 문자를 감싸주죠. 마지막엔 세미콜론(;) 으로 끝나구요.

    사실 마지막에 세미콜론(;)으로 끝나는건 모든 코드 끝에는 세미콜론이 들어가야합니다. 문장의 마지막에 온점(.)이 들어가는 것 처럼 C언어 코드의 마지막에는 이 세미콜론(;)이 들어가줘야되요. 이 얘기도 나중에 하기로 하죠! ㅋㅋㅋ 여튼 저렇게 사용하면 콘솔에는 abcd 가 그대로 출력이 됩니다. 


    그런데 말입니다?


    printf("1234");

    printf("5678\n");

    printf("9101112\n");


    저기에는 \n 이 문자끝에 들어가있죠?

    들어가 있는 것과 안들어가 있는것의 차이는 방금 실행시켰던 화면을 참조하면 됩니다. 




    "1234" 뒤에는 \n이 없고 5678뒤에는 \n이 있네요.

    그런데 결과를 보면 12345678이 출력되고 한 줄 개행(줄이 바뀐다는 의미입니다.) 되고 91011112 가 출력되었어요.

    즉!!! \n은 개행을 의미하는 문자입니다.

    문자열에 \n 이라는 문자가 있으면 줄을 바꾸라는 의미죠.


    이정도면 printf 의 기본적인 사용법과 용도는 알았죠? 단순히 화면에 출력하는 함수였습니다.


    6. 마무리

    이제 C언어를 한번 시작해 보았습니다. 사실 아직 제대로 코드를 설명한 것도 아니고 알고 입력한 건 아니지만 시작이 반이라는 말이 있는 것 처럼 Visual Studio 설치하고 프로젝트만들고 한번 코드 입력하고 실행까지 해 봤으면 반은 한거에요! 이제부터는 추가적인 문법과 키보드 타자에 익숙해지면 되는겁니다. 계속해서 시리즈를 이어나가서 C언어를 처음 공부하시는 분들이 어려움 없도록 도와드릴테니까 질문이나 궁금한 부분은 댓글로 남겨주세요 ~ 

    '미사용 > ##프로그래밍' 카테고리의 다른 글

    [C언어] HelloWorld 를 분석해보자  (4) 2016.03.05
    [C언어]1편 - C언어의 기본  (2) 2013.12.28
    [C언어]Visual C++ 사용법  (18) 2013.02.01

    댓글

Designed by Tistory.