IT도서/비전공자를 위한 이해할 수 있는 IT지식

IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(2) : 프로그래밍 언어 & 운영체제(OS)

Ulegi 2021. 9. 14. 00:58

프로그래밍 언어 & 운영체제(OS)

 

컴파일러란?

- 프로그래밍 언어로 개발자에게 명령을 받아 컴퓨터 언어, 즉 기계어인 0, 1로 변환해 컴퓨터에게 전달하는 역할

 

ex) 개발자JAVA, 파이썬 등의 프로그래밍 언어를 사용해 컴파일러에게 명령을 시키면 컴파일러가 해당 언어의 코드를 0,1의 기계어로 번역하여 컴퓨터에게 전달한다.

 

프로그래밍, 코딩 이란?

- JAVA, 파이썬 등의 프로그래밍 언어를 활용하여 컴파일러에게 명령을 내리는 것 

 

ex) 1+1 계산해줘!

var result = 0;
result = 1+1;
printf("1+1 = ?", result);

// 1+1을 계산하는 명령을 내리는 과정(프로그래밍)

 

IDE (통합개발환경이란?)

- 개발자들이 쉽게 개발을 하기 위한 모든 것들을 제공해주는 환경

 

ex) VSCode, Visual Studio 등등

그림이 코딩이라면 그림을 그리기 위해서는 그림판이 필요하다. 그림판이 IDE인셈

 

프로그래밍 언어

저수준 언어(low level) : 컴퓨터 친화적인 언어

- 컴퓨터가 어떻게 일해야하는지 구체적으로, 꼼꼼하게 작성해야함

- 대신 컴퓨터가 일하기 편함 ==> 낮은 사양에서도 원활한 작동

ex) 가전제품에는 대부분 저수준 언어를 사용

- IPTV : IPTV는 설치비가 비싸면 안되기 때문에 기기 가격을 절감해야함 ==> 기기사양 낮음 ==> 저수준 언어 사용

 

고수준 언어(high level) : 인간 친화적인 언어

- 사람들이 학습하기 쉽고 유지보수도 용이

- 대신 컴퓨터가 더 고민해야 하기 때문에 저수준 언어보다 작동이 느림

 

운영체제(OS)란?

- 우리 대신  CPU, HDD, SSD 등 하드웨어를 관리

- 프로그램 설치, 실행, 메모리 관리 등 우리가 아는 컴퓨터를 기본적으로 작동하게 해주는 소프트웨어

ex) 윈도우, Mac OS, 안드로이드, iOS

 

운영체제마다 사용하는 언어가 다르다!

ex)

- Mac OS 위에 돌아가는 프로그램을 만들기 위해서는 Swift, Objective-C라는 언어를 사용

- 구글의 안드로이드 위에서 돌아가는 프로그램을 만들기 위해서는 JAVA, Kotlin을 사용

 

자바 최신 버전을 설치해야하는 이유!

운영체제가 다른데 매번 다른 언어를 사용해야할까요?

=> NO! Java 는 JVM 이라는 소프트웨어를 각 운영체제 상에 제작 ==> JVM 위에서 Java로 만든 프로그램이 동작할 수 있도록 함 ==> 운영체제마다 다른 언어로 작업을 하지 않아도 괜찮아짐

- 사용자가 자신의 컴퓨터에 JVM을 설치하기만 하면 가능

- 파이썬도 비슷한 방식을 취함

 

대신 위와 같은 방식은 OS 위에 JVM 같은 프로그램을 올리고 그 위에서 프로그램을 돌리는 것 (1개의 프로그램을 돌리기 위해 프로그램 2개를 돌리는 것) 과 같기 때문에 속도가 느리다.

 

모바일 운영체제는?

모바일 운영체제는 iOS, 안드로이드가 양분하고 있기 때문에 프로그래밍 언어 수가 적어 JVM 에 대한 니즈가 적다.

 

우리가 자주 듣던 말들

"C부터 배워봐! 컴퓨터를 이해하는데 좋아"

=> C언어는 다른 언어들보다 저수준 언어이기에 컴퓨터 친화적이므로 컴퓨터에 대한 이해도가 높아질 수 밖에 없다.

 

"자바부터 배워봐! 써먹을 곳이 많아"

 

=> Java는 OS에 독립적일뿐더러 안드로이드에도 사용이 가능하므로 사용범위가 넓다.

 

"파이썬부터 배워봐. 그게 쉬워"

=> 파이썬은 굉장히 인간친화적인 고수준 언어이므로 배우기 쉽고 사용하기 용이하다.

 

OS개발자란??

해당 OS 위에서 돌아가는 소프트웨어를 개발하는 개발자

ex) iOS 개발자 : iOS에서 동작하는 어플리케이션 등을 개발하는 개발자