TIL 2022/07/01

김병영·2022년 7월 1일
0

TIL

목록 보기
16/19
post-thumbnail

1일1로그 100일완성 IT지식

038 여러 작업을 수행하는 애플리케이션

애플리케이션은 운영체제를 플랫폼으로 삼아 작업을 수행하는 온갖 종류의 프로그램이나 소프트웨어 시스템을 총칭하는 용어이다. 애플리케이션의 크기는 천차만별로 한가지 기능만 수행하는 조그만 독립적인 프로그램부터 워드나 포토샵처럼 여러 가지 복잡한 작업을 수행하는 대형 프로그램까지 다양하다. 그 중 브라우저에 대해 자세히 살펴보자. 브라우저는 규모가 크고 무료이며 간혹 오픈소스로 개발되는 애플리케이션으로, 어떤 측면에서는 다른 애플리케이션보다 훨씬 더 복잡하다.

  1. 브라우저는 비동기적 이벤트를 처리해야 한다. 비동기적 이벤트란 일정한 순서를 따르지 않고 발생하는 이벤트를 뜻한다. 예를 들면 브라우저에서 마우스 클릭이나 동영상 재생 등을 시행할 때 그 동작이 끝날 때까지 기다리는 것이 아닌 각각의 이벤트가 비동기적으로 즉각적으로 발생하게 된다.

  2. 브라우저는 정적인 텍스트부터 페이지의 내용을 계속해서 바꾸려고 하는 대화형 프로그램에 이르기까지 많은 종류의 콘텐츠를 지원해야한다.

  3. 브라우저는 수행한 작업의 이력과 함께 북마크, 즐겨찾기 등의 다른 데이터를 유지한다. 또한 로컬 파일 시스템에 접근하기도 한다.

  4. 브라우저는 여러 수준에서 기능을 확장하기 위한 플랫폼을 제공한다. 어도비 플래시 같은 플러그인, 자바스크립트용 가상 머신 같은 확장 기능에 해당한다.

이 모든 점을 보면 어찌보면 브라우저는 운영체제와 비슷하다. 자원 관리, 제어 및 조정, 정보의 저장과 관리, 플랫폼 제공 등 운영체제가 하는 일을 동일하게 수행하는 것처럼 보인다.

소프트웨어의 계층 구조

소프트웨어는 계층으로 구성된다. 가장 밑바닥에는 하드웨어가 있고 그 위에는 커널이라고 하는 엄밀한 의미의 운영체제가 있다. 그 위에는 라이브러리 집합으로, 프로그래머 개개인이 기능을 새로 만들어 낼 필요가 없도록 일반적으로 유용한 서비스를 API를 통해 제공한다.
가끔은 커널, 라이브러리, 애플리케이션 간의 구분이 앞서 이야기했던 것처럼 명확하지 않다. 운영체제와 애플리케이션 사이의 경계는 뚜렷하게 정의되어 있지 않다. 하지만 완벽하진 않더라도 유용한 지침이 씨는데 어떤 애플리케이션이 다른 애플리케이션의 동작에 간섭하지 않도록 하는 데 필요한 것은 무엇이든 운영체제의 역할에 속한다는 것이다.


오늘의 한줄
오늘은 애플리케이션 그 중 브라우저에 대해 자세히 살펴보았다. 
브라우저를 매일 같이 쓰고 있고 그 기능에 대해 알고 있지만 이것이 운영체제와 유사하다는 생각은
해보지 못했는데 책을 읽고 보니 정말 운영체제라고 볼 수 있을 정도로 많은 역할을 하는 것 같다.
그리고 실제 최근 많은 서비스는 브라우저로 제공되는데 점점 운영체제처럼 동작하는 것 같다는 생각이 든다.
profile
--- 생각중 ---

0개의 댓글