1.프로그램이 뭐지?

2015. 10. 18. 02:51왕초보를 위한 빠르게 훑어보는 파이썬

Python 입문자를 위한 첫 강좌입니다.


프로그램이 뭐지?


Python 이라는 프로그래밍 언어를 이용해서 "프로그램" 이라는 것을 만들어 볼건데요.

구글에서 검색해보니 아래와 같이 나오네요.

컴퓨터 프로그램이란

컴퓨터 프로그램(영국 영어: computer programme, 미국 영어: computer program, 문화어: 콤퓨터프로그람)은 컴퓨터에 의해 실행되는 지시사항의 모음인 컴퓨터 소프트웨어의 한 예이다. 대부분의 프로그램은 실행 중........

음....더 읽고 싶은 마음이 들지 않네요.

그냥 가볍게 훑어 잘 와닿지 않는데 여러분은 어떠신가요? 제 생각엔 위에건 몰라도 될 것 같아요.

그냥 제 방식대로 쉽게 정의를 내려볼게요. 정말 쉽게 말이죠.

컴퓨터 프로그램이란

컴퓨터(PC,노트북,스마트폰)에서 실행되는 앱(어플리케이션)

간단하죠? 그냥 컴퓨터에서 실행되는 "무엇" 그거에요.


여러분 스마트폰 가지고 있죠? 스마트폰에는 카카오톡, 페이스북, 트위터 또는 여러분이 설치한 여러가지 앱(어플리케이션)이 있죠? 이런 것들이 전부 다 프로그램이에요. 여러분의 스마트폰에서 실행되는 프로그램 인거죠. (스마트폰도 일종의 컴퓨터입니다)

컴퓨터에는 어떤 앱이 있을까요? 인터넷익스플로어, 엑셀, 워드, 한글, 게임, 그림판 등등 많죠?

이런 것들이 전부 다 프로그램이에요. 우리는 python을 공부해서 이런 것들을 만들어 볼거에요.

( 엑셀, 워드를 만든다는 의미가 아니고요, 컴퓨터에서 실행되는 "프로그램"을 만들어 볼거에요 ^^ )



프로그램 안에는 뭐가 있나요? 그리고 python은 왜 공부해야 하는거죠?


프로그램은 수많은 명령들로 이루어져 있어요.

무슨 명령들이 있는 걸까요? 그것은 프로그램을 만든 사람(개발자)이 컴퓨터에게 내린 명령들이죠.

카카오톡을 예로 들어서 어떤 명령들이 있는지 알아볼까요?

  • 메시지를 입력하고 send 버튼을 누르면, 친구에게 메시지를 전달해라.
  • 사진을 첨부하면, 친구에게 사진을 보내라.
  • 친구추가 버튼을 누르면, 해당 친구를 나의 친구목록에 추가해라.
등등의 셀수 없을만큼 많은 명령들이 카카오톡 프로그램 내부에 있는거에요. 개발자는 컴퓨터가 이러한 동작을 하도록 수많은 명령을 만들어야 합니다. 컴퓨터는 개발자가 명령한 일들만 하기 때문에, 원하는 동작은 모두 빠짐없이 명령을 만들어야 합니다. 그리고 컴퓨터는 개발자가 만든 프로그램 내부에 있는 명령들을 빠르고 정확하게 수행하게 됩니다.

사람에게 뭔가 요청하려면 어떻게 하나요?
말을 하면 되죠. 맞아요. "말"을 하면 됩니다. 더 정확히 말해서 "한국어"로 부탁하면 됩니다.
외국인 친구에게 어떤 일을 요청하려면 외국인 친구가 이해할 수 있는 언어, 즉 영어, 중국어 등등 으로 얘기하면 됩니다.
이런 외국인 친구에게 요청하려면 우리가 외국어를 익혀야겠죠?

