마토의 세상

MATO WORLD

Daily 일상 기록/인강 기록

컴퓨터 개론 04. 소프트웨어 이해하기

jy-agnes-lee 2021. 7. 31. 12:02

컴파일러와 인터프리터

01. 다양한 어플리케이션

프로그램의 종류
1. 애플리케이션의 종류
: 실제 사용자, 즉 소비자가 직접 사용하는 프로그램
- 보통 앱이나 어플이라고 부름.
- 스마트폰에만 있는 것이 아니라 프로그램들도 모두 애플리케이션에 포함됨.
- 가장 마지막 단계의 실 사용자를 엔드유저(End User)라고 하기도 함.
예 ) 컴퓨터에서 실행하는 애플리케이션 = 프로그램
* Tip : 시대에 따라서 사용되는 애플리케이션은 계속 변화한다.
예 ) 휴대폰에서 실행하는 애플리케이션 = 앱(어플)
예 ) 휴대폰이나 컴퓨터 둘 다에 있는 애플리케이션 : 게임, 영상, 브라우저, 메신저 등
예 ) 실생활 속 애플리케이션 = 에어컨, 선풍기, TV, 블루투스 스피커, 세탁기 등 (리모컨이나 버튼으로 동작)
예 ) 그 외 : 계산기, 키오스크 등

03. 애플리케이션을 만드는 프로그램

HOW TO 프로그래밍 코드 -> 실행할 수 있는 애플리케이션

: 어떠한 소프트웨어가 프로그래밍 코드를 실행할 수 있는 애플리케이션으로 바꾸어주기 때문이다.

소프트웨어의 종류

1. 컴파일러

2. 인터프리터

04. 프로그래밍 언어의 번역기, 컴파일러

컴퓨터가 이해하는 언어는 머신코드(기계어) 뿐이다.

사람이 이해할 수 있는 고수준 프로그래밍 언어를 컴퓨터가 실행할 수 있는 기계어로 번역해야 한다.

컴파일러(Compiler)

: 한 언어의 코드를 타 언어의 코드로 바꾸어주는 것

즉, 프로그래밍 언어의 번역기 역할을 한다.

컴파일러의 제작과정은 복잡하다.

=> 이미 많이 만들어 두어 사용하기만 하면 된다.

컴파일러의 단점 빠르게 개발할 수 없다.

Why ?

머신코드를 사람이 이해할 수 없다. (머신코드 일부 수정 불가)=> 따라서, 사람이 작성한 코드를 수정하고 컴파일러를 거쳐 머신코드로 변경시켜줘야 한다.

05. 실시간 코드 실행기, 인터프리터

컴파일러의 어려움을 극복하기 위한 방식 = 인터프리터 (Interpreter)

컴파일러 : 프로그램 전체를 한 번에 번역한 후 완성된 컴퓨터 언어로 만들어주는 역할 -> 코드 번역기 역할

인터프리터 : 한 줄씩 즉흥적으로 실행해 주는 프로그램 -> 코드 실행기 역할

인터프리터의 장점 : 빠르게 개발할 수 있고 프로그램의 용량이 더 작다.

인터프리터의 단점 : 실행속도가 더 떨어지게 되기도 하고 코드 유출의 위험성이 있다.

Why ? 사용자의 컴퓨터에서 코드를 기계어로 바꾸는 번역과정을 실시간으로 거치게 된다.

  장점 단점
컴파일러
(비교적 저수준 언어)
빠른 실행 속도

높은 보안
낮은 개발편의성
-> 수정 후 컴파일 과정이 꼭 필요함.
큰 파일 용량
-> 프로그램의 실행 파일 전체 전송 필요.
인터프리터
(비교적 고수준 언어)
높은 개발편의성
-> 코드를 수정하고 즉시 실행할 수 있음.
작은 파일 용량
-> 프로그램의 코드만 전송하면 실행 가능.
느린 실행 속도

낮은 보안
-> 코드 유출가능성 높음.