소프트웨어는 시스템 소프트웨어와 어플리케이션 소프트웨어로 나뉠 수 있다.
System SoftWare : H/W 제어에 사용된다
주로 OS와 프린터, 마우스 ,스캐너 등에 사용되는 Device Driver 그리고 임베디드가 이에 속한다.
주요 사용 언어로는 C /C++, 어셈블리가 있다.
Application Software : 주로 사용자가 사용한다.
예를들어 office나 한글 같은 오피스 프로그램, 게임, PuTTY, 의 프로그램, Gmail, Youtube, 네이버지도 같은 서비스도 이에 속한다.
어플리케이션 소프트웨어는 서버접속유무에 따라 나뉠 수 있다.
Standalone Application S/W : 설치형이면서 내 PC인 local에서 단독실행되는 형태이다.
주요 소프트웨어는 포토샵, 알집등이다. 사용 언어로는 C/ C++/ C# 등이 주로 사용된다.
Client / Server S/W : 설치형이면서 원격접속(서버, remote)이 가능한 형태이다.
서버접속을 요청하는 쪽을 Client, 응답하는쪽은 Server라고 한다.
주요소프트웨어로는 카카오톡, 인터넷접속게임 등이 있다.
하지만 운영체제 대신 웹브라우저에서 실행되는 형태도 있다.
바로 웹 어플리케이션으로 웹메일, Youtube 등이 속한다.
그렇다면 웹 애플리케이션 이란 무엇일까
Web Application은 Client와 Server에서 하는 역할이 나뉘어져 있는 편이다.
Server(remote) 에서는 Java, SQL, XML, JSON 등으로 Data를 조작한다.
또한 Client(local)에서 보여질 HTML, CSS, JavaSript를 생성하여 전송한다.
Client(local) 에서는 서버에서 받은 JSON, XML 형식의 data와 HTML, CSS, JavaScipt를 통해 화면을 생성하고 사용자의 입력을 서버로 전송한다.
웹애플리케이션과 모바일 앱
웹애플리케이션이 PC 가 아닌 모바일에서 실행되는 형태도 있다.
둘 다 서버에서 데이터를 주고 받는점은 유사하다.
하지만 모바일 앱의 경우 JSON,XML등의 data만 주고 받고, 화면은 기기 내에서 코드를 통해 생성한다면
웹애플리케이션의 경우 data뿐만아니라 화면 생성에 필요한 코드까지 전송한다.
모바일 앱의 경우 네이티브 앱이라고 하며
iOS의 경우 Swift/ Object-C의 언어로 동작하며 Android의 경우 Java 이나 Kotlin 의 언어로 동작한다.
네이티브 앱의 경우 하드웨어인 스마트폰의 자원을 활용하여 속도가 웹애플리케이션에 비해 빠르다는 장점이 있으나 스마트폰 자원에 따라 성능의 편차가 크다.
웹애플리케이션의 경우 웹앱이라고 하며
웹앱이 모바일에서 동작할때는 운영체제의 언어를 최대한 사용하지 않아 애플리케이션의 성능이 스마트폰 성능에 크게 좌우되지 않는다. 또한 네이티브 앱에 비해 개발 속도가 비교적 빠르다. 개발비용 에서도 iOS와 Android로 나누어서 개발하지않으니 개발 비용도 절감할 수있다.
'TIL' 카테고리의 다른 글
Git 기초 사용법 정리 (4) | 2023.05.24 |
---|---|
JAVA 컴파일 인터프리터 정리 (0) | 2023.05.23 |
[AI] 딥러닝 CNN 모델 3주 13일차 (4) | 2023.05.11 |
[AI] 딥러닝 최적화 알고리즘 3주 12일차 (3) | 2023.05.10 |
[AI] 딥러닝 용어 정리 3주 11일차-1 (4) | 2023.05.09 |