자, 그렇다면 컴퓨터한테 일을 시키려면 어떻게 해야 할까요?
위에 정답이 있습니다. 컴퓨터에게 말을 하면 됩니다. 더 정확히 말해서 "컴퓨터가 이해할 수 있는 언어"로 얘기하면 됩니다.
컴퓨터가 이해할 수 있는 언어????? 그런 언어가 있나??? 컴퓨터는 말을 못하는데..??
그렇죠. 컴퓨터는 말은 못하지만, 이해할 수 있는 언어는 있어요. 신기하죠? 게다가 하나도 둘도 아니고 굉장히 많은 언어를 이해할 수 있습니다.
그렇다면, "컴퓨터가 이해할 수 있는 수많은 언어"를 익혀서 컴퓨터에게 얘기해주면(또는 명령하면), 컴퓨터가 일을 하겠네요.
컴퓨터가 이해할 수 있는 언어들 중에 하나가 바로 우리가 공부하려는 python 입니다.
python 이라는 언어를 알아야 컴퓨터에게 일을 시킬 수 있는 것이죠. python을 모르면 컴퓨터에게 일을 시킬 수 없어요.
python 이라는 프로그래밍 언어를 이용해서 컴퓨터에게 시킬 일(명령)들을 만들고, 이것을 다 모아놓으면 그것이 프로그램이 되는거에요.
이제 프로그램이 무엇인지, 왜 python을 공부해야 하는지 이해가 되나요?


컴퓨터가 이해 할 수 있는 여러가지 언어 중에서 왜 python을 배워야 하나요?


그 이유는 바로 python이 가장 쉽기 때문이죠.

게다가, 여러가지 장점이 많다보니 전 세계에서 많은 사람들이 사용하는 프로그래밍 언어이기도 하죠.
여러가지 장점에 대해서는 추후에 한번 정리해서 글을 적어보도록 할게요. 지금 당장 알고싶다면 구글에서 파이썬 장점으로 검색해보세요.

우리가 중/고등학교때 영어를 배우는 이유가 뭘까요?
전 세계 많은 사람들이 영어를 사용하여 소통하기 때문이죠. 많은 사람들과 소통하기 위해서는 우리도 영어를 할 줄 알아야 하듯이, python을 익히면 전 세계 많은 python을 사용하는 사람들과 함께 프로젝트도 진행하고, 궁금한 점이 있을 때 알려줄 사람도 많아서 좋겠죠. 일단 의심하지 말고 저를 믿으시고 python 으로 프로그래밍을 시작해보세요 ^^

이제 컴퓨터가 이해할 수 있는 언어인 Python을 배워서, 컴퓨터에게 여러가지 일들을 시켜볼거에요.
우린 처음이니까, 간단한 것부터 시작해보도록 하죠.


입문강좌를 들어가기에 앞서서


프로그램 만드는 법을 배우면 화려한 3D게임, 움직이는 로봇, 스마트폰 앱을 당장 만들게 될 줄 알았죠?

하지만 생각했던 것과 지금 당장 배우는 것은 아마도 많은 차이가 있을거에요. 저 또한 그랬고요.

미리 말씀드릴게요.
이번 입문강좌에 화려한 그래픽? 없습니다. 네트워크를 이용한 쇼셜기능? 없습니다.
ㅜ ㅜ 그럼 뭘 배우나요....? 검은색 바탕에 흰색 글자만 나오는 화면에서 무언가 만들어 볼거에요.

헐.....-_- 80년대도 아니고 이게 뭐에요. 요즘 누가 이런걸 써요.


실망이 크셨나요?
사칙연산을 모르고 미적분을 할 수 있을까요? 없습니다.
기초가 없이는 아무 것도 할 수 없습니다. 그 어떤 프로그래밍 강좌를 보더라도, 처음부터 화려하고 복잡한 것을 가르쳐 주지 않습니다.
일부러 가르쳐 주지 않는 것이 아니라, 그러한 것들을 이해할 정도의 기초가 없기 때문에 알려줄 수가 없는 것이죠.
사칙연산을 모르는 학생에게 미적분을 가르칠 수 없는 것과 동일한 이치입니다.

실망하지 마시고, 입문강좌를 쭈~욱 따라오시면
마지막에는 분명, 탄탄한 기초를 바탕으로 새로운 길이 열릴겁니다. 제가 장담할게요.
그리고, 최대한 지루하지 않게 제가 잘 준비하겠습니다. 그건 저의 몫이겠네요.

자 그럼 본격적으로 python에 대해서 살펴보겠습니다!!!


Python을 좋아하시는 분들, 그냥 지나치지 마시고 댓글로 인사라도 남겨주세요.
Python을 좋아하는 분들과 community 만들어서 open source project 진행하고 싶은 마음이 있습니다.
꼭 project가 아니라도, 함께 스터디/토론 하는 것도 좋고요.
저의 소중한 인연이 되어주세요 :)