프로그래밍 언어 & 운영체제(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에서 동작하는 어플리케이션 등을 개발하는 개발자
'IT도서 > 비전공자를 위한 이해할 수 있는 IT지식' 카테고리의 다른 글
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(5) : 애플리케이션 (0) | 2021.09.20 |
---|---|
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(4_1) : 번외) 개발자들의 대화 (0) | 2021.09.20 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(4) : API와 JSON (0) | 2021.09.19 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(3) : 네트워크, 서버, 클라이언트 (0) | 2021.09.14 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(1) : 오리엔테이션 (0) | 2021.09.14 |
댓글