장점
1. 웹 애플리케이션보다 빠름
2. 애플리케이션이 설치된 기기의 시스템/기기의 리소스에 접근이 용이(GPS 기능이나 카메라)
3. 인터넷 없이 사용 가능
4. 웹 애플리케이션에 비해 안전(모바일의 경우 앱스토어에 승인을 받아야 함)
단점
1. 웹 애플리케이션에 비해 개발비가 더 듬(아이폰과 안드로이드 간의 멀티 플랫폼 개발 등)
2. 빠른 업데이트가 힘듬
3. 앱스토어 에 승인 받기가 힘들고 비용이 발생
장점
1. 브라우저를 통해 실행되기 때문에 설치나 다운로드가 필요 없음
2. 업데이트 등의 유지관리가 쉬움
3. 네이티브 애플리케이션에 비해 만들기가 비교적 간편
4. 애플리케이션 스토어 승인이 필요 없음
단점
1. 인터넷이 없으면 사용이 안 됨
2. 네이티브 애플리케이션에 비해 속도가 느림
3. 애플리케이션 스토어에서 관리되지 않기 때문에 사용자 접근성이 떨어짐
4. 질적으로나 보안상 위험에 노출되기가 쉬움
서비스 오픈 시 고려해야 할 요소
1. 신뢰성
2. 확장성
3. 보안성
4. 견고성
Presentation Layer : 이 계층은 유저와 브라우저 등을 이용해 직접적으로 접촉함, Web Server가 이 영역에 포함되며, 유저 인터페이스 요소들을 포함
Application Layer : Business Layer, Business Logic 혹은 Domain Logic 이라고 불리기도 하는 이 영역은 유저의 요청을 브라우저로부터 받아서 처리함, Application Server가 이 계층에 포함되며 또한, 데이터 접근을 위한 경로를 규격화 하는 등의 과정이 이 계층에서 작성됨
Data access layer : Persistence layer 라고도 불리는 이 계층은 애플리케이선의 데이터 저장소에 접근하여 데이터를 불러 오거나 저장을 담당, Application Layer 는 이 계층과 밀접한 연관을 가지고 있음, 이 단계를 통해 Application Layer 의 로직들은 어느 데이터베이스에 접근해서 데이터를 회수하고 혹은 저장할지를 더 최적화 할 수 있음
Cross-cutting : 이 요소들은 주로 보안, 통신, 운영 관리등을 위한 요소
Third-party integrations : 제 3의 API 서비스를 이용하는 것을 의미
ex) OAuth 2.0을 이용한 소셜 로그인, PG 사를 이용한 결재기능 등
Single Page Application
: 유저의 입력과 요청에 의한 콘텐츠나 정보의 최신화가 전체 페이지를 새로 불러오지 않고 현재 페이지에서(부분 화면) 이루어 짐으로 요청한 응답을 기다리면서 페이지와 상호작용이 가능, 오늘 날 현재 대부분이 이 방식으로 이루어짐.
Microservice architecture
: 작고 가벼운 특정한 한가지 기능에 집중한 웹 애플리케이션을 의미
각 애플리케이션의 기능 요소들은 상호간에 의존적으로 설계되지 않아 개발단계에서도 그리고 개발 완성이후로도 같은 개발 언어를 사용할 필요가 없어 원하는 언어를 사용해 기능 개발에 유연성을 더 갖게 되고. 개발 과정의 전반적인 속도와 생산성이 향상됨
Serverless Architectures
: 개발자가 웹 애플리케이션의 서버와 기타 기반 기능들에 대해 외부 3자인 클라우드 서비스 제공자에게 의탁하는 방식, 이 방식은 개발자가 기본적인 서버나 기반 기능들에 걱정할 필요 없이 특정 기능 개발에 집중 할 수 있게 함
쿠키(Cookie) : 웹 애플리케이션을 사용하는 유저의 정보를 클라이언트에 쿠키에 보관하고, 다음 접속부터는 유저의 정보(쿠키)를 클라이언트가 서버로 보내서 유저를 서버가 식별하게 함, 쿠키에 담긴 내용으로 웹 애플리케이션에 유저가 설정했던 항목들에 대해 저장을 해서 다음에 이어서 같은 방식으로 작동하게 도와줌
세션(Session) : 세션의 경우 서버에 Session-Id 라는 고유 아이디를 할당해서 유저를 식별함. 단순하고 유출이 되면 안되는 정보는 서버에서 관리를 하면서 세션 ID와 매칭해서 저장해 관리함. 주로 사용되는 방법은, 세션정보는 쿠키에서 관리하고, 실제 매칭되는 값들은 서버 측에서 관리하는 것이 일반적