티스토리 뷰

생활상식

코딩이란? 코딩을 배우는 이유

해봐요오 2023. 6. 28. 00:30
반응형

코딩이란?

먼저 코딩의 사전적 의미는 '작업의 흐름에 따라 프로그램 언어의 명령문을 써서 프로그램을 작성하는 일을 말합니다.

다시 말해 코딩이란 프로그래밍할 수 있는 코드를 어딘가에 '적는 것'을 말합니다.

 

예를 들어, 메모장을 켜서 평범한 글을 쓸 수도 있겠고, 프로그램 코드를 쓸 수도 있는데 후자가 바로 코딩이라고 생각하면 됩니다. 코딩을 할 때 보통 컴퓨터를 이용하기에 키보드를 가지고 코딩을 하겠지만, 종이나 화이트보드 위에 직접 코드를 써 가면서 코딩을 할 수도 있습니다.

코딩

만약 우리가 게임을 만들고 싶다면 처음에 먼저 어떤 게임을 만들지 정해야 합니다. 그 게임은 '오버워치 게임'이 될 수도 있을 것이고 '리그 오브 레전드' 같은 게임이 될 수도 있을 것입니다. 어떤 게임을 만들지 정했고 그것을 글로 해서 꼼꼼하고 정확하게 썼다면 그 쓴 글을 실제 게임으로 만들어 줄 수 있는 개발자에게 보내어 의뢰하면 됩니다 개발자는 우리가 쓴 게임에 대한 글을 읽을 것이고 게임이 어떤 게임인지, 완성되었다면 어떤 모습일지 자신의 생각대로 파악할 것이며 자기가 이해한 대로 게임을 만들게 되는 것입니다. 게임을 만들기 위해서 개발자는 먼저 메모장 같은 것을 켜고 거기에 코드를 적고 저장을 하게 됩니다. 이렇게 만들어진 파일들은 평범한 텍스트 파일들인데, 이렇게 저장된 파일들을 '컴파일러'라는 프로그램에 넣으면 알아서 컴퓨터 프로그램이나 스마트폰 어플 파일을 만들어주게 됩니다. 그리고 그렇게 만들어진 게임을 우리에게 보내주면 끝이 나는 것입니다. 

 

이렇듯 코딩이란 '단순히 코드를 적고 파일로 저장하는 것'이라고 생각하시면 쉽습니다. 메모장을 써도 상관이 없고 워드나 한컴을 써도 됩니다. 그러면 그걸 알아서 프로그램으로 만들어주는 프로그램까지 있으니 정말 신기한 세상입니다.

코딩을 잘 한다는건 무슨 의미지?

"코딩을 잘한다"는 것은 어려운 문제를 더 간단하고 쉬운 개념을 통하여 효율적으로 풀어나가는 것을 의미합니다. 즉, 목적에 부합하는 결과물을 빠르게 만들어내는 능력을 의미한다고 생각하시면 됩니다.

 

구체적으로 말하자면 알고리즘의 구현을 할 수 있어야 하며, 그것을 여러 가지 방법으로 할 수 있어야 합니다. 이를 위해 조금 더 다양한 프로그래밍 언어에 대한 숙달은 기본이며, 각 언어별 특징을 파악하여 현재 프로젝트에 어떤 언어가 필요할지 선택을 할 수 있어야 합니다. 이때 퍼포먼스 측면뿐만이 아니라 '빠르게' 만들어야 하는 점도 중요한 부분을 차지합니다.

게다가 컴퓨터 프로그램이나 모바일 앱 등을 써보면 알겠지만, 코딩의 품질은 예고없이 등장하는 버그나 에러의 유무에 달려있습니다. 따라서 이것을 얼마나 구체적이고 세밀하게 대비하였는지가 코드의 퀄리티를 보장하는데, 퍼포먼스와 기한을 맞추면서도 고퀄리티의 디버그 코드까지 넣는 것이 얼마나 어려운 일인지는 해 본 사람만이 말할 수 있을 것입니다.

코딩

코딩에 대한 오해와 이해

그렇다면 이러한 코딩을 우리가 왜 해야 하는 것일까요? 일반인이나 교육관계자들이 가장 크게 오해하는 것이 있습니다. 그건 바로 코딩교육이 미래의 소프트웨어 개발자를 확보하기 위한 교육이라는 잘못된 생각입니다. 초. 중. 고등학교에서 음악을 교과로 가르치는 것이 가수나 작곡가 등의 전문음악인 양성을 위한 것이 아니라 단지 감성을 풍부하게 하는 교양으로 가르치듯 모든 학생을 대상으로 가르치게 되는 코딩교육도 사고력과 응용력을 풍부하게 하는 교육이라는 것입니다.

 

그저 학생들이나 일반인들에게 컴퓨터의 원리에 대한 기본적 이해를 높이고 그중에서 재능이 있는 사람이 있다면 자신의 재능을 발견할 기회를 주는 입장임을 알아야 합니다. 또한 코딩을 쉽다고 강조하기위해 코딩학원이나 취업과정 등에서 마치 몇 개월 정도 집중적으로 배우면 취업이 가능하다는 식으로 광고를 합니다. 이는 마치 몇 개월 정도 배우면 누구나 변호사나 의사나 수학자가가 될 수 있다는 거나 마찬가지가 되는 것입니다.

직업적으로 프로그래밍을 하기 위해서는 적어도 2-4년은 전문적인 교육이 필요하며 연구능력을 갖추기 위해서는 대학원 석사 등 그이상의 교육이 필요하다는 것을 알아야 합니다. 다시 말해, 수학을 가르치는 목적은 수리적인 사고능력을 기르는 것이고 체육, 음악, 미술 교과를 통해 신체를 단련하거나 예술적 교양을 기르는 것과 비슷한 취지의 교육이라고 생각하시면 됩니다. 초중고 수학교육을 통해 사회에서 수학을 직접 활용하는 게 목적이 아니며, 체육, 음악, 미술 교육도 운동선수나 예술가 양성이 목적이 아니듯이 코딩 교육 또한 코딩 기술 습득 자체나 프로그래머 양성이 교육의 목적 아니라 코딩을 통해 배우는 여러 가지 문제 해결 경험이 지능 발달과 문제에 대한 통찰력과 분석력 향상에 도움이 된다라고 생각하시면 됩니다.

코딩을 통해 논리적이고 조직적인 사고방식을 키우고 복잡한 문제를 분석해서 이를 명확하게 이해하는 능력뿐아니라 큰 문제를 간단한 여러 문제로 분할하여 추상화하는 능력, 수치와 판단을 기반해 문제를 해결하는 방법 등을 키울 수 있습니다. 또한 작은 부분을 조합하여 크고 복잡한 기능으로 만들어 가는 것, 시행착오를 거치며 해결책을 찾아가는 과정들, 다른 사람과의 소통과 협력을 통해 큰 문제를 해결하는 능력 등을 기르는 것을 목표로 하는 것입니다.

 

이상으로 코딩의 전반 적인 의미와 코딩을 왜 배워야 하는지를 알아보았는데 요즘 말하는 디지털 문해력(digital literacy)을 길러갈 수 있다고 생각하시면 좋겠습니다.

반응형