본문 바로가기
[ CODING STUDY ]/》C언어 공부

C언어 1장(코딩이란?)

by MRG 2020. 4. 3.
728x90
반응형

여기에 들어오신 여러분은 처음 C언어를 배우시거나 제 글을 보고 여기서 다시 C언어 공부를 시작해야 하겠다는 여러 이유를 가지고 오신 분들이 많이 있을 거라 생각합니다. 제 C언어 수업은 제가 고등학교 때 C언어를 처음 배웠을 때 궁금했던 것들 그리고 너무나 어려웠던 경험들 용어들을 좀 쉽게 하려고 노력할 겁니다. 여기서 빠진 부분은 계속 하나하나 채워갈 예정입니다. 그리고 저에 주관적인 정리로 설명하는 부분들도 있으니 이 수업이 교과서 정답 진리라고 생각하지 마시고 꼭 의문이 생기시면 댓글을 남겨주시거나 검색을 하셔서 스스로 찾아보시면서 공부를 하시면 더 실력을 빠르게 향상될 겁니다. 

 

그럼 시작해보죠.

그냥 재미있는 소설을 읽는다라는 생각으로 꼼꼼하게 읽어주세요. 

자 우선 코딩을 하려면 컴퓨터에 구조를 알아야합니다. 

컴퓨터에 구조라는 ▶사물의 부분들이 서로 결합하여 전체를 이루고 있는 짜임새. 라는 의미인데요 

너무 어렵게 생각하지 마시고 그냥 ▣ 컴퓨터는 어떤걸로 이루어졌는지를 구조라고 생각하면 될 거 같습니다.

 

▣ 컴퓨터에 구조는 크게 2가지로 나누고 있습니다.

S/W(소프트웨어), H/W(하드웨어) 이 두가지가 있습니다.

그럼 H/W(하드웨어)는 무엇을까요?

컴퓨터(H/W)

간단하게 설명을 하면 손으로 만져지는 전자기기들을 이야기합니다.

저 그림에 있는 컴퓨터는 손으로 만져지죠? 그리고 전자기기입니다. 그럼 저 컴퓨터는 H/W입니다. 간단하죠?

 

▣ 그럼 (S/W) 소프트웨어는 무엇일까요?

소프트웨어는 크게 2가지로 나눕니다.

시스템 소프트웨어와 응용소프트웨어입니다. 시스템 소프트웨어는(OS) 우리가 사용하는 운영체제 윈도 10, 리눅스, 맥 OS 등 이런 운영체제를 이야기하고 응용소프트웨어는 넓은 의미에서는 운영 체제에서 실행되는 모든 소프트웨어를 뜻합니다. 그럼 소트웨어는 무엇일까요? 바로 

S/W(소프트웨어)

 

손으로 만져지지 않고 H/W안에 있는 프로그램을 이야기합니다. 간단하죠? 

그럼 문제 페이스북은 소프트웨어일까요? 하드웨어일까요? 먼저 손으로 만져지는지부터 생각해 보면 바로 정답이 나오죠? 네 소프트웨어입니다. 그럼 프린트는? 손으로 만져지고 전자기기이니깐 하드웨어입니다. 간단하죠? 

그럼 하드웨어를 움직이려면 무엇이 필요할까요? 네 기기마다 다르겠지만 결국 전기가 필요합니다. 하지만 전기가 있다고 해서 하드웨어들이 작동할까요? 아닙니다. 바로 소프트웨어가 있어야 합니다. 

 

