컴파일러와 인터프리터
애플리케이션: 사용자가 직접 사용하는 프로그램
컴퓨터,휴대폰에서 실행하는 애플리케이션의 갭이 줄어들고 있다.(= 사용하는 애플리케이션이 같아지고 있다.)
애플리케이션은 프로그래밍 코드에 의해서 실행되는데 어던 소프트웨어가 프로그래밍코드를 애플리케이션으로 바꿔주기 때문에 가능할까?
:: 컴파일러 / 인터프리터
프로그래밍 언어의 번역기, 컴파일러
한 언어의 코드를 다른 언어의 코드로 바꿔주는 것을 컴파일러 라고 부른다.
컴파일러의 단점은 머신코드를 이해하기 어렵다는 것입니다. 그래서 코드를 일부 작성 후 실행 하여야 하고 이는, 빠르게 개발하기 어렵습니다.
컴파일러의 단점(컴파일의 과정)을 보완하기 위해서 인터프리터가 만들어 졌습니다.인터프리터는 코드 즉시 실행기입니다.
컴파일러는 모든것을 해석하고 코드를받아 실행하도록 하지만, 인터프리터는 한줄 한줄 해석하면서 컴퓨터에 전달해 실행한다.
운영 체제 개요
애플리케이션을 도와주는 프로그램, 운영체제
OS(Operating System) // 윈도우10, MacOS, Linux, Android, iOS
왜 모든 컴퓨터에는 운영체제가 필요할까?
운영체제의 역할
- 입력과 출력 관리
: OS는 입출력장치와 애플리케이션을 연결해준다. - 저장과 불러오기
: 무엇인가를 저장하고 불러오는 저장장치가 있다.
: 휘발성 / 비휘발성 장치가 있다.
: 컴퓨터가 켜져 있는 동안에만 보관 (RAM) / 컴퓨터가 꺼져도 저장 (HARD DISC)
: 각 상황과 목적에 맞게 '저장과 불러오기'를 OS가 수행한다. - 여러 프로그램 동시에 빠르게 실행하기
: OS는 여러 프로그램들이 동시에 실행되는 것(멀티태스킹)을 관리하여 준다. 가령, 음악을 들으면서 게임을하고 영화를 다운로드받고..
운영체제의 종류
- 데스크탑/랩톱 : Windows, MacOS, Linux
- 모바일 : Android, iOS
- 서버 : 컴퓨터, Google Drive, Server(Ubuntu, Unix, Linux, .. )
- 임베디드 : 실생활 및 다방면으로 활용됨
운영체제의 발전 역사
UNIX(1970년 출발: 시초) -> UNIX표방 OS 대거 생성 -> POSIX(공식UNIX마크) 생성 -> ... -> UNIX-like => GNU/Linux 생성
Linux -> 최다인원 프로젝트에 참여한 OS, 누구나 사용 가능하고, 누구나 변형 가능하다.(오픈소스)
네이티브 애플리케이션과 웹 애플리케이션
플랫폼의 파편화
플랫폼: 프로그램이 실행되는 하드웨어, 소프트웨어 환경을 의미한다. 각 플랫폼에 맞게 프로그램을 만들어야 합니다.
CPU 종류가 다르면, 실행되지 않음을 '플랫폼 의존성' 이라 말합니다.
애플리케이션의 경우, 운영체제 및 하드웨어를 모두 고려해야하기 때문에 작업하기 어렵다. 그래서 플랫폼 의존성에 의해 특정 플랫폼을 포기하는 경우가 많다.
이를 '플랫폼 파편화'라고 지칭하기도 합니다.
표준의 필요성
플랫폼의 파편화를 해결하기 위해서 세계는 "표준"을 설정했습니다.
("이런식으로 프로그래밍 코드를 만들게, 이렇게 사용할 수 있도록 만들게~")
크로스플랫폼
- 가상머신
Java가 가상머신 JVM을통해서 소프트웨어 규격을정해서 프로그램을 설계하는 예시를 들 수 있습니다. - 웹
웹 개발자는 웹 브랑우저에 맞는 규격에 맞춰 프로그램을 설계합니다.사용자 환경에 맞게, 반응형으로 레이아웃을 설계한다.(반응형 웹 디자인)
단, 웹의 단점은 브라우저 호환성문제가 있습니다.
:: 크로스플랫폼은 파편화의 문제를 해결하기 위해 나온 개념으로, 하나의 프로그램만으로 여러 플랫폼에서 실행 할 수 있는 것을 의미합니다.
다양한 플랫폼 위에 소프트웨어로 만든 또 하나의 컴퓨터를 실행시켜서 다양한 플랫폼을 마치 하나의 컴퓨터처럼 만드는 것입니다.
네이티브 애플리케이션 & 웹 애플리케이션
웹을 활용해 애플리케이션처럼 활용하는 것을 웹 애플리케이션이라 지칭합니다.
그리고 웹 앱과 구분하기 위해 앱에서 사용하는 앱플리케이션을 네이티브 애플리케이션이라고 지칭합니다.
웹을 활용하는 여러가지 방법
웹의 기술이 발전하고 활용가능한 범위가 많아짐에 따라 SPA, Hybrid Web App[정해진 특정 공간만 바꿔서 렌더링해준다(광고)],
PWA(Progressive Web App)들이 등장하여서 많은 서비스들이 생겨나고 있습니다.
'CodeIt! > 컴퓨터개론' 카테고리의 다른 글
프로그래머 세계 이해하기 (0) | 2023.03.09 |
---|---|
프로그래밍 언어 이해하기 (0) | 2023.03.09 |
프로그래밍 오버뷰 (0) | 2023.03.08 |