코딩이란
최근 코딩에 대한 관심이 무척 높습니다. 아이들은 이미 정규 교육과정 중에 코딩을 접하고 있으며, 자녀를 둔 학부모 입장에서는 아이들이 배우는 코딩에 대해 자연히 관심을 가질 수 밖에 없습니다. 많은 직장인들 또한 이제는 업무 상 크고 작은 코딩을 사용할 수 밖에 없을만큼, 개인이 다루는 데이터량이 상당히 증가했고, 일부 직종에서는 아예 코딩으로 생계를 유지하기도 합니다.
하지만 아직도 직접 경험하지 않은 분들에게는 코딩이란 단어가 생소하게 들릴 수 있습니다. 요즘 핫한 키워드인 MZ세대들은 사실 컴퓨터 네이티브이기 때문에, 외부시선으로 보면 마치 컴퓨터를 너무나 잘 알고, 코딩 또한 쉬운 일처럼 보일 수 있는데요, 실상 MZ 세대들 중에도 컴퓨터와 가깝지 않은 분들은 코딩에 대해 어렴풋하게만 알 뿐 명확히 코딩이 무엇인지, 또 코딩을 통해 어떤 것을 할 수 있는지 알지 못합니다. 본 글에서는 이러한 궁금증을 간결하게 정리하여 알려드리도록 하겠습니다.
코딩(Coding) or 프로그래밍(Programming)
코딩이란 용어부터 살펴보겠습니다. 코딩(Coding = Code + Ing)은 영어 Code란 단어에 ing가 붙은 형태로, 직역하면 '코드를 하는 행위'를 뜻합니다. 그럼 여기서 코드를 한다는 말이 무엇일까요. 코드는 컴퓨터 언어를 작성하는 것을 의미합니다. 쉽게 생각하면 컴퓨터가 알아들을 수 있는 컴퓨터의 언어로 글을 작성해서 컴퓨터에게 전달하는 것입니다.
즉, '코딩을 한다'는 말은 '컴퓨터에게 편지를 쓴다'라는 말로 해석할 수 있고, 여기서 단, 편지의 언어는 한글이나 영어, 일어가 아닌 컴퓨터어가 되는 것입니다.
이렇게 코딩을 하게 되면 단순하게 컴퓨터에게 무언가 요구할 수 있습니다. 예를 들어, 컴퓨터에게 print('여행가고싶다') 라는 편지(코드)를 작성해서 전달하면, 컴퓨터는 '여행가고싶다' 라는 글을 출력하라는 코드를 이해하고 모니터 화면에 '여행가고싶다' 라는 글을 출려해줍니다.
단순한 예제이지만 이런 명령을 단계별로 여러가지 입력해주게 되면 컴퓨터로 하여금 일을 하게 만들 수 있습니다. 예를들어 수학문제집을 풀기가 귀찬다면 컴퓨터에게 명령을 줘서 풀어낼 수 있습니다. 더하기 빼기 곱하기 나누기 같은 연산을 연속해서 수행하도록 컴퓨터에게 코드를 전달하면 컴퓨터는 전달받은 순서대로 연산을 마친 후 결과를 출력해줍니다.
이러한 명령들의 조합으로 컴퓨터에게 특정 기능을 할 수 있도록 만드는 행위를 우리는 프로그래밍이라고 합니다. 프로그래밍이란 단어 또한 프로그램과 Ing를 붙여 만든 단어로 특정 기능, 즉 프로그램으로써의 기능을 가지도록 하는 행위를 프로그래밍이라고 합니다.
결국 우리는 컴퓨터로 하여금 특정 기능을 가질 수 있도록 코딩을하는 행위를 통해 프로그래밍을 하게 되는 것입니다. 단어의 뜻이 조금 차이가 있긴 하지만 일반적으로는 코딩과 프로그래밍을 거의 동일한 의미로 사용합니다.
코딩으로 할 수 있는 일
앞선 글에서 코딩에 대해 이해하셨다면, 코딩으로 할 수 있는 일 또한 이미 예측이 되실 것 같습니다. 단순한 예제를 들어설명드린 것처럼 코딩을 통해서 단순 연산하는 일은 매우 쉽습니다. 만약 이러한 연산의 기능을 세분화해서 사용하기 편하게 디자인한 뒤 실행파일을 만들어 배포하면 이 자체로 계산기 어플이 탄생하게 됩니다. 이처럼 코딩으로 할 수 있는 첫번째 일은 어플리케이션 즉, 우리가 필요한 기능을 가진 프로그램을 만들어내는 것입니다.
코딩을 통해서 할 수 있는 일은 무궁무진한데요, 그 중에서도 두번째로 소개드리고 싶은 일은 데이터 처리 입니다. 코딩을 통해 프로그램을 꼭 완성해서 무언가 배포를 할 필요는 없습니다. 말 그대로 코딩이 실행되게 하여 어떠한 필요한 일이 처리만 되게 해도 되는데요, 예를 들어 엑셀로 정리한 고객들의 전화번호 앞에 국가코드 +82를 붙이는 일을 하고 싶을 때를 가정해보겠습니다. 엑셀에는 고객 5천여명의 명단과 연락처가 담겨있고 이를 일일이 +82를 붙이게 되면 하루 종일 해도 시간이 모자랄 것입니다. 아무리 빨리 작업한다 해도 5초에 명씩 작업을 할 수 있다고 가정하면, 5천여명의 연락처를 다 작업하는데는 2만5천초가 필요하고, 한 시간이 3천6백초이니, 이는 시간으로 환산하면 약 7시간정도 됩니다. 즉 사람이 숨만쉬면서 화장실도 안가고 밥도 안먹고 7시간 작업하면, 5천여명의 연락처를 다 수정할 수 있습니다. 하지만 이를 코딩을 통해 작업하면 어떻게 될까요. 단순반복작업이라 10줄도 안되는 코드로 명령을 주면 컴퓨터는 아마 1분도 채 걸리지 않고 업무를 완료해서 결과물을 우리에게 줄 것입니다.
만약 고객 명단이 10만명이라면 사람이 직접 작업하면 140시간이 걸리겠지만, 컴퓨터로는 10분도 걸리지 않을 것입니다. 물론 이 10분 또한 코딩한 대로 행동하라고 명령한 뒤에는 신경쓰지 않아도 되니, 사실상 우리는 처음 코딩 몇줄 작성하는 시간만 투자하면 되는 것이죠. 이같은 시스템을 구축하는 것을 업무 자동화라고 합니다. 이처럼 일상에서도 업무에 코딩을 활용해 자동화 시스템을 구축하게 되면 엄청나게 효율성이 올라갑니다. 이미 대기업들은 상당부분에 이런 업무 자동화 시스템을 구축해두었고, 따라서 해당 분야에 첫 발을 디딘 기업이 이를 따락가기 위해서는 먼저 시스템 구축부터 굉장한 투자를 할수 밖에 없습니다.
위에서 어플리케이션 제작과 업무 자동화에 대해 알아본 것처럼 코딩을 활용하면 정말 많은 일들을 할 수 있고 그 일이라는 것이 어떤 범위를 한정해둔 것이 아니라는 사실을 알 수 있으실 것입니다.
코딩 언어란
첫 문단에서 print('여행가고싶다')라는 코드를 예시로 보여드렸습니다. 해당 코드는 여러 컴퓨터 언어들이 공통적으로 사용하는 문법이기에 대부분 동작하겠지만, 일부 언어에서는 동작하지 않을 수도 있습니다. 국가별로 지역별로 서로 다른 언어를 쓰듯 컴퓨터 또한 사용가능한 언어가 다양합니다.
2000년을 맞이하면서 21세기 디지털 시대에는 0과1로 이뤄진다라는 말을 들어보신 적이 있으실 것입니다. 여기서 0과1이라 하면 0은 Off(False) 상태, 1은 On(True)상태를 뜻합니다. 즉 컴퓨터는 매우 똑똑할 것 같으면서도 사실상 이 두가지 상태, 즉 0이냐 1이냐, 오프냐 온이냐, 거짓이냐 참이냐 처럼 이분법적 사고를 통해 언어를 받아들인다는 것입니다.
수학적 백그라운드가 있으신 분들은 단번에 알아차리셨겠지만 이는 곧 이진법 숫자를 나타냅니다. 결국 0과1로 데이터를 받고 내보내는 일을 하는 컴퓨터는 어떠한 도움이 없이는 사람의 언어를 통해 명령을 받고 그 명령을 실행하는 작업을 해낼 수 없습니다. 이처럼 컴퓨터가 단번에 알아들을 수 있는 0과1로 이뤄진 언어를 기계어라고 합니다.
반면 이 기계어를 사람 입장에서 조금더 이해하기 쉽게 1:1 대응되는 문자로 변경한 것을 어셈블리어(Assembly Language)라고 하고 이를 저급 언어라고 합니다. 여기서 더나아가 현대의 컴퓨터 언어들을 고급언어라고 하는데 이 고급 언어에 포함되는 언어들이 바로 Java, Python 등과 같이 우리에게 익숙한 프로그래밍 언어입니다. 이들 언어는 컴퓨터보다는 사람이 더 직관적으로 이해하기 쉽게 구성된 언어이기 때문에 현대에 와서는 고급언어를 통해 수많은 프로그래밍이 이뤄지고 있습니다.
대표적인 고급 언어의 종류
포트란(Fortran) : Formular Translation을 축약해 Fortran이 되었으며 예전 나사에서 달착륙선을 보낼 때도 사용이 되었을만큼 오래된 언어입니다. 주로 수학적 물리학적 계산에 사용되었던 고급언어로 수식 자체를 그대로 입력하여 명령할 수 있으며, 문법이 비교적 간단하여 누구나 쉽게 사용할 수 있다는 장점이 있으나, 현대에는 이보다 많은 확장기능을 갖춘 언어들의 발달로 잘 사용되지 않고 있습니다.
C : C언어는 컴퓨털르 잘 모르는 분들도 많이들 들어보셨을 만큼 유명한 고급 프로그래밍 언어입니다. 주로 컴파일러나 프로그램 개발을 위해 현재까지도 사용되고 있는데 현대에 와서는 C++이란 객체지향 언어로 확장되어 더 빈번하게 사용되고 있습니다.
Java : Java 또한 C언어와 함께 매우 유명한 언어인데요, 웹 프로그래밍 언어인 Java Script와는 다른 언어입니다. 이 언어 또한 객체지향 언어로 C++에 비해 조금더 쉬운 문법을 가지고 있어 전세계적으로 가장 인기가 높은 언어입니다. 수많은 상용 프로그램 및 어플리케이션들이 자바를 기초로 만들어지고 있습니다.
파이썬(Python) : 파이썬은 상기 C언어나 Java에 비해 훨씬 더 간결한 프로그래밍 언어로 같은 기능을 더 짧은 문장으로 구현할 수 있는 파워풀한 언어입니다. 우너래 교육용으로 개발된 언어였는데, 그 효율성이 뛰어나 많은 사용자들이 각 분야의 현업에서 사용하며 그 기능을 확장하였기에 현대에 와서 가장 접근이 용이하고 기능이 강력한 언어로 계속하여 발전 중입니다.
본 글에서는 코딩이 무엇인지에 대해 간단히 알아보았습니다. 이 글을 통해 여러분도 코딩이란 것이 어떤 것인지 또 코딩을 통해 어떤 일이 가능한지에 대해 이해하실 수 있길 바랍니다. 더불어 본글을 계기로 코딩에 관심을 가지시게 되어 지금이라도 본인에게 맞는 언어 공부를 시작해보시길 추천드립니다.
함께 보면 좋은 글
지금 꼭 파이썬(python)을 시작해야하는 이유
일상에서 파이썬 코딩이 필요할까 업무의 자동화는 매우 매력적인 분야인 것 같습니다. 사실 직군이 사무직인 분들은 수년~수십년간 다뤄오신 엑셀에서 매크로까지 사용하시면서 능수능란하게
comoble.tistory.com