[Terminology] WebApp, HybridApp, Responsive App, Platform, Framework...
2023. 2. 26. 16:15ㆍDevelopers 공간 [Shorts]/Software Basic
728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew,
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter
- Module Bundler : React, Webpack, Parcel
B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS
C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight
1. What? (현상)
프론트 및 다양한 개발을 하다가 보면 세가지가 헷갈립니다.
- 웹앱, 하이브리드 앱 등 앱과 웹을 정의하는 용어에 대한 용어
- 웹 디자인 시의 반응형 웹, Interactive 웹 등에 대한 용어
- 소프트웨어 개발에 필요한 플랫폼, 프레임워크 등에 대한 용어
2. Why? (원인)
- 정리해봅니다.
3. How? (해결책)
- 앱, 웹 종류
- 모바일 웹(Mobile Web) : 웹 브라우저로 실행하는 웹 페이지.
- 웹 앱(Web App) : 웹 브라우저로 실행하며, SPA 형태로 앱과 같이 최적화하여 동작하는 웹페이지
- 하이브리드 앱(Hybrid App) : 앱으로 실행하며, 모바일 웹앱을 패키징 한것입니다.
- Webview기반 App : 웹 위주로 구성, 앱은 꼭 필요한 부분만 사용
- Appview 기반 App : 네이티브위주, 일부 컨텐츠만 웹화면 구성 - 네이티브 앱(Native App) : 앱으로 실행하며, 최적화된 네이티브 언어가 존재합니다.
- 웹 디자인
- Responsive(반응형) Web Design : 다양한 기기와 다양한 browser screen size로 인해 변경
(Frontend에서 MediaQuery를 통해 하나의 템플릿으로 대응) - Adaptive(적응형) Web Design : 다양한 기기(스마트폰, PC, 태블릿)에 맞게 해상도 및 레이아웃이 변경
(Backend에서 기기를 detect 해 다양한 템플릿을으로 대응) - Interactive Web Design : Event를 통해 User의 요청에 동적인 결과를 가져다주는 비동기식 구현 방식
- Reactive Programming : 데이터의 흐름을 먼저 정의하면 데이터의 변화 혹은 작업의 종료에 따라 반응하여 진행되는 프로그래밍. 객체 지향의 패러다임. 앞의 내용의 상위 개념.
- Responsive(반응형) Web Design : 다양한 기기와 다양한 browser screen size로 인해 변경
- 개발 도구
- 플랫폼(Platform) : 소프트웨어 개발에서 App이 동작하는 환경을 제공하는 것.
- 안드로이드, 윈도우, ios등의 운영체제를 포함하여 네이버, 야후나 구글 플레이스토어, 애플 앱스토어, 유니티 에셋스토어처럼 수요와 공급이 만날 수 있도록 제공된 공간
- 플랫폼은 OS와 하드웨어를 통칭하는 말 혹은 OS 자체로도 사용되기도 한다. 하지만 명확히는 조금 다릅니다.
** OS : 하드웨어 자원 관리를 맡고 있는 소프트웨어이며, 확장된 기능과 데이터 해석등은 App과 프레임워크가 담당 - ex) Windows, Linux, macOS 등의 OS
- ex) Kubernetes, Docker 등의 오픈소스 플랫폼
- ex) App Store, Google Play 등의 서비스 플랫폼
- 프레임워크(Framework) : 정의된 API를 제공하는 Software Library의 모음
- 그자체로 완벽히 동작할 수 있는 App이라 코딩을 할필요가 없는 경우이며, default로 작업하는 일을 가지고 있고, 이 중에 가능한 것을 재정의 하는 것이 사용자의 역할입니다.
- 플랫폼과 관계는, 사용자가 작성한 코드가 없더라도 동작하는데 문제가 없으며, 환경을 플랫폼과 OS에서 제공받습니다.
- ex) Spring(java), Django(python), Angular.js(Javascript) 등의 웹 프레임워크
- ex) PyTorch, Tensorflow 등의 딥러닝 프레임워크
- SDK(Software Development Kit) : 프로그래머들이 개발할 수 있도록 제공하는 도구.
- 소프트웨어 개발 도구 모음. SDK안에는 개발에 도움이 될 Debugger, API, IDE, 문서, 라이브러리, 코드 샘플 및 기타 유틸리티 등이 있다.
- SDK는 라이브러리, 프레임워크, 툴 등의 상위 개념입니다.
- ex) Android SDK, JDK, IOS SDK, NET Framework SDK, Facebook SDK ...
- 라이브러리(Library) : 여러가지 패키지와 모듈을 기능단위로 모아 놓은 것
- ex) jQuery, OpenCV
- 패키지(Package) : 특정 기능과 관련된 여러 모듈을 폴더단위로 관리하는 것
- 모듈(Module) : 함수, 변수, 클래스 등을 모아 놓은 것
- 플랫폼(Platform) : 소프트웨어 개발에서 App이 동작하는 환경을 제공하는 것.
728x90
반응형
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[CMake] 기초 템플릿 (0) | 2023.03.01 |
---|---|
[ShellScript] 기초 템플릿 (0) | 2023.02.28 |
[Makefile] 기초 템플릿 (0) | 2023.02.16 |
[Git] src refspec BRANCH does not match any 에러 (0) | 2023.02.15 |
[Bash] apt-get 사용시 GPG error(NO_PUBKEY) 일어날 때 (0) | 2023.02.11 |