파이썬맛보기

[1] 파이썬 입문 - 프로그래밍이란 무엇인가

plas 2022. 6. 26. 12:40

안녕하세요? 프로그램의 세상에 오신 것을 환영합니다. 프로그래밍은 컴퓨터가 어떻게 동작하는지 이해하는데 도움이 되고 컴퓨터에게 내가 원하는 것을 시키기 위해 필요한 좋은 기술입니다. 프로그래밍은 사실 수학퍼즐 풀듯이 컴퓨터와 대화하며 재미있게 배울 수 있습니다. 프로그래밍의 세계에 처음 입문한 여러분을 위해 부담없이 재미있게 배워보는 파이썬 맛보기 시작해 보겠습니다.

이번 시간에는 여러분과 함께 프로그래밍이란 무엇인가? 어떻게 프로그램을 통해 컴퓨터에게 우리가 원하는 일을 시킬 수 있을까 차근차근 알아보려고 합니다.

컴퓨터 하면 뭐가 떠오르시나요? 인공지능? 로봇? 인터넷? 이런 모든 것들이 프로그램을 통해 사람이 작동시킨다는 것이 신기하지 않나요? 인공지능이나 인터넷, 핸드폰 앱들이 소프트웨어라고 하는 프로그램들의 모임이라는 것은 알고계시죠? 컴퓨터는 사람이 요구하는 어떤 일이든 할 수 있습니다. 계산도 하고 말도 하고 영상도 보여주죠.

그럼 사람은 어떻게 이런 거대한 소프트웨어를 만들었을까요? 소프트웨어는 사람들이 만든 거대한 건축물과도 같습니다. 수많은 소프트웨어 부품들이 쌓이고 모여서 오늘날의 디지털 세상을 만들었죠. 그 구조물 하나하나는 사람들의 땀과 노력이 들어간 프로그램이라는 것입니다. 그리고 그것들을 새로운 방식으로 엮어서 구성하면 내가 원하는 새로운 소프트웨어가 만들어집니다.

식당가에서 돌아다니는 배민 딜리버리 로봇을 생각해 볼까요? 이 로봇은 "주행, 정지, 회전, 가속, 감속, 불반짝임" 같은 몇가지 기본 능력을 가집니다. 센서를 통해 장애물을 판단하고 기울기 센서와 발에 달린 경사 센서로 균형을 잡을 줄 알고 시각을 통해 맵에서 자신의 위치를 어느 정도 판단하기도 합니다. 여기에는 그 모든 것 하나하나를 사람이 컴퓨터에게 알려주는 프로그램들이 포함되어 있습니다.

소프트웨어는 사람이 작성한 프로그램으로 구성됩니다. 프로그램은 "컴퓨터에게 우리가 원하는 일을 하게 만드는 작업지시서다"라고 얘기합니다. 컴퓨터는 엄청난 능력을 가지고 있지만 우리가 제대로 지시하고 컨트롤할 줄 모르면 원하는 일을 시킬 수가 없습니다. (세월이 지나서 컴퓨터가 똑똑해져서 우리가 원하는 것을 그냥 자연스러운 대화로 해결해 줄 수 있을지도 모르지요. 아직은 아닙니다) 오늘날 만들어져 있는 거대한 소프트웨어나 디지털 플랫폼들도 마찬가지입니다. 컴퓨터는 어마어마한 데이터를 다루고 통계를 내고 분석할 줄 알지만 어떤 데이터를 어떻게 분석할지는 사람이 알려 주어야 합니다. 컴퓨터는 문장을 입력받으면 다 번역하고 해석할 수 있지만 무엇을 읽고 어떤 질문에 답할지는 당신이 정해 주어야 합니다. 당신이 원하는 결과를 얻기 위해서는 컴퓨터에게 무엇을 할지, 어떤 질문에 답할지 어떤 결과를 어떻게 보여줄지를 컴퓨터에게 알려주어야 합니다. 그것이 프로그램입니다.

