⚠️ 공부한 내용을 정리하는 공간입니다. 설명이 부족하거나 옳바르지 못한 부분이 있을 수 있습니다. 옳바르지 못한 내용을 발견하셨다면 댓글로 알려주시길 부탁드립니다. 수정하도록 하겠습니다.
< 목차 >
1. 운영체제 개요
- 운영체제가 만들어진 배경
- 이식성과 상호연동성
지금까지 우리는 Instruction을 실행했다. 어떻게 실행을 했는가? exe를 loader가 load 해서 memory에 카피하면 CPU가 memory에서 Instruction 읽고 쓰며 Instruction을 실행했다. 그런데 과거에 운영체제가 없었을 당시에 exe가 실행될 때 하드웨어가 바뀌면 혹은 똑같은 exe 파일을 다른 하드웨어에서 실행하면 exe를 인식할 수 없는 문제가 발생했다. 그래서 똑같은 exe 파일을 다른 하드웨어에서는 다르게 번역해주는 프로그램을 개발했는데 그 프로그램을 운영체제(O/S)라고 한다. 즉, 운영체제는 하드웨어가 다른 부분을 exe가 신경을 쓰지 않아도 가능토록 했다.
그러나 CPU 혹은 O/S가 달라지면 다시 exe 파일이 작동하지 않은 문제가 발생한다. Windows에서 돌아가는 프로그램이 Mac에서는 돌아가지 않는 것이 그 예이다. 똑같은 프로그램임에도 운영체제에 따라 다르게 exe를 만들어야 하는 것이 개발자들에게 번거로운 일이었다. 그래서 다시 이 exe를 운영체제에 따라 다르게 번역해주는 프로그램이 개발됐다. 이를 Virtual Machine이라고 한다. 이제 exe는 하드웨어가 다르든, 운영체제가 다르든 상관할 필요가 없다.
Application Program 관점에서 이식성(portability)은 똑같은 코드가 다른 환경에서도 실행되는지를 말한다. A에서 돌아가는 프로그램이 B에서도 돌아가면 이를 ‘이식성’이 있다고 한다. exe는 다양한 이식성을 갖추기 어려운데 이를 Virtual Machine이 가능케 한다. Virtual Machine은 Instruction Set을 통일하여 어떤 운영체제건 상관없이 이식성을 가진다. 그렇다면 Data 관점에서 어떻게 data 이식성을 확보하는가? Web을 통해 이식성을 확보한다. Web은 data를 HTML로 통일하여 어디서든 언제든 어떤 데이터든 표준화된 포맷을 보여준다. 이처럼 data 관점에서는 Web을 통해 data 이식성을 확보할 수 있다.
상호연동성(interoperability)은 “[1] 같은 기종 또는 다른 기종의 기기끼리 상호 간에 통신할 수 있고, 정보 교환이나 일련의 처리를 정확하게 실행할 수 있는 것을 뜻한다.” 어떻게 상호연동성을 확보하는가? 표준화된 형태의 미들웨어(Middleware)를 통해 확보할 수 있다. 여기서 미들웨어란 무엇일까?
“[2] 미들웨어는 공통 서비스 및 기능을 애플리케이션에 제공하는 소프트웨어로 애플리케이션을 보다 효율적으로 구축할 수 있도록 지원하며 애플리케이션, 데이터 및 사용자 사이를 연결하는 요소처럼 작동한다.” “[3] 미들웨어는 운영체제와 해당 운영체제에서 실행되는 응용프로그램 사이에 존재하는 소프트웨어이다. 미들웨어는 분산 응용프로그램의 통신 및 데이터 관리를 가능하게 한다. 데이터와 데이터베이스가 "파이프" 사이를 쉽게 통과할 수 있도록 두 가지 응용프로그램을 함께 연결하기 때문에 배관이라고도 한다. 일반적인 미들웨어 예로는 데이터베이스 미들웨어, 애플리케이션 서버 미들웨어, 메시지 지향 미들웨어, 웹 미들웨어 및 트랜잭션 처리 모니터가 있다. 각 프로그램은 일반적으로 SOAP(Simple Object Access Protocol), 웹 서비스, REST(Representational State Transfer) 및 JSON(JavaScript Object Notation)과 같은 메시징 프레임워크를 사용하여 서로 다른 응용프로그램이 통신할 수 있도록 메시지 서비스를 제공한다.”
이처럼 미들웨어는 프로그램을 연결하여 다른 환경에서도 정보 교환이나 어떤 일을 실행할 수 있도록 도와주는 프로그램으로 미들웨어의 종류는 정말 다양한데 그중에서 가장 많이 사용되는 것은 Spring이다. 서버는 빠른 통신을 위해 미들웨어를 사용하고 User Interface는 Web을 사용한다.
< 참조 >
[1] 정보통신용어사전, 한국정보통신기술협회 [Website],
검색경로: https://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=046653-1
[2] 미들웨어(Middleware): 개념, 종류, 비교, 구성 요소, 툴, 장점 [Website],
검색경로: https://www.redhat.com/ko/topics/middleware/what-is-middleware
[3] 미들웨어란? [Website],
검색경로: https://azure.microsoft.com/ko-kr/overview/what-is-middleware/