회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
> 이 글은 'What is “Coding”?'을 각색하여 작성되었습니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
코딩은 배우기 복잡해서 어렵기는 하지만, 거의 모든 전자기기가 동작하는 데 있어서 반드시 필요한 것입니다. 코딩은 다양한 프로그래밍 언어로 작성될 수 있는데, 프로그래밍 언어는 컴퓨터나 기계가 다양한 동작을 수행하는 데 필요한 지시사항을 알려주기 위해 만들어진 것입니다. 코딩을 통해서 모바일 어플리케이션이나 운영체제, 그리고 다양한 프로그램들도 만들 수 있습니다. HTML과 같은 프로그래밍 언어를 이용하면 웹 페이지도 만들 수 있는데, HTML은 웹 브라우저 내에서 문서가 어떻게 표시되어야 하는지를 알려주는 언어입니다.
그 외에도 프로그래머들 사이에서 많이 사용되는 코딩 언어들로는 PHP, 자바스크립트(JavaScript), 자바(Java), C++, 루비(Ruby), 파이썬(Python) 등이 있습니다. HTML과 자바스크립트는 프론트엔드(front-end) 개발에서 주로 사용됩니다. 이런 언어들은 정적인 HTML 구성요소들을 상호작용 지도나 콘텐츠의 즉시 업데이트와 같은 복잡한 기능들로 바꾸는데 도움을 줍니다. 루비나 C++과 같은 언어들은 좀 더 일반적인 용도로 사용되며, 수많은 어플리케이션과 프로그램의 백엔드(back-end) 개발에서 이용될 수 있습니다.
모든 컴퓨터에는 기계어(machine code)라고 하는 언어를 사용하는데, 기계어는 컴퓨터가 동작을 어떻게 수행해야 하는지를 알려주는 것입니다. 기계어는 일반적으로 문자, 숫자, 기호로 표시됩니다. 이러한 기계어를 배우는 건 물론 가능하기는 하지만, 시간도 오래 걸리고 아주 어렵습니다. 그래서 프로그래밍 언어를 배우는 것이 중요합니다. 프로그래밍 언어를 사용하면 사람이 작성한 코드를 컴퓨터가 이해할 수 있는 기계어로 컴파일(compile) 할 수 있습니다. 그러면 컴퓨터가 기계어를 실행시켜서 우리가 원하는 결과를 제공해주는 것입니다.
사람이 작성한 스크립트(script)를 이렇게 프로그램으로 변환되지 않으면 아무 것도 할 수 없다는 점을 유념해야 합니다. 하지만 스크립트를 컴파일 하면, 사람들이 사용할 수 있는 프로그램으로 만들어지게 됩니다. 기계어는 이런 식으로 프로그램 안에 직접 저장되며, 그러면 사람들이 그 프로그램을 다운로드 해서 모든 기능을 이용할 수 있습니다. 이러한 프로그램들은 어플리케이션일 수도 있고, 웹사이트나 게임이 될 수도 있습니다. 여러분이 만들고 싶어하는 프로그램이 어떤 종류인지는 관계 없이, 코딩이 무엇인지를 이해하는 것이 중요합니다. 그래서 이번 글에서는 좀 더 자세히 살펴보도록 하겠습니다.
이번 글의 주요 내용
코딩은 문자, 숫자, 기호로 구성된 복잡한 언어이며, 거의 모든 전자기기에서 이용될 수 있습니다.
컴퓨터 코드는 컴퓨터와 직접 의사소통을 하기 위해 사용되며, 개발자가 구현한 수많은 작업을 수행할 수 있습니다.
이번 글에서는 가장 많이 사용되는 코딩 테크닉, 코딩을 배우기 전에 이해해야 하는 용어들, 코딩을 배울 수 있는 방법에 대해서도 논의할 것입니다!
컴퓨터 코드는 컴퓨터와 직접 의사소통을 하기 위한 목적으로 사용됩니다. 기계어가 없다면 컴퓨터는 사용자가 일반적으로 컴퓨터를 이용해서 수행하는 작업들을 제대로 실행시킬 수 없습니다. 프로그래머는 컴퓨터나 프로그램이 이해할 수 있는 코드를 작성해야 하고, 그럴 때에만 컴퓨터는 자신이 수행해야 하는 작업이 무엇인지를 알 수 있습니다. 컴퓨터를 비롯한 다양한 전자기기들 안에서, 컴퓨터 코드는 수많은 응용프로그램이나 사람들이 매일 방문하는 웹사이트를 프로그래밍 하는데 사용됩니다.
아마존에서 쇼핑을 하거나 ESPN에서 NFL의 최신 경기결과를 확인할 때에도, 이런 모든 웹사이트들은 코딩을 통해서 프로그램으로 만들어졌기 때문에 작동하는 것입니다. 웹사이트에서 에러나 문제가 발생한다면, 그건 코딩이 잘못된 것인 경우가 많습니다. 잘못된 기호나 문자를 사용하면, 웹사이트의 동작이 곧바로 멈춰버릴 수도 있습니다.
컴퓨터는 수많은 트랜지스터(transistor)로 만들어져 있는데, 트랜지스터는 기본적으로 무언가를 켰다가 끄는 일종의 스위치라고 할 수 있습니다. 0과 1로 구성된 바이너리(이진) 코드가 이 스위치를 켤 것인지 아니면 끌 것인지를 알려줍니다. 예를 들자면 0이면 끄고, 1이면 켜는 것입니다. 컴퓨터는 이렇게 수많은 트랜지스터가 합쳐져서 다양한 기능들을 수행할 수 있습니다. 각각의 트랜지스터는 이렇게 프로그램으로 스위치가 조작되는 아주 간단한 컴퓨터라고 할 수 있습니다.
만약 이런 트랜지스터를 이용해서 컴퓨터에서 복잡한 기능을 구현하고 싶다면, 오랜 시간 동안 많은 작업을 해야 합니다. 그리고 이 과정에서 필요한 것이 바로 프로그래밍 언어입니다. 프로그래밍 언어는 다양한 작업을 수행해야 할 때 필요한 트랜지스터 영역 전체를 한꺼번에 처리함으로써 개발 과정에 속도를 낼 수 있게 해줍니다. 코딩을 하는 사람들은 일반적으로 네트워크 관리자, 데이터베이스 관리자, 웹 개발자들입니다. 만약 여러분의 비즈니스에 필요한 웹사이트를 만들고 싶다면, 그것을 개발하는 데 필요한 코딩 방식과 다양한 프로그래밍 언어에 대해서 잘 알고 있는 사람을 선택해야 합니다.
코드를 소프트웨어나 웹사이트로 변환시키기 위해서 사용할 수 있는 프로그래밍 언어들은 자바스크립트에서부터 C++에 이르기까지 많이 있습니다. 가장 많이 사용하는 프로그래밍 언어들은 다음과 같습니다.
자바스크립트
수많은 웹 페이지에서 복잡한 기능들을 구현할 수 있게 해주는 프로그래밍 언어입니다. 즉, 자바스크립트를 이용하면 정적인 정보를 2D 그래픽이나 상호작용하는 지도 등으로 바꿔서 사용자들의 참여를 좀 더 이끌어낼 수 있습니다.
파이썬
여백을 많이 사용해서 코드의 가독성(readability)을 기르는데 초점을 맞춘 고급 프로그래밍 언어입니다.
루비
생산성과 단순함을 강조한 동적인 프로그래밍 언어입니다.
C++
성능과 유연성이 중요한 시스템 프로그래밍과 디자인에 초점을 맞춘 고급 프로그래밍 언어입니다. 그래서 C++은 비디오 게임, 소프트웨어 인프라, 데스크톱 응용프로그램 등의 개발에 주로 사용됩니다.
PHP
웹 개발에 주로 사용되는 빠르면서도 간소화 된 스크립트 언어입니다.
HTML
웹 브라우저 내에서 문서를 표시하기 위한 프론트엔드 개발에서 주로 사용되는 마크업(markup) 언어입니다. 즉, 페이지 내에서 텍스트, 목록, 인용구, 제목, 단락 등이 어떻게 표시되어야 하는지를 알려주는 언어입니다.
이러한 언어들은 기본적으로 초급 언어와 고급 언어로 나뉘어집니다. C++이나 파이썬 등이 주로 고급 프로그래밍 언어로 분류됩니다. 이러한 고급 언어들은 프로그래머들이 다양한 플랫폼을 쉽게 이해하고 구동할 수 있게 해줍니다.
반면에, 초급 언어들은 기계에게 더욱 친숙한 것이기 때문에 사람이 이해하기 아주 어렵습니다. 그래서 요즘에는 프로그래밍을 단순하게 만들어주기 때문에 개발자들이 고급 언어를 많이 사용하지만, 초급 언어는 거의 사용하지 않습니다.
코딩의 기초를 배우고 싶다면, 먼저 알아두어야 하는 몇 가지의 간단한 용어들이 있습니다. 여러분이 공부할 학습 자료에는 이런 용어들이 자주 등장하기 때문에, 코딩을 배우기 시작하기 전에 이런 용어들을 잘 공부해 놓는 것이 좋습니다. 코딩이나 개발과 관련해서 여러분이 알아두면 좋은 일반적인 용어들은 다음과 같습니다.
클라이언트 – 스마트폰에서부터 데스크톱 컴퓨터에 이르기까지, 웹사이트에 접속하는 다양한 기기.
서버 – 웹사이트의 코드를 저장해 두었다가 클라이언트 기기로 그러한 코드를 전송해주는 컴퓨터.
디자이너 – 웹사이트의 모양과 상호반응을 만드는 전문가. 즉, 웹사이트의 터치, 클릭, 스크롤 등을 만드는 역할을 담당하는 사람.
개발자 – 웹사이트가 기능할 수 있도록 코드 작성을 책임지는 사람.
와이어프레임 – 디자이너가 웹사이트의 레이아웃, 색채 조합, 이미지 등이 어떻게 표시되는 지를 보여주기 위해 그린 일러스트
프론트엔드 – 웹사이트에서 사용자들이 직접 보고 상호작용하는 모든 것을 다루는 영역. 프론트엔드 개발자들은 주로 자바스크립트, HTML, CSS 등을 이용해서 웹사이트를 만든다.
백엔드 – 웹사이트의 이면에서 일어나는 일들을 다루는 영역. 여기에는 사용자 정보나 현재 고객들의 로그 기록을 검색하는 일 등이 있다.
만약 루비나 파이썬과 같은 백엔드 언어로 작업하고 있다면, 이러한 언어를 보다 쉽게 사용할 수 있는 다양한 프레임워크가 있다는 것을 알아야 합니다. 예를 들자면 레일즈(Rails)는 루비를 이용한 웹 페이지 개발을 간단하게 만들어줍니다. 프론트엔드 언어로 개발을 하고 있다면, “함수(function)”라는 용어를 이해하는 것이 중요합니다. 함수는 프로그래밍을 할 때 여러 문장들을 하나로 묶어서 이름을 지어 놓은 것을 말합니다. 이런 함수들은 이후 개발 과정에서도 호출되어 사용될 수 있습니다.
코딩을 배우게 되면 문제를 해결하는 방식에 대한 새로운 시각을 가질 수 있습니다. 이것은 개인의 삶에서도 가치를 매길 수 없을 만큼 중요한 것입니다. 웹사이트의 기능이 제대로 작동하지 않는 경우에도, 코딩의 기본적인 내용들을 이해하고 있다면 스스로 문제를 해결할 수도 있습니다. 물론 웹사이트의 백엔드와 관련한 심각한 문제에 대해서는, 전문 개발자를 고용해서 실수를 줄이는 것이 좋습니다.