프로그램과 프로그래밍
'개발자가 특정 메모리 공간을 활용하여 프로그램를 구동시키는 것을 프로세스이라하며, 이를 개발하는 것을 프로그래밍이라고 한다.'
위의 문장을 하나하나 뜯어서 프로그램과 프로그래밍의 개념, 프로세스에 대해 알아봅시다.
프로그래밍이란?
프로그래밍이란 프로그램을 개발하기 위해 소스코드를 작성하는 과정입니다.
프로그램이란?
그렇다면 프로그램이란 간단히 말해서 운영체제 위에서 돌아가는 것 들을 의미 합니다.
PowerPoint, Excel 등이 프로그램의 한 예라고 볼 수 있습니다.
window, linux, mac등 OS위에서 동작하는 것들은 모두 프로그램이라고 할 수 있습니다.
다시 본론으로 돌아와 프로그래밍이란 위에서 예시를 들었던 프로그램들을 개발하기 위한 과정입니다.
프로그램을 실행하기 위한 개발 과정을 자바를 사용한 예시를 들어 설명 해 보겠습니다.
1. 소스코드를 작성한다.
자바를 사용해 소스코드를 작성하게 되면 .java file이 생성됩니다.
여기서 .java file이란 java의 문법 규칙을 사용해 적은 모든 소스 코드를 의미 합니다.
프로그램을 컴퓨터가 실행 하기 위해서는 컴퓨터의 언어로 해석 하는 과정이 필요한데 이를 '컴파일'이라고 합니다.
2. .java file을 compiler를 통해 컴파일 한다.
소스코드는 프로그래머가 사용하는 언어로 써 있는데 이를 '고급언어'라고 합니다. 소스코드를 컴파일해 컴퓨터가 이해할 수 있는 언어인 '기계어'로 변환하는 과정을 '컴파일'이라고 합니다. 컴파일 하는 과정에서 자바 문법적 오류가 있는지에 대한 검사를 진행합니다.
3. .class file
자바의 경우 .java 파일을 컴파일 할 경우 .class 파일이 생성되고 java에서 JVM(Java Virtual Machine)에서 실행할 수 있습니다.
지금까지 소스코드를 적고 컴파일하는 일련의 과정을 통해 프로그래밍과 프로그램에 대한 개념에 대해 알아 보았습니다.
그럼 조금더 확장해 프로세스는 무엇일까요?
간단히 설명하자면 '실행중인 프로그램'을 프로세스라고 말합니다.
여기서 말하는 '실행' 이란 메모리(RAM)에 프로그램을 로드하는 것입니다.
window, linux, mac등의 OS(운영체제)는 RAM(메모리)을 사용하는데 당연히 그럴것이 PC에서 프로그램을 동작 시키기 위해서는 정보들을 관리할 메모리가 확보되어야하는건 자명한 사실이기 때문입니다.
다시돌아와 프로세스에 대해 설명 하자면
위의 그림의 예시는 카카오톡, 크롬 두가지 프로그램이 실행중 입니다.
두 프로그램 모두 CPU와 메모리를 사용하고 있다고 보여지고 있습니다.
이처럼 실행중인 프로그램들을 '프로세스'라고 합니다.
다시 한번 내용을 정리하자면
1. 프로그래밍이란 특정언어를 사용해서 소스 코드를 작성하는 과정이다.
2. 프로그램이란 운영체제 위에서 동작하는 모든 것들 입니다.
3. 프로세서란 실행중인 프로그램입니다.