삽질의 현장/- C

곱씹어보자 C!_#001_ 삽잡이의 두서없이 막말하는 프로그램이란?

shovelman 2015. 6. 23. 23:54


 그림이랑 내용 수정은 주말 정도에 깔끔하게 수정하도록 하겠습니다 ㅎㅎ 

우선은 나 자신의 약속을 지키고자... 횡설 수설일지라도 내용정리를... 

아하하 이게 더 재미날수도 있어요 ㅎㅎ 죄송합니다...



안녕하세요~!

삽잡이 입니다.


오늘을 시작으로 프로그래밍 언어에 좀 더 다가가보고자 합니다...

기초적인 내용을 다루는 것이아니라...

제가 몰랐던 것들... 적고싶었던 것들을 자유롭게 써 내려가고자 합니다...

꾸미기는 힘들거 같아요^^....


삽잡이의 두서없이 막말하는 우선은 C언어 시작합니다.




우선 들어가기 앞서...

프로그래밍 언어를 공부한다는 것은 뭘 뜻하는 것일까요?

바로 프로그램을 만들겠다라는 뜻이죠...


그렇다면 프로그램이란 무엇일까요?


첫번째로, 사용자 측면에서 프로그램이란 

더욱 편리하게 사용하기 위한 도구라고 말할 수 있습니다. 

그래서 프로그램을 이용하는 사람을 User라고 부르지 않습니까?

즉, User가 없는 프로그램은 의미가 없다라고 말할 수 있죠!


두번째로, 프로그램은 컴퓨터의 관점에서 보자면 0과 1의 집합이죠.

컴퓨터는 전기가 On / Off 되는 것을 이해하는 것은 아시나요?

On/Off... 그래서 컴퓨터는 0과 1 두가지로 모든 것을 표현 한다고 말할 수 있습니다.


자... 그렇다면 컴퓨터의 최소 단위는 즉, 기준이 되는 값은 Bit 라고 할 수 있겠네요.

왜냐하면 1 Bit는 2가지의 상태를 표현할 수 있죠. On~ Off! 

이 Bit 들이 모여모여 8명의 친구들이 모인다면 1 Byte가 됩니다. 

Bit가 컴퓨터의 최소 단위라면, Byte는 컴퓨터의 기본 단위이죠!

그 외에도 

KByte, MByte, GByte 등이 있지요...

결국, 0과 1이 모여서 만들어진것이 프로그램이라는 점~!


여기서 질문이 하나 던져보죠...

"계속 0과 1이 모여 만들어 졌다고만 말하시는데요... 

똑같은 0과 1이라는 이진수라도 상황에 따라 용도가 다를 수 있지 않을까요?"


예 맞습니다. 

똑같은 0과 1이라도 정의에 따라서 사용하는 용도가 달라지죠.

예를 들면, 어떨 때는 데이터가 되고 어떨때는 명령어가 되는것 같이요...

무작위로 0과 1이 널려있다면... 어떻게 구분을 할 수 있을까요...

그래서 약속! 즉 정의를 함으로 구분을 하는 것이지요...


여기서 프로그램에 대한 정의가 추가됩니다.

"프로그램은 명령어와 데이터의 약속된 정의이다."


조금 더 생각해 보시죠... 지금까지 제가 대화를 이끌었던 것은 

'프로그램이 뭐냐, 컴퓨터는 0과 1을 이해한다, 프로그램은 0과 1의 집합체이다.' 입니다.


그런데 말입니다...

우리는 그러면 프로그램을 어떻게 만들 수 있는 것인가요?


코딩을 조금이라도 해보신 분들은 아실터인데...

우리는 어떻게 개발을 진행할까요?

많이들 들어보셨을... IDE 즉, 통합 개발 환경을 통해 우리는 개발을 하고 있습니다.

대중적으로 Visual Studio 라든가 Eclipse라든가...


Visual Studio를 사용중인 본인은 해당 IDE를 보며 조잘거리겠습니다.

프로그램을 만들기 위해서는 

솔루션, 프로젝트, 파일을 만드는 과정을 겪게 됩니다.

솔루션은 프로젝트들의 묶음, 프로젝트들은 파일들의 묶음이죠...


우리는 이 파일들로부터 프로그램을 만들기 시작합니다.

처음에 속성을 보시면 아시겠지만 0 Byte입니다...

하지만 우리가 입력하고 또 입력하면 그 크기가 늘어나는 것이죠...


그런데 컴퓨터는 0과 1만 알터인데... 우리는 한글... 기껏 해봤자 영어 조금 아는데...

우리가 컴퓨터에 맞춰서 0과 1로 우리의 말을 번역해야하는 것인가...


허허... 요즘 시대에 누가 01010101010 과 같은 이진법 노가다(?)로 프로그램을 구현하는지요...

(예전 분들은 저랬다던데요...;;)

우리가 C언어 앞페이지만 봐도 안다는 

그 "샾 인클루드 에스티디아이오점에이치 인트 메인 보이드 리턴영!"

과 같은 코드를 읊으며 개발을 시작합니다.


근데 아무리 봐도 우리가 읽을 수는 있어도 우리 사람의 말은 아니지 않습니까?

컴퓨터에 맞게 던져주려면 0과 1...

근데 그건 아니고... 그렇다고 우리 말도 아니고...


애매한게 중간이네요...

오! 맞습니다! 중간의 언어... 즉, 컴퓨터 언어입니다 저것이 말입니다!

인간과 컴퓨터 사이에 약속된 언어라고 할 수 있지요. 예를 들어서 제가 배우고 있는 C언어 같이요!


여러분은 Ctrl + F5라는 마법의 단축키를 통해서

컴파일러라는 번역하는 친구에게서 0과 1로의 번역을 시킵니다.

'아하... Ctrl + F5는 0과 1의 집합으로 만드는 행위구나!'


정리해서 말씀드리자면,

프로그램은 0과 1의 집합입니다. 우리가 직접 작성하기에는 한계가 따르죠...

하지만 우리는 사용자가 원하는 형태의 프로그램을 만들고 싶습니다...

그럼 어떻게해요... 그래요... 아까 말씀드린 중간언어 즉, 프로그래밍 언어를 사용하는 것이죠.


그렇다면 프로그래밍 언어에 대한 정의를 내릴 수 있겠네요.

'컴퓨터와 사용자간의 약속.'