프로그래밍이란 컴퓨터에게 지시할 내용(프로그램)을 작성하는 것입니다. 컴퓨터에게 약속된 방식으로 사람이 원하는 작업을 지시하는 거죠. 

자 그럼 이번에는 프로그래밍 언어가 무엇인지를 한번 생각해 보죠. 여러분들은 아마도 블록코딩 형태로 퍼즐맞추기처럼 생긴 프로그램을 해보셨을지도 모릅니다. 그런가 하면 C언어나 파이썬 처럼 텍스트로 만드는 프로그래밍 언어도 있죠? 그럼 여기서 언어란 대체 무엇일까요? 프로그래밍 언어는 컴퓨터에게 사람이 작업을 지시하기 위해 만든 대화방식입니다. 

우리가 한국어 문법, 영어 문법이라고 얘기하듯이 프로그래밍 언어도 문법이 있습니다. 블록 코딩이라면 약속된 방식으로 블록들을 끼워맞추어서 우리 의도를 전달해야 되겠지요? 거기에도 값을 기억하는 이름과 비교나 계산을 하는 블록, 그리고 그런 것을 여러 번 계산하게 하는 블록 등이 규칙에 맞게 조립되어야 합니다.

<그림 블록코딩 프로그램 사례 화면>

그러면 파이썬 같은 텍스트로 만드는 프로그래밍 언어는 어떨까요? 텍스트 기반 언어에서는 우리가 a = 3 이렇게 써주면 컴퓨터에게 a라는 이름에 3을 넣어줘라는 의미가 되죠. 어떤 언어는 a <- 3 이라고 쓰고 어떤 언어는 a = 3; 처럼 세미콜론을 해주어야 합니다. 프로그래밍 언어는 계산을 시키기 위한 수식 연산 기호들을 많이 가지고 있습니다. 또 프로그래밍을 구성하는 약속된 단어가 있습니다. 흔히 예약어 또는 키워드라고 하죠. 뭐라고 하든, 그런 예약어를 통해서 프로그램이 뭔가를 계산하는 순서나 회수, 그것을 어디에 기억시킬 것인가를 컴퓨터에게 알려주게 됩니다.지시할 사항을 텍스트로 써주면 컴퓨터가 뭘 하라는 것인지 알아먹을 수 있는 컴퓨터와 약속된 방식이죠.

컴퓨터는 기억을 잘 하고(메모리) 계산(CPU)을 잘 합니다. 그래서 어떤 값을 기억하고 계산해서 또 기억하고 그런 일을 수없이 반복하는 식의 작업이 컴퓨터가 잘 하는 일이죠. 이름을 통해 값을 기억시키고 수식을 통해 계산을 알려주고 예약어를 통해 그런 계산을 어떤 순서로 몇번이나 할지 결정합니다. 우리가 컴퓨터에게 주어야 하는 작업지시서(프로그램)가 바로 이름과 수식과 예약어로 우리가 원하는 바를 컴퓨터에게 알려주는 것이고 프로그래밍 언어는 그런 작업지시 방식을 정해놓은 문법(약속)입니다. 

자 여기까지 프로그램이란 무엇인가? 프로그래밍 언어란 무엇인가? 그리고 블록 기반 언어와 텍스트 기반 언어가 있다라는 것을 배워보았습니다. 이제 다음회에서는 진짜 프로그래밍의 세계로 들어가 봐야겠지요?

확인학습

프로그램이란 컴퓨터에게 우리가 원하는 것을 지시하는 ____________________다.

프로그래밍이란 사람이 _________을 만드는 작업을 뜻한다.

프로그래밍 언어란 컴퓨터에게 우리가 원하는 바를 지시하기 위해 미리 약속된 컴퓨터와 _________이다.

프로그래밍 언어는 컴퓨터가 알아들을 수 있는 미리 약속된 정해진 규칙이 있어서 이것을 ________이라 한다.