컴퓨터 프로그램은 소프트웨어(Software)라고 부르죠.
그리고 키보드나 모니터처럼 소프트웨어가 동작하기 위한 물체를 하드웨어라고 불러요.
컴퓨터 하드웨어에는 모니터나 키보드, 마우스, 메모리 장치와 실제 연산을 수행하는 CPU등이 있어요.
실제 컴퓨터 하드웨어는 전기 흐름에 의해 동작하죠.
컴퓨터 프로그램은 컴퓨터 내부 전기의 흐름에 따라 해야 할 일을 정한 논리 집합이예요.
전산(컴퓨터와 프로그램을 다루는 분야)에서는 전기가 흐르는 정도에 따라서 0과 1로 구분하고 있어요.
이러한 이유로 컴퓨터 프로그램은 0과 1로 구성한 논리 집합이며 이진 코드라고 부르고 있죠.
또한 ‘컴퓨터를 동작하게 하는 코드’라는 의미로 기계어 코드라고도 불러요.
컴퓨터 프로그램에는 메모장, 그림판, 게임처럼 사용자가 사용하는 응용 프로그램만 있는 것이 아니예요.
컴퓨터 시스템을 운영하는 프로그램인 운영체제와 하드웨어를 제어하는 디바이스 드라이버 등도 컴퓨터 프로그램이예요.
컴퓨터 프로그램을 만들기 위해서는 컴퓨터가 해야 할 일을 정의하는 도구가 있어야겠죠.
이 때 사용하는 언어를 프로그래밍 언어라고 불러요.
그리고 작성할 프로그램의 종류와 목적에 따라 사용하는 프로그래밍 언어는 다양합니다.
그리고 프로그래밍 언어의 문법을 이용하여 개발하기 쉽게 개발 도구도 제공하고 있어요.
개발 도구에서는 개발자가 코드를 편집하면 이를 컴퓨터가 동작 가능한 이진 파일로 만들어 줘요.
이처럼 프로그래밍 언어 문법으로 작성한 코드를 이진 파일로 만드는 것을 컴파일이라 불러요.
그리고 개발 도구에서는 컴파일한 이진 코드들을 하나의 결과물로 만드는 링킹도 해 줍니다.
이 외에도 개발자가 논리적으로 잘못 작성한 부분을 고칠 수 있게 디버깅 등의 다양한 기능을 제공합니다.
이처럼 컴퓨터 프로그램은 편집(코딩) => 컴파일 => 링킹 => 디버깅 등의 과정을 거쳐 만들어집니다.
이 중에 개발자는 편집과 디버깅 등의 작업을 담당하고 컴파일과 링킹 등은 개발 도구에서 하는 일이예요.