#02 코딩 기초 용어를 배워보자

3 분 소요

#코딩 기초 용어를 배워보자

2015년 개정 교육과정에 따라 2019년부터 초등학교 5,6학년 학생들은 연간 17시간 이상 코딩 교육이 의무화되었습니다. 미국, 영국, 핀란드, 이스라엘 등 여러 나라에서는 이미 코딩 교육을 의무적으로 시행하고 있습니다. 우리나라는 2018년부터 중학교는 필수, 고등학교는 선택 교육과정으로 코딩 교육이 포함되었습니다.

아직은 생소한 코딩 교육, 4차 산업혁명①의 핵심요소로도 언급되고 있습니다. 이제 조금씩이라도 관심을 가져야 할 것 같습니다.

수퍼C와 조코딩이 함께하는 코딩 클래스 2번째 시간, ‘코딩 기초 용어’를 정리해보도록 하겠습니다.

##“코딩”이란 무엇인가?

“코딩”은 Code + ing의 합성어로 코드를 작성한다는 의미입니다. 여기서 코드는 컴퓨터가 알아들을 수 있는 언어로, 요약하자면 컴퓨터에게 명령하는 것입니다. 예전에는 컴퓨터의 성능이 지금보다 좋지 않았기 때문에 코딩을 통해 할 수 있는 것이 별로 없었습니다. 그러나 초당 수십억 번의 연산을 할 수 있고 인터넷으로 전 세계가 연결되어 있는 컴퓨터에게 명령할 수 있는 힘은 정말 엄청나다고 할 수 있습니다.

현대 사회에서 코딩은 마치 마법 같습니다. 마법 주문을 외우듯 코드를 작성하면 무생물인 물체도 지능을 가진 생명체처럼 만들 수 있고, 여러분의 사진을 자동으로 보정, 합성해주며, 전 세계 수십억 명이 이용할 수 있는 게임 및 커뮤니티를 만들 수도 있습니다. 또 업무를 자동화하여 수개월의 기간이 소요될 업무도 짧은 시간에 처리할 수 있습니다. 이 외에도 정말 다양한 일을 해낼 수 있는 것이 바로 “코딩”입니다. 코딩을 할 수 있다면 마치 마법사가 된 것 같은 느낌을 받을 수 있죠.

##프로그래밍 언어란?

코딩에 사용되는 코드, 즉 컴퓨터에게 명령을 할 수 있는 언어는 어떤 것이 있을까요? 사실 컴퓨터 내부적으로는 전원이 들어온 것, 들어오지 않은 것을 나타내는 0과 1만을 인식할 수 있습니다. 즉 컴퓨터에게 명령을 하려면 “0100101001” 이런 식으로 ‘0’과 ‘1’만을 사용해야 컴퓨터가 알아듣고 원하는 작업을 수행할 수 있는 것이죠.

이렇게 컴퓨터가 쉽게 알아들을 수 있는 언어를 “기계어”라고 합니다. 그런데 매번 ‘101010101’ 이런 복잡한 명령어를 외우고 사용하려면 명령하는 사람들 입장에서는 굉장히 힘들겠죠? 그래서 조금 더 효율적인 방식으로 발전시키게 됐습니다. 그것을 바로 우리가 흔히 말하는 “프로그래밍 언어”라고 한답니다.

##고급언어? 저급언어?

우리들이 사용하는 언어도 각 나라마다 다르듯이 기계어를 발전시킨 방식의 프로그래밍 언어도 굉장히 다양한 종류가 있습니다. 이러한 언어들 중에서 기계어에 가까운 형태일수록 “저급 언어”라고 불리며 인간의 언어에 가까울수록 “고급 언어”라고 불리게 됩니다.

저급 언어는 상대적으로 조금 복잡하고 사용하기 어렵지만 컴퓨터 내부적으로 더 세부적인 조절이 가능하며 실행 속도가 더 빠릅니다. 반면 고급 언어일수록 사람이 배우고 활용하기 쉬운 반면에 세부적인 조작 능력이나 실행 속도가 다소 떨어지는 면이 있습니다.

또한 프로그래밍 언어들이 “고급언어”, “저급언어”로 나뉘는 것은 물론, 각기 용도에 따라 특화된 언어들이 다양하게 있기 때문에 코딩을 배우는 목적에 맞춰 선택하여 학습할 수 있습니다.

##프레임워크? 라이브러리? API? SDK?

프로그래밍 언어를 알고 있으면 컴퓨터에 직접 명령하여 자신이 만들고 싶은 프로그램을 만들 수 있습니다.

다만 처음부터 모든 단계에 필요한 것들을 개발하려면 힘들 수도 있습니다. 예를 들어 앱을 만들 때, 로그인을 하거나 게시판을 볼 수 있는 기능 등 다른 앱에서도 기본적으로 사용되는 기능들을 처음부터 직접 만들어야 한다면 정말 많은 시간이 필요하게 됩니다. 하지만 이렇게 기본적으로 널리 쓰이는 기능의 프로그램들은 전문가들이 이미 개발, 구현하여 쉽게 활용할 수 있는 도구 모음들을 만들어 놓았습니다. 즉, 프로그래밍에는 실질적으로 많이 사용되는 기능들을 편리하게 쓸 수 있도록 미리 만들어 놓은 도구들이 충분히 존재합니다. 이러한 도구들이 바로 프레임워크, 라이브러리, API, SDK입니다.

4가지 모두 “가져다 쓰는 미리 만들어진 도구”의 개념 정도로 쉽게 이해하고 넘어가도 좋지만, 세부적으로 개념을 살펴보겠습니다.

▶ 프레임워크는 애플리케이션의 전체적인 구조를 잡아주어 설계와 구현이 재사용 가능하도록 하는 틀을 제공해주는 것입니다.

▶ 라이브러리는 만들어진 기능을 필요한 곳에서 쉽게 사용할 수 있도록 함수나 클래스의 형태로 제공하는 것입니다.

프레임워크는 라이브러리와 유사한 것처럼 보이지만 라이브러리는 단순히 코드 재사용에 가까운데, 프레임워크는 전반적인 개발 틀을 잡아준다는 면에서 차이가 있습니다.

▶ API는 Application Programming Interface의 약자로 만들어진 기능을 애플리케이션에서 편리하게 사용할 수 있도록 만든 인터페이스② 입니다.

▶ SDK는 Software Development Kit의 약자로 프로그램을 만들 때 쓸 수 있는 개발 도구의 집합을 의미합니다.

첫 단계부터 하나하나 개발하고 쌓아가야 할 때 가늠이 되지 않았던 소요 시간이 이 도구들의 도움으로 단 몇 분으로 줄어들게 됐습니다.

또한, 플랫폼별, 용도별 다양한 기능들을 제공하고 있기 때문에 게임·웹·앱 등 플랫폼 제한 없이 개발할 수 있습니다.

지금까지 코딩, 프로그래밍 언어, 프레임워크, 라이브러리, API, SDK의 개념을 간략히 알아보았습니다. 다음 시간에는 코딩 공부 순서에 대해서 알아보겠습니다.

① 정보통신 기술(ICT)의 융합으로 이루어지는 차세대 산업혁명

② 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점

태그:

카테고리:

업데이트: