컴파일러와 인터프리터
01. 다양한 어플리케이션
프로그램의 종류
1. 애플리케이션의 종류
: 실제 사용자, 즉 소비자가 직접 사용하는 프로그램
- 보통 앱이나 어플이라고 부름.
- 스마트폰에만 있는 것이 아니라 프로그램들도 모두 애플리케이션에 포함됨.
- 가장 마지막 단계의 실 사용자를 엔드유저(End User)라고 하기도 함.
예 ) 컴퓨터에서 실행하는 애플리케이션 = 프로그램
* Tip : 시대에 따라서 사용되는 애플리케이션은 계속 변화한다.
예 ) 휴대폰에서 실행하는 애플리케이션 = 앱(어플)
예 ) 휴대폰이나 컴퓨터 둘 다에 있는 애플리케이션 : 게임, 영상, 브라우저, 메신저 등
예 ) 실생활 속 애플리케이션 = 에어컨, 선풍기, TV, 블루투스 스피커, 세탁기 등 (리모컨이나 버튼으로 동작)
예 ) 그 외 : 계산기, 키오스크 등
03. 애플리케이션을 만드는 프로그램
HOW TO 프로그래밍 코드 -> 실행할 수 있는 애플리케이션
: 어떠한 소프트웨어가 프로그래밍 코드를 실행할 수 있는 애플리케이션으로 바꾸어주기 때문이다.
소프트웨어의 종류
1. 컴파일러
2. 인터프리터
04. 프로그래밍 언어의 번역기, 컴파일러
컴퓨터가 이해하는 언어는 머신코드(기계어) 뿐이다.
사람이 이해할 수 있는 고수준 프로그래밍 언어를 컴퓨터가 실행할 수 있는 기계어로 번역해야 한다.
컴파일러(Compiler)
: 한 언어의 코드를 타 언어의 코드로 바꾸어주는 것
즉, 프로그래밍 언어의 번역기 역할을 한다.
컴파일러의 제작과정은 복잡하다.
=> 이미 많이 만들어 두어 사용하기만 하면 된다.
컴파일러의 단점 : 빠르게 개발할 수 없다.
Why ?
머신코드를 사람이 이해할 수 없다. (머신코드 일부 수정 불가)=> 따라서, 사람이 작성한 코드를 수정하고 컴파일러를 거쳐 머신코드로 변경시켜줘야 한다.
05. 실시간 코드 실행기, 인터프리터
컴파일러의 어려움을 극복하기 위한 방식 = 인터프리터 (Interpreter)
컴파일러 : 프로그램 전체를 한 번에 번역한 후 완성된 컴퓨터 언어로 만들어주는 역할 -> 코드 번역기 역할
인터프리터 : 한 줄씩 즉흥적으로 실행해 주는 프로그램 -> 코드 실행기 역할
인터프리터의 장점 : 빠르게 개발할 수 있고 프로그램의 용량이 더 작다.
인터프리터의 단점 : 실행속도가 더 떨어지게 되기도 하고 코드 유출의 위험성이 있다.
Why ? 사용자의 컴퓨터에서 코드를 기계어로 바꾸는 번역과정을 실시간으로 거치게 된다.
장점 | 단점 | |
컴파일러 (비교적 저수준 언어) |
빠른 실행 속도 높은 보안 |
낮은 개발편의성 -> 수정 후 컴파일 과정이 꼭 필요함. 큰 파일 용량 -> 프로그램의 실행 파일 전체 전송 필요. |
인터프리터 (비교적 고수준 언어) |
높은 개발편의성 -> 코드를 수정하고 즉시 실행할 수 있음. 작은 파일 용량 -> 프로그램의 코드만 전송하면 실행 가능. |
느린 실행 속도 낮은 보안 -> 코드 유출가능성 높음. |
'Daily 일상 기록 > 인강 기록' 카테고리의 다른 글
[인프런Inflean]실전! 스프링 부트와 JPA활용1 - 웹애플리케이션 개발 : 프로젝트 환경설정 (0) | 2021.08.04 |
---|---|
[인프런Inflean]실전! 스프링 부트와 JPA활용1 - 웹애플리케이션 개발 : 강좌 선택 이유 (0) | 2021.08.03 |
컴퓨터 개론 03. 프로그래머의 세계 이해하기 (3) (0) | 2021.07.30 |
컴퓨터 개론 03. 프로그래머의 세계 이해하기 (2) (0) | 2021.07.28 |
컴퓨터 개론 03. 프로그래머의 세계 이해하기 (0) | 2021.07.27 |