기술면접 준비

38-39 여러작업을 수행하는 애플리케이션, 소프트웨어의 계층구조

또롱또 2022. 6. 9. 21:55
728x90

어플리케이션

- 운영체제를 플랫폼 삼아 작업하는 온갖 종류의 프로그램이나 소프트웨어를 말한다.

- 한가지 기능만 있는 계산기 같은 어플리케이션도 있고, 여러가지 복잡한 작업을 수행하는 word나 excel도 있다.

- 복잡한 작업을 수행하는 word나 excel 등은 다른 프로그램보다 훨씬 규모가 크고, 복잡한 알고리즘이 이용된다

 - ex) input창에 값을 입력했을때, 화면에 정보를 바로바로 표시해주는거, 글자에대해 크기, 색상등을 선택할수 있게 하는거 등등

어플리케이션 사진

 

그 중에서 브라우저는 규모가 크고 간혹 오픈소스로 개발되는 어플리케이션이고, 다른 어플리케이션들보다 훨씬 복잡할 수 있다. (크롬, 사파리 등)

 - 일단 정보를 웹 서버에 보내고 받아오는 비동기 처리를 해야한다. 

 - 사용자가 브라우저안에서 갑자기 무슨 행동을 취할지 예측할수 없기때문에, 브라우저는 비동기적 이벤트를 처리해야함.

ex) 사용자가 어떤 페이지를 들어가서 로딩을 기다리다가도, 뒤로가기를 누르면 로딩을 취소시키는 비동기 이벤트 등

 

브라우저는 업로드 다운로드 등을 위해 로컬의 파일시스템이 접근해서 사용자들이 데이터를 올리거나 받을 수 있게도 해준다. 

브라우저는 사용자들의 이런 접근을 용이하게 하기위해, adobe flash나 가상머신 등 애드온 프로그램을 제공한다. 

 

브라우저는 운영체제하고 비슷하다. 

- 자원(data)를 관리하고, 동시에 일어나는 활동을 제어하고, 비동기처리 해주기 등등

그래서 브라우저를 운영체제로 사용하는게 가능해 보였기때문에, 10-20년동안 사용해보려했지만 현실적인 장애물때문에 실패. 지금 현재에서는 구글이 제공해주는 크롬os같은 운영체제가 있다 (클라우딩 컴퓨터 - 나중에 4부에서 설명한데요)

 

소프트웨어의 계층 구조

커널: 운영체제의 핵심적인 기능을 암시하기 위해 있는 계층

커널에서 이제 파일올리기, 가져오기 등등의 작업이 이루어진다 (사용자의 명령에 따른 작업)

운영체제 계층구죠

인터페이스: 프로그래머 개개인이 기능을 새로 만들지 않아도 될정도로 일반적으로 필요한 유용한 서비스를 제공.

ex) 메뉴버튼, 대화상자, 크롬 탭 등등

 

 

항상 소프트웨어의 계층 구조가 이렇게 명확한건 아니다.

소프트웨어 구성요소를 만들고 연결하는 방법에는 많은 경우의 수가 있기 때문. 

ex) 커널은 더 적은 서비스를 제공하고, 일은 인터페이스에서 시킬수도 있고

(인터페이스의 의존도가 올라간다.)

 

728x90