프로그래밍 생각 정리

프로그래밍 생각 정리

‘변화’를 능동적으로 ‘소화’하는 사람 

‘스타 강사’ 57세 김미경 저자는 그의 새 책의 목차에 ‘파이썬을 배우는 이유’을 포함했습니다. 

쉰살이 넘은 나이에도 쉼없이 새로운것을 찾는 그의 이야기에서 한껏 용기를 얻은 동시에 내용이 궁금해졌습니다.  

‘도대체 프로그래밍이 뭐길래 사람들이 관심을 가지게 된걸까요?’ 

 

그 해답을 찾기 위해 프로그래밍이란 무엇인지, 왜 배워야 하는지, 무엇을 배워야 하는지 를 알아보려고 해요.

어려운 내용은 없으니까 편하게 읽어 주세요.

 

프로그램program의 사전적 의미는 ‘특정 작업을 수행하는 일련의 명령어들의 모음(집합체)’을 말해요.

문서 작성에 쓰이는 워드프로세서, 수치 계산을 포함해 각종 업무에 필수로 쓰이는 엑셀, 4차 산업 혁명의 중요한 토픽 중 하나인 자율주행차, 현대 사회에 없어서는 안 될 카카오톡과 같은 메신저, 심 지어 이제는 항상 몸에 지니고 있는 스마트폰까지, 우리가 접하는 거의 모든 것이 일련의 명령어들로 구성된 ‘컴퓨터 프로그램’으로 처리되고 있어요.

 

지금은 너무도 당연한 것처럼 느끼고 사용하고 있지만, 이 모든 것을 가 능하게 한 원동력은 바로 똑똑한 ‘컴퓨터 프로그램’의 힘이라고 할 수 있지요.

컴퓨터 프로그램은 소프트 웨어(software)라고 부르기도 합니다

 

프로그램 소프트웨어

프로그램, 프로그래밍, 코딩 이해하기

프로그래밍programming이란 프로그램을 만드는 행위를 의미하고, 프로그래밍을 하는 사람을 프로그래머programmer라고 해요.

그렇다면 코딩coding이란 무엇일까요?

코딩은 프로그래밍과 같은 말이에요.

 

어떤 사람들은 코딩과 프 로그래밍을 구분 지어 말하기도 하지만, 굳이 구분할 필요는 없어요.

구글 검색 사이트에서 ‘how to code’라는 검색어로 검색하면 수많은 검색 결과에서도 코딩과 프로그래밍이 같은 의미로 쓰인다는 것을 확인할 수 있어요.

 

정리해 볼까요?

  • 프로그램특정 작업을 수행하는 일련의 명령어들의 모음을 의미합니다.
  • 프로그래밍프로그램을 만드는 행위를 의미합니다.
  • 프로그래머란 프로그램을 만드는 사람을 의미합니다.
  • 코딩프로그래밍을 말하는 것으로 두 단어는 같은 의미입니다.

 

프로그래밍을 배워야 하는 현실적 이유

애플을 창업한 스티브 잡스, 마이크로소프트를 창업한 빌 게이츠, 전 미국 대통령 버락 오바마 등 저명한 인사들이, 프로그래밍을 전공하지 않은 ‘프알못’도, 왜 프로그래밍을 배워야 한다고 말하는 걸까요?

‘프알못’은 ‘프로그래밍을 알지 못하는 사람’의 줄인 말이에요.

여러 가지 이유가 있겠지만, 다음 문장으로 요약할 수 있어요.

할아버지

“가장 강한 종이 살아남는 것이 아니고, 가장 지적인 종이 살아남는 것도 아니다. 변화에 가장 잘 적응하는 종이 살아남는다.”

『종의 기원』의 저자 찰스 다윈이 한 말이에요.
여기서 핵심은 이미 짐작했겠지만 ‘변화에 잘 적응하는 것’이에요.

아래 예는 실제 우리 생활 주변에서 벌어지고 있는 변화를 단적으로 보여 주는 사례입니다.

 

 

 

무려 14년(1998~2011년)간 휴대 전화 분야에서 세계 시장 점유율 1위를 자랑하던 노키아가 모바일 중심의 시장 변화를 제대로 읽지 못해 결국 휴대 전화 사업을 포기했어요. 

