OS
응용프로그램이 실행되는 과정에서 하드웨어를 제어하여
응용프로그램을 실행시키고 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어
- 프로세스 관리 : 프로세스를 생성하고 실행을 제어, 관리하는 기능
- 메인 메모리 관리 : 프로세스가 실행될 수 있도록 메인 메모리 공간을 할당하고 회수
- 파일 관리 : 파일을 보조기억장치에 저장하고 파일 시스템을 운영하는 기능
- 입출력 관리 : 컴퓨터 시스템에서의 입력과 출력을 관리하는 기능
----------
Windows의 장단점
장점
- 사용자에게 가장 최적화 되어있는 OS
- 명령의 입력이 아닌 클릭으로 여러 기능들 수행 가능
- Windows의 프로그램의 일관성으로 인한 사용성의 증대
단점
- 유료 사용
- 사용자가 변경하여 이용 불가능
- 버그, 에러가 발생해도 개발자의 개발을 기다려야 함
- 개발자를 위한 환경 X
----------
Unix 장단점
장점
- 현존하는 운영체제중 가장 이식성이 높아 여러 분야에 사용
- 오랜 발전 기간을 바탕으로 안전성 확보
- 위협으로부터 대응하기 위해 업계 표준의 다양한 보안 기능 탑재
단점
- 하드웨어 호환성이 Windows에 비해 낮음
- 멀티미디어를 사용하기 어려움
----------
Linux 장단점
장점
- 오픈소스이므로 사용자가 원하는대로 수정해 이용할 수 있음
- 버그나 에러사항이 발생했을 때 사용자가 그 자리에서 개선할 수 있음
단점
- 배포될 때 커널과 소스들이 잘 정리되어 있지 않음
- 오픈소스라서 실시간으로 처리해주는 것이 미약하고 보안에 취약함
----------
모바일 OS
- 모바일 OS는 iOS 이전과 이후로 크게 나눠서 볼 수 있다.
- 애플이 나오기 전 블랙베리, 윈도우, 심비안 입장에선 iOS와 안드로이드가 후발주자이고
iOS가 멀티 터치 UI와 비교적 낮은 가격으로 더 많은 사용자들에게 쉽게 접근했다. - 애플과 아이폰을 기점으로 멀티터치 스마트폰과 태블릿의 대중화 시작되었다.
- 더 후발 주자인 안드로이드가 오픈 소스를 무기로 애플을 제외한 다른 하드웨어 회사를 공략해 성공했다.
----------
iOS
- 애플사가 만든 제품에만 탑재해 타회사의 제품은 iOS를 사용할 수 없다. (폐쇄형 OS)
- 보안성이 강하다 -> iOS에선 앱스토어를 통해서만 어플 다운 받을 수 있음
- 아름다운 인터페이스 -> 직관적인 인터페이스를 설계해 사용방법이 간단
- iCloud -> 다른 클라우드와 달리 모든 종류의 파일이 모든 기기에서 함께 공유 가능 (애플사만)
----------
안드로이드
개방성
- 벤더에 따라 본인들의 특색에 맞는 프로그램과 기기를 만들 수 있음
- 안드로이드 개발자들 역시 API를 사용하여 손쉽게 어플을 만들 수 있음
- 등록비 X, 라이센스 비용 X
개발 최적화
- Webkit 엔진을 기반으로 통합 브라우저 제공
- 다양한 서비스와 연계 가능
----------
모바일 앱
- 모바일 디바이스에 애플리케이션을 설치해 사용하는 프로그램
- 사용자와의 밀착성이 높고, 빠르며, 개인에 특화된 서비스 이용 가능
- 개발 방식 및 구성에 따라 네이티브 앱, 웹앱, 하이브리드 앱으로 나뉨
----------
네이티브 앱
- 각 모바일 운영체제의 공급자, 안드로이드의 구글, iOS의 애플이 해당 OS에서 구동되는 앱 개발에 최적화된 프레임워크를 제공하는데, 이 프레임워크를 사용해 개발한 앱
- 안드로이드는 개발 도구로 안드로이드 스튜디오, 개발 언어로 자바 or 코틀린 사용
- iOS는 맥OS 환경에서만 개발이 가능하며 개발 도구로 XCode, 개발언어로 Swift or Objective-C를 사용
장점
- 운영체제 제공자가 제공하는 프레임워크를 사용하기 때문에 다른 방식보다 빠름
- 기기의 자원을 최대한 활용할 수 있어서 서비스하려는 내용을 사용자에게 가장 빠르고 풍부하게 제공할 수 있음
단점
- OS 및 앱 개발 프레임워크가 업그레이드 되는 과정에 기존에 사용하던 코드를 사용할 수 없는 경우 발생
- 사용자가 다양한 버전의 운영체제를 사용하기 때문에 시간이 흐를 수록 버전 관리가 부담
----------
웹앱
- 웹 기술을 이용해 만든 앱
- 앱의 화면을 나타내는 View를 모바일용 웹으로 만들어 다양한 기종에 적용 가능
- 요즘은 네이티브 앱처럼 알림도 보내고 오프라인에서도 동작하는 프로그레시브 앱도 많이 사용
- 서버에서 모든 데이터를 가져와 보여주는 방싱기기 때문에 속도가 느릴 수 있음
장점
- 다양한 기종과 해상도에 대응해 빠르게 개발 가능
- 모바일웹과 마찬가지로, 개발 및 유지보수 비용이 적게 듬
단점
- 기기 자원을 제한적으로만 사용할 수 있음
----------
하이브리드 앱
- 네이티브앱과 웹앱을 반반 섞어놓은 형태
- 웹 기술로 앱 화면을 만든 후 네이티브 기술로 감싸 앱 형태를 만듬
- 네이티브앱과 웹앱의 장점을 가져와 단점을 보안한 형태이기 때문에, 많은 서비스 사업자가 이 방식을 사용
- 다만 네이티브 성능에 미치지 못하며, UI도 별도로 만들어야 하므로 네이티브의 느낌이 들지 않음
장점
- 웹 기술을 사용하여 빠르게 개발하면서도 네이티브의 기술을 대부분 사용 가능
단점
- 네이티브 앱에 비해 조금 느린 속도를 가짐
- 애니메이션 사용에도 제약이 있음
- 스마트폰의 성능을 충분히 활용할 수 없음
'플러터' 카테고리의 다른 글
[Flutter] Native API 활용에 관해... (0) | 2021.11.12 |
---|---|
[Flutter] Dart 기본문법에 관해... (0) | 2021.11.09 |