▣ 그럼 소프트웨어를 만들려면 무엇을 해야 할까요? 네 바로 그거입니다. 코딩을 해야 합니다. 프로그래밍이라고도 하는데 둘 다 같은 의미입니다. 위키백과에서 보면 컴퓨터 프로그래밍(영어: computer programming) 또는 간단히 프로그래밍(programming, 문화어: 프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다. [1][1] 프로그래밍은 기법과학수학공학심리학적 속성들을 가지고 있다.라고 되어 있는데 이렇게 어렵게 생각하지 말고 간단하게 말하면 소프트웨어를 만들려면 결국 코딩을 해야 한다.

 

▣ 코딩은 무엇인가? 컴퓨터에게 우리에 생각을 정리해서 명령서에 적어 그걸 전달하여 명령하는 과정을 코딩이라고 합니다. 컴퓨터한테 명령을 하는 것(이건 약간 제 주관적인 생각이지만 코딩과 프로그래밍은 많은 개념들이 있습니다. 제가 정리하기로는 이게 딱 맞는 거 같습니다) 그럼 컴퓨터한테 명령을 하려면 어떻게 해야 할까요? 

컴퓨터한테 이야기를 해줘야겠죠? 이야기를 하려면 우리가 "컴퓨터야 게임 켜줘"라고 한다면 알아들을까요? 모르죠? 왜 모를까요? 그건 컴퓨터에 언어로 이야기하지 않았기 때문입니다. 

그럼 컴퓨터에 언어는 무엇이 있을까요? 바로 기계들에 언어 (기계어)가 있습니다. 

 

▣ 기계어는? 컴퓨터한테 기계어로 이야기를 해줘야 하는데 기계들은 어떤 언어를 사용할까요? 

기계어

그림처럼 0과 1 두 가지 숫자로 이루어진 언어를 사용합니다. 2진수를 사용하는 것입니다. 2진수는 무엇일까요? 0과 1로 2가지 숫자로 표현하는 숫자를 이야기합니다. 그럼 왜 2진수를 사용할까요? 조금 복잡한 내용이지만 간단하게 이야기하면 컴퓨터가 전자식이기 때문입니다. 전기신호로 움직이기 때문에 컴퓨터 신호는 딱 두가지 On(1), Off(0)으로 신호로 이야기를 합니다. 그럼 우리도 이렇게 2진수로 이야기를 해줘서 컴퓨터한테 명령을 해야 할까요? 아닙니다. 바로 컴파일러라는 걸 통해서 이야기해줍니다.

 

▣컴파일러가 무엇인가? 위키사전에는 원시 코드에서 목적 코드로 옮기는 과정을 컴파일(compile, 순화 용어: 옮김, 번역, 문화어: 콤파일)이라고 한다. 이렇게 나옵니다. 쉽게 이야기하면 컴파일러는 번역가에 역할을 해준다고 생각하시면 쉬울 거 같습니다. 우리가 "컴퓨터 켜줘"라고 이야기를 하면 컴파일러가 이 말을 기계어로 "0101010101010000010101"이런 식으로 저건 예입니다 ㅎㅎ 컴퓨터한테 전달 그리고 컴퓨터가 그걸 보고 일을 수행하고 다시 결과를 컴파일러가 번역해서 우리에게 보고하는 형식입니다. 간단하죠?

 

▣ 자 정리 컴퓨터에 구조는 두 가지 소프트웨어와 하드웨어가 있습니다. 하드웨어는 손으로 만져지는 전자기기들을 이야기하고 컴퓨터 하드웨어라고도 하는데 이건 조금 경계가 모호합니다. 하지만 대부분 하드웨어라고 이야기를 합니다. 그리고 소프트웨어는 손으로 만져지지 않는 프로그램들을 이야기하고 소프트웨어에는 크게 시스템 소프트웨어와 응용 소프트웨어가 있다. 시스템은 운영체제 윈도우 같은 응용소프트웨어는 크게 보면 운영체제 안에서 실행되는 모든  프로그램을 이야기한다.  그럼 하드웨어를 움직이는 건 전기뿐만 아니라 소프트웨어가 있어야 한다. 

소프트웨어를 만들려면 코딩을 해야 하고 코딩은 컴퓨터한테 명령을 하는 거고 명령을 하려면 기계어로 이야기를 해야 한다. 기계어는 2진수로 표시하며 컴퓨터가 전자식 신호로 On(1), Off(0)으로 신호를 주기 때문입니다. 그래서 컴파일러라는 번역가가 번역을 해줘야 합니다.

 

 

▣ 여기까지 정리가 되었다고 생각합니다. 더 깊이 들어가면 많은 이야기가 나오지만 저희는 쉽게 코딩을 접근하기 위해 이 정도까지 진행하도록 하겠습니다. 점점 깊어질 겁니다. 지금까지 내용은 꼭 숙지하시고 다음 장을 공부하시면 좋을 거 같습니다. 그리고 저희 C언어 수업은 비주얼 스튜디오 2019를 사용합니다. 설치방법은 따로 진행하지 않습니다. 

어렵지 않고 학생 무료 버전을 다운로드하으셔서 설치하시면 될꺼같습니다. 만약에 설치하는 게 너무 어렵다 하시는 분은 구글에서 많은 강사분들이 올린 설치방법을 참고해주시면 감사하겠습니다. 지금까지 꼼꼼하게 읽으신 분들 코딩 실력이 꼭 늘어날 겁니다. 글을 읽는 것도 코딩하는 훈련입니다.!! 기억해주세요

 

▣ 포기하지 마세요!!! 저도 했습니다.!!! 그럼 다음장에서 뵙겠습니다.

 

 

728x90
반응형

댓글