소프트웨어에 대한 개념을 스터디했습니다. (OS/MS/AS 관계 정리)
소프트웨어란?
컴퓨터를 동작시키고 어떤 일의 처리 순서와 방법을 지시하는 명령어의 집합인 프로그램과 프로그램 수행에 필요한 절차, 규칙, 관련 문서 등을 총칭합니다.
- 프로그램 : 컴퓨터를 통해 일련의 작업을 처리하기 위한 명령어와 관련된 데이터의 집합
- 자료구조(데이터 스트럭쳐) : 컴퓨터 기억 장치 내에 자료의 표현, 처리, 저장 방법 등을 총칭하는 것으로 데이터 간의 논리적 관계나 처리 알고리즘
- 문서 : 소프트웨어 개발 시 작성하는 사용자 설명서, 소프트웨어 요구 분석서, 평가서, 명세서, 프로젝트 계획서, 검사 계획서 등
특징으로는 상품성이 있으며, 복잡성, 변경 가능성, 복제성, 순응성(변화에 맞춰 변형), 비가시성(보이지 않음)이 있음.
소프트웨어 분류
- 시스템 소프트웨어 "하드웨어를 관리하고, 컴퓨터 자원을 활용하는 소프트웨어"
: 운영체제(OS), 컴파일러, 로더, 디버거
- 응용 소프트웨어 "Application software, 사용자가 원하는 목적에 맞게 만들어진 소프트웨어"
: 엑셀, 파워포인트, 워드, 그래픽 디자인 프로그램 등 (컴퓨터에 깔아서 사용하는 것)
- 미들웨어 소프트웨어 "시스템 소프트웨어와 응용 소프트웨어를 연결해주는 중간 단계의 소프트웨어"
: 데이터 베이스 관리 시스템, 웹 서버, 애플리케이션 서버, 트랜잭션 처리 모니터
미들웨어가 이해가 되지 않아 조금 더 공부
미들웨어란?
운영체제와 그곳에서 실행되는 응용 프로그램(app software) 사이에 존재, 분산 컴퓨팅 환경에서 컴퓨터와 컴퓨터간의 연결을 안전하고 용이하게 해주는 전반적 관리를 도와주는 소프트웨어.
응용 소프트웨어가 운영체제로부터 제공받은 서비스 이외에 추가적으로 이용 할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어
(서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등 연결, 응용프로그램과 그 프로그램이 운영되는 환경 간 통신이 원만하세 되도록 하는 소프트웨어. "특정 정보 시스템 환경에서 작동할 수 있도록 지원 해주는 역할")
식당을 운영하는 상황을 생각해보자!
OS (운영체제) = 주방(조리 환경)
→ 식당에서 모든 요리가 만들어지는 핵심 환경
→ 조리 기구(하드웨어)와 조리 과정(소프트웨어)을 관리
→ 예: 가스레인지, 냉장고, 조리대
MS (미들웨어 시스템) = 종업원 (요리 전달 역할)
→ 주방과 손님(고객) 사이에서 중간 역할을 함
→ 주방에서 요리를 받아와서 손님에게 전달하고, 주문을 주방에 전달
→ 예: 웨이터, POS 시스템(주문 관리 시스템)
AS (응용 소프트웨어) = 메뉴(요리)
→ 손님이 직접 접하는 음식(최종 서비스)
→ 주방에서 만든 요리를 미들웨어(웨이터)를 통해 제공받음
→ 예: 스테이크, 파스타, 커피
� 식당 운영을 IT 시스템에 대입하면?
✔ OS = Windows, Linux (서버 운영체제)
✔ MS(미들웨어) = 웹 서버, API 서버, 데이터베이스 커넥터
✔ AS(응용 소프트웨어) = 사용자가 이용하는 웹사이트, 모바일 앱
유튜브 같은 동영상 스트리밍 서비스가 어떻게 작동하는지 보자.
OS (운영체제) 유튜브 서버가 동작하는 환경 예: Google의 Linux 서버, Android OS, iOS
MS (미들웨어 시스템) 사용자가 동영상을 재생할 때, 동영상 데이터를 가져오는 역할 CDN(Content Delivery Network), API 서버, DBMS, 캐시 시스템 등이 포함됨 예: 유튜브 API, 스트리밍 서버, MySQL, Redis
AS (응용 소프트웨어) 사용자가 직접 이용하는 소프트웨어 유튜브 앱(모바일, 웹), 유튜브 웹사이트 예: YouTube 앱, YouTube 웹사이트
� 유튜브 서비스 흐름
✔ 사용자가 유튜브 앱(AS)을 실행하면
✔ 미들웨어 시스템(MS)이 데이터베이스에서 동영상 URL을 가져오고
✔ OS가 동작하는 서버에서 동영상을 스트리밍하는 방식
*분산 컴퓨팅 : 단일 컴퓨터 및 프로세서가 아닌 여러 컴퓨터 또는 서버의 네트워크를 통해 컴퓨팅 작업을 처리
*웹 브라우저 : (크롬, 엣지, 파이어폭스, 사파리, 웨일) 웹상에 존재하는 페이지들의 HTML언어를 해석해서 사용자의 컴퓨터 화면에 출력해주는 프로그램 "인터넷 웹페이지를 볼 수 있게 해 준다."
OS (운영체제) 쿠팡의 서버가 운영되는 환경 예: AWS의 Linux 서버, 쿠팡 앱이 실행되는 Android/iOS
MS (미들웨어 시스템) 웹 서버, API 서버, 결제 시스템, 데이터베이스 관리 예: Django API, MySQL, Redis(캐싱), 결제 게이트웨이
AS (응용 소프트웨어) 사용자가 직접 이용하는 쿠팡 앱이나 웹사이트 예: 쿠팡 앱, 쿠팡 웹사이트
� 쿠팡 서비스 흐름
✔ 사용자가 쿠팡 앱(AS)에서 상품을 주문하면
✔ 미들웨어(MS)가 주문 정보를 데이터베이스에서 관리하고 결제 시스템과 연동
✔ OS가 동작하는 서버에서 최종적으로 주문을 처리