
프로그래밍을 처음 학습할 때 JavaScript와 같은 스크립트 언어부터 배우는 경우가 많다.
하지만 이러한 언어들은 개발자가 사용하기 편리하도록 많은 기능이 추상화되어 있기 때문에,
프로그래밍 언어가 실제로 어떻게 동작하는지 이해하기 어려울 수 있다.
프로그래밍 기본 원리를 이해하기 위해서는 보다 근본적인 구조를 함께 살펴볼 필요가 있다.
대부분의 프로그래밍 언어는 서로 다른 문법을 가지고 있지만,
프로그램이 실행되는 방식 자체는 공통적인 구조를 가지고 있다.
컴퓨터는 기본적으로 0과 1로 이루어진 이진수만 이해할 수 있다.
이처럼 컴퓨터가 직접 이해할 수 있는 언어를 기계어(machine language) 라고 한다.
사람이 0과 1로 이루어진 코드를 직접 작성하는 것은 매우 어렵기 때문에,
개발자는 사람이 이해하기 쉬운 형태의 프로그래밍 언어를 사용한다.
예를 들어 JavaScript, C, Python과 같은 언어들이 있다.
이러한 프로그래밍 언어는 기계어가 아니기 때문에 컴퓨터가 직접 실행할 수 없기 때문에
컴퓨터가 이해할 수 있는 형태로 변환 과정이 필요하다.
이 변환 과정은 언어에 따라 다음 두 가지 방식으로 이루어지며,
방식에 따라 프로그래밍 언어는 크게 두 가지로 나뉜다.
최근 프론트엔드 개발에서는 TypeScript가 널리 사용되고 있다.
TypeScript는 JavaScript에 정적 타입 시스템을 추가한 확장 언어이다.
코드를 작성하는 단계에서 타입을 명확하게 지정할 수 있기 때문에,
오류를 미리 발견하고 코드의 유지보수성을 높일 수 있다.
브라우저나 Node.js는 TypeScript 코드를 직접 실행할 수 없기 때문에
TypeScript 실행 전 컴파일 과정을 거쳐 JavaScript 코드로 변환한다.
컴퓨터 프로그래밍이란 개발자가 컴퓨터에게 수행할 작업을 지시하는 과정을 의미한다.
개발자는 특정 문제를 해결하기 위해 프로그램을 설계하고, 그 설계를 바탕으로 코드를 작성하여 소프트웨어를 만든다.
일반적으로 소프트웨어는 다음과 같은 단계를 거쳐 만들어진다.
구상
무엇을 만들 것인지에 대한 아이디어와 문제 해결 방향을 정의하는 단계이다.
설계
구상된 아이디어를 바탕으로 프로그램의 구조와 동작 방식을 문서나 구조로 정리하는 단계이다.
구현
설계된 내용을 실제 코드로 작성하여 프로그램을 만드는 단계이다.