어플리케이션
- 운영체제를 플랫폼 삼아 작업하는 온갖 종류의 프로그램이나 소프트웨어를 말한다.
- 한가지 기능만 있는 계산기 같은 어플리케이션도 있고, 여러가지 복잡한 작업을 수행하는 word나 excel도 있다.
- 복잡한 작업을 수행하는 word나 excel 등은 다른 프로그램보다 훨씬 규모가 크고, 복잡한 알고리즘이 이용된다
- ex) input창에 값을 입력했을때, 화면에 정보를 바로바로 표시해주는거, 글자에대해 크기, 색상등을 선택할수 있게 하는거 등등
그 중에서 브라우저는 규모가 크고 간혹 오픈소스로 개발되는 어플리케이션이고, 다른 어플리케이션들보다 훨씬 복잡할 수 있다. (크롬, 사파리 등)
- 일단 정보를 웹 서버에 보내고 받아오는 비동기 처리를 해야한다.
- 사용자가 브라우저안에서 갑자기 무슨 행동을 취할지 예측할수 없기때문에, 브라우저는 비동기적 이벤트를 처리해야함.
ex) 사용자가 어떤 페이지를 들어가서 로딩을 기다리다가도, 뒤로가기를 누르면 로딩을 취소시키는 비동기 이벤트 등
브라우저는 업로드 다운로드 등을 위해 로컬의 파일시스템이 접근해서 사용자들이 데이터를 올리거나 받을 수 있게도 해준다.
브라우저는 사용자들의 이런 접근을 용이하게 하기위해, adobe flash나 가상머신 등 애드온 프로그램을 제공한다.
브라우저는 운영체제하고 비슷하다.
- 자원(data)를 관리하고, 동시에 일어나는 활동을 제어하고, 비동기처리 해주기 등등
그래서 브라우저를 운영체제로 사용하는게 가능해 보였기때문에, 10-20년동안 사용해보려했지만 현실적인 장애물때문에 실패. 지금 현재에서는 구글이 제공해주는 크롬os같은 운영체제가 있다 (클라우딩 컴퓨터 - 나중에 4부에서 설명한데요)
소프트웨어의 계층 구조
커널: 운영체제의 핵심적인 기능을 암시하기 위해 있는 계층
커널에서 이제 파일올리기, 가져오기 등등의 작업이 이루어진다 (사용자의 명령에 따른 작업)
인터페이스: 프로그래머 개개인이 기능을 새로 만들지 않아도 될정도로 일반적으로 필요한 유용한 서비스를 제공.
ex) 메뉴버튼, 대화상자, 크롬 탭 등등
항상 소프트웨어의 계층 구조가 이렇게 명확한건 아니다.
소프트웨어 구성요소를 만들고 연결하는 방법에는 많은 경우의 수가 있기 때문.
ex) 커널은 더 적은 서비스를 제공하고, 일은 인터페이스에서 시킬수도 있고
(인터페이스의 의존도가 올라간다.)
'기술면접 준비' 카테고리의 다른 글
소프트웨어 - 이진검색 / 선택 정렬 vs 퀵 정렬 (0) | 2022.06.02 |
---|---|
소프트웨어 - 알고리즘은 이상, 프로그래밍은 현실 / 다른 프로그램을 처리하기 위한 프로그램 (0) | 2022.06.01 |
하드웨어 09 - 슈퍼컴퓨터와 사물인터넷 (0) | 2022.05.31 |
캐시란? (0) | 2022.05.27 |
하드웨어 - 08 (0) | 2022.05.25 |