프로그램 소프트웨어

무료 메시지를 보내던 것으로 시작한 카카오톡이 한국 IT 산업을 이끌던 다음커뮤니케이션과 합병한 후, 게임, 검색, 커머스, 엔터테인먼트, 교통, 심지어 진입 장벽이 높았던 금융 산업까지 진출해서 좋은 성적을 내고 있어요.

이제 카카오톡이 새로운 분야에서 비즈니스를 한다고 하면 전혀 놀라운 일이 아니게 된 거죠.

 카카오(주)의 시가총액이 31조를 기록하여 21조인 현대자동차 보다 10조 이상 많아졌네요. / 2020년 7월 9일 기준 

카카오 kakao

2016년 구글의 인공 지능 소프트웨어 알파고가 프로 기사로 세계를 주름 잡던 이세돌 9단을 4:1로 이기며 그동안 난공불락이라 여겨졌던 바둑계에 큰 이슈로 등장했어요.

전 세계가 놀랐고, 눈부 신 속도로 발전하고 있는 인공 지능 분야를 대중에게 알리는 계기가 되었습니다.

알파고 이세돌

미국의 유명한 비즈니스 전문지 포브스는 2019년 세계에서 가장 가치 있는 브랜드로 애플, 구글, 마이크로소프트, 아마존, 페이스북을 선정했습니다.

모두 IT 산업을 대표하는 기업입니다.

2019년 베스트 브랜드 포브스

이 모든 것이 우연이 아니에요.

변화의 중심에 기술 산업의 혁신이 자리하고 있으며, 이러한 변화를 ‘프로그래밍’이 이끌고 있어요.

그렇다면 이러한 시대의 흐름에 맞춰 모든 사람이 프로그래밍 전문가가 되어야 할까요?

아니에요, 그렇지 않아요.

단지 요즘 일상생활에서 사용하고 있는 서비스 및 제품들이 모두 프로그램으로 이루어진 만큼 프로그래밍을 배워야 조금 더 빠르게 세상을 이해할 수 있을 거라는 생각입니다.

여러분 내면에 숨겨있던 프로그래밍 재능을 발견할 수 있는 것은 덤이고요.

앞으로 우리가 만나게 될 미래는 프로그래밍이 더는 선택이 아닌 시대가 될 것입니다.

 

여러분의 의사와 관계없이 변화는 이미 시작됐어요.

전 세계 대학교가 앞다퉈 인공 지능 교육 과정을 개설하고 프로그래밍을 필수 교육 과정의 하나로 지정하고 있으며, 우리나라도 초등학교에서 이미 프로그래밍 수업이 진행되고 있어요.

이러한 변화를 마냥 무시할 수만은 없겠죠?

프로그래밍을 배워야 하는 이유가 여기에 있습니다. 

 

프로그래밍을 하려면 알아야 하는 것들

우리는 사람들과 언어language로 대화해요.

예를 들어 한국에 서는 한국어로 대화하고, 미국에서는 영어로 대화합니다.

마찬가지로 컴퓨터도 그들만의 언어, 즉 기계어machine language라고 불리는 언어가 있어요.

기계어는 0과 1로 모든 것을 표현하는 2진법binary system을 사용해요.

처음 컴퓨터가 발명됐을 때 전기 신호가 들어왔는지(1), 들어오지 않았는지(0)를 확인하기 위한 방법으로 2진법을 사용하기 시작해서 지금까지 사용하고 있어요.

기계어

기계어

그렇다면 프로그래밍을 하기 위해서 기계어를 배워야 할까요? 

아닙니다.

컴퓨터가 발명된 초기에는 기계어로 코딩을 했지만, 프로그램이 복잡해지면서 어느 순간 기계어로 코딩을 하는 것이 사실상 불가능해졌고 마침내 컴퓨터 과학자들은 기계어의 대안을 찾기 시작했어요.

그 결과, 사람이 쉽게 이해할 수 있는 문자를 활용해서 프로그램을 만들 수 있는 새로운 언어를 개발했어요.

이 언어를 프로그래밍 언어programming language라고 해요.

말 그대로 프로그램을 만 드는 데 사용하는 언어라는 의미예요.

