본문으로 바로가기

코딩이란? 코딩에 대한 개념 이해

2021. 10. 6. 01:49
반응형

코딩이란?

 

디지털 기술이 발전함에 따라 예전에는 전문 분야로 취급되던 프로그래밍 (코딩)에 대한 관심도가 커지고 있습니다. 소프트웨어가 점점 더 중시되면서 코딩에 관심이 당분간은 계속될 것으로 생각됩니다.

 

 

이번 글에서는 코딩이란 무엇인지, 기본적인 개념에 대해서 알아보겠습니다.

 

목차

     

    1. 코딩이란?

    우리는 소프트웨어의 시대에 살고 있습니다. 당장 카카오톡 같은 메신저 프로그램, 인터넷 뱅킹, 웹브라우저, 문서 작성 프로그램... 생활에 꼭 필요한 프로그램은 우리 주위에 이미 넘쳐날 정도로 많습니다.

     

    그리고 이제는 컴퓨터, 스마트폰뿐만 아니라 자동차, 생활가전, 금융, 농업, 공장 등 거의 대부분의 분야에서 다양한 프로그램이 사용되고 있습니다. 그런데 이러한 프로그램들은 코딩을 통해 완성됩니다. 코딩의 결과물이 프로그램인 것이죠.

     

    사장님이 직원을 코딩중입니다.

     

    즉, 코딩이란 프로그래밍 언어를 이용해 "프로그램"을 구현하는 기술을 말합니다. 혹은 컴퓨터에게 일을 시키기 위해서 컴퓨터가 이해할 수 있는 프로그래밍 언어로 입력하는 '과정'을 의미합니다.

     

    프로그래밍 언어와 코딩

    컴퓨터의 세계에는 오직 '0'과 '1'만이 존재합니다. 만약 코딩을 할 때 0과 1로만 구성된 이진법 숫자를 사용하면 그 절차가 너무 복잡할 뿐만 아니라, 감당할 수 있는 사람은 거의 없을 것입니다.

     

     

    기계어와 어셈블리어 등 컴퓨터가 이해하지 쉬운 저수준의 언어를 사용하는 경우도 있으나, 특수한 경우가 아니면 사용되지 않습니다.

     

    프로그래밍 언어는 이 둘 사이의 간극을 메워주는 역할을 합니다. 프로그래머 입장에서, 프로그래밍 언어는 어느 정도 알아볼 수 있는 문법 형태로 되어있습니다. 우리는 정해진 문법에 따라서 코딩을 하게 됩니다. 코딩한 내용이 "컴퓨터의 언어"로 번역, 변환되는 과정은 굳이 우리가 신경 쓸 필요는 없습니다.

     

    프로그래밍 언어는 엄청나게 많습니다. 과거의 베이직, 포트란, 코볼 등에서부터 C, C++, C#, HTML, JAVASCRIPT, JAVA, 파이썬 등 엄청나게 많은 종류의 프로그래밍 언어가 존재합니다.

     

     

    출처: The RedMonk Programming Language Rankings

     

    코딩 문법은 프로그래밍 언어에 따라서 조금씩 차이가 있습니다. 다만, 비슷한 개념을 포함하고 있는 경우가 많기 때문에 하나의 언어를 잘 안다면 다른 언어도 쉽게 습득할 가능성이 높습니다.

     

    반응형

     

    2. 코딩이 어려운 이유 

    처음 코딩을 접하게 되면 난감한 점이 몇몇 있습니다. 일단 기본적으로 영어를 사용해야 하는 경우가 많고, 각 언어에 따라서 문법적으로도 공부할 게 적지 않습니다.

     

     

    하지만 좀 더 근원적으로 생각해보면 큰 문제가 있습니다. 바로 컴퓨터는 생각보다 똑똑하지 않다는 점입니다.

     

    컴퓨터는 생각보다는 바보

    컴퓨터는 하나부터 열까지 정확하게 알려줘야합니다. 개떡같이 말해도 찰떡같이 알아듣는 그런 건 없습니다.

     

    개떡같이 이야기하면 개떡으로 알아들음

     

    음... 쉽게 생각해보면, 일을 시키면 하긴 하는데 적극적으로 스스로 생각하지 않고, 시키는 그대로 하는 직원을 생각해보면 됩니다. 하나하나 자세하게 세부적으로 지시를 해주어야 합니다. "척하면 척" 그런 건 없고요 모든 케이스에 대해서 명확한 매뉴얼이 있어야 합니다.

     

    스스로 코딩하는 AI는 언제쯤?

     

    예를 들어 생각해볼까요? 게시판을 운용하고 있는데, 사람들이 관심 있어하는 글을 게시판 상단으로 올리는 기능을 만들어보려고 합니다.

     

    "인기가 급격하게 늘어나는 글을 선정하여 상단으로 이동합니다."

     

    이렇게는 코딩할 수 없습니다. "인기가 급격하게 늘어난다"는 것으로는 코딩을 할 없습니다. 프로그래머라면 "인기가 늘어난다"는 것을 판단할 근거를 마련하고 이를 코딩해야 합니다.

     

    "최근 12시간 동안 좋아요 수가 50개 이상 늘어난 글을 게시판 상단으로 이동하며, 1시간마다 업데이트합니다."

     

    와 같이 명확한 방식으로 정의하고 코딩을 진행해야 합니다. 이와 같이 코딩을 위해서는 논리적 구조와 흐름을 파악하고 이를 설계하는 능력이 필요합니다. 또한 복잡한 동작을 어떻게 구조적으로 잘 설명하고 구현할 수 있는지의 능력도 중요합니다.

     

    그래서 코딩은 만만한 작업은 아닙니다. 물론, 정상적으로 코딩을 했다면 컴퓨터는 주어진 일을

    • 엄청나게 빠른 속도로
    • 실수없이
    • 쉬는 시간 없이

    처리하게 됩니다. 사람은 아무리 일 잘하는 사람도 컨디션에 따라서 다르지만 프로그램은 항상 같은 결과를 보여줍니다.

     

    3. 어떤 프로그래밍 언어로 시작해볼까?

    초등학교, 중학교 코딩 교육에서는 대부분 엔트리나 스크래치 같은 블록 코딩을 사용하는 것 같습니다. 교육 용도로는 충분히 좋은 것 같습니다. 다만, 뭔가를 제대로 구현해보려고 한다면 결국에는 텍스트 코딩으로 이동해야겠죠!

     

    처음 프로그래밍의 세계로 접근하려고 한다면, 파이썬을 추천합니다. 상대적으로 심플한 편이고, 빠르게 가시적인 결과를 도출하는 데에 좋습니다. 또한 강력한 라이브러리 지원에 힘입어 데이터 분석, AI, 웹크롤링 등 매우 다양한 영역에서 활용할 수 있습니다.

     

    물론 "코딩 공부" 측면에서는 아쉬운 점도 있는듯 하지만, 특히나 "동기부여" 측면에서 매우 강력한 언어라고 생각합니다. 특별한 타깃이 없다면 파이썬을 첫 언어로 선택하는 것도 나쁘지 않아 보입니다.

     

     

    화면에 print 찍는 수준의 문법공부로는 크게 동기부여가 힘들뿐더러, 좀 쓸만한 프로그램을 완성하기까지는 수많은 난관이 있어서 쉽게 지치게 됩니다. 파이썬은 서적, 온라인 교육 및 다양한 응용 예제 자료가 많이 있으므로 처음 코딩을 접근하는데 좋을 것 같습니다.

     

    맺음말

    이번 글에서는 코딩이란 무엇인지, 기본적인 개념에 대해서 알아보았습니다. 그리고 코딩이 어려운 이유에 대해서도 알아보았습니다.

     

    코딩을 배우는 것도 좋지만... 사실 "목적"이 없이 단순히 학습만 하는 것은 그다지 도움이 되지 않는 것 같습니다. 목적을 가진 프로그램을 창조 - 고난도의 SW가 아니더라도 - 하는 과정을 통해서 코딩을 배운다면 조금 더 쉽고 빠르게 친숙해지지 않을까 생각해봅니다.

     

    반응형