프로그래밍 언어가 등장하면서 드디어 우리는 2진법이 아니라 영어 알파벳, 한글 등을 사용해서 코 딩을 할 수 있게 되었습니다.

이때부터 프로그래밍을 다루는 산업이 빠르게 발전합니다.

프로그래밍 언어는 다음과 같이 크게 소스 코드번역기로 이루어져 있어요.

 

‘소스 코드’는 무엇인가요? 

여러분이 무언가를 처음 배울 때를 생각해 보세요.

가장 기본적인 규칙을 배우죠? 컴퓨터도 마찬가 지예요.

프로그래밍 언어가 있고 그 언어의 기본 규칙에 따라 프로그램을 작성해요.

이렇게 작성된 프로그램을 소스 코드source code라고 합니다.

그러나 이를 컴퓨터가 사용하는 기계어로 번역하는 과정 이 한 번 더 필요해요.

소스 코드는 사람이 사용하는 문자인 알파벳, 한글, 숫자 등으로 이루어져 있기 때문에 컴퓨터는 이를 이해할 수 없고, 따라서 실행할 수도 없어요.

 

‘번역기’가 왜 필요한가요? 

여러분이 작성한 소스 코드는 프로그래밍 언어의 번역기(컴파일러compiler 혹은 인터프리터interpreter)를 통해서 기계어로 번역되고, 그 결과 컴퓨터에서 실행 가능한 프로그램이 만들어져요.

영어를 모르는 사람은 앞에서 유창하게 영어로 하는 말을 알아들을 수 없겠지요?

하지만 번역기를 사용해 영어를 우리말로 바꾸어 주면 알아들을 수 있습니다.

 

결국 프로그래밍이라는 것은,

1. 프로그래밍 언어의 문법에 따라 소스 코드를 작성하고,

2. 소스 코드를 프로그래밍 언어가 제공하는 번역기를 사용해서 기계어로 번역하는 과정을 말합니다.

프로그래밍이란

그렇다면 ‘프로그래밍을 하려면 무엇을 배워야 할까요?’에 대한 답이 구해졌죠?

“프로그래밍을 하려면 프로그래밍 언어를 배워야 해요.”

따라서 프로그래밍 언어를 배운다는 것은 위에서 설명한 ‘프로그래밍을 하는 방법’을 배우는 것과 같습니다.

1. 프로그래밍 언어의 문법에 따라 소스 코드를 작성하는 방법을 배워야 하고,

2. 프로그래밍 언어가 제공하는 번역기를 사용해서 소스 코드를 기계어로 번역하는 방법을 배워야 합니다.

 

문법을 배우는 것도 모자라 기계어로 번역하는 방법까지 배워야 한다니, 영어보다 더 어렵게 느껴지나요?

하지만 걱정하지 마세요.

처음부터 외국어를 잘 하는 사람은 없어요. 

 

지금까지 이야기한 것을 머릿속에 쏙쏙 집어넣고 마무리하겠습니다.

  • 컴퓨터와 대화하기 위해서는 컴퓨터가 이해하는 언어, 즉 기계어를 배워야 합니다.
  • 기계어는 1과 0으로 모든 것을 표현하는 2진법을 사용합니다.
  • 기계어는 사람이 이해하기 매우 어렵기 때문에 기계어를 대체할 수 있는 새로운 언어, 즉 프로그래밍 언어가 등장했습니다.
  • 프로그래밍 언어는 크게 소스 코드와 번역기로 구성됩니다.
  • 프로그래밍 언어의 문법에 따라 사람이 이해할 수 있는 문자, 영어 알파벳으로 작성된 프로그램을 소스 코드라고 합니다.
  • 프로그래밍 언어가 제공하는 번역기를 이용해서 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역해야 합니다.

혼공 첫 프로그래밍 표지

혼공 첫 프로그래밍 입체 표지

프로그래밍에 관심이 생기셨나요? 

좀 더 자세히 알아 보시려면 <혼자 공부하는 파이썬> 용어노트와 동영상 강의를 참고해 보세요!

》 <혼자 공부하는 첫 프로그래밍 with 파이썬> 용어 노트 다운로드
》 <혼자 공부하는 첫 프로그래밍 with 파이썬> 무료 강의 동영상