본문 바로가기

달밤에 코딩하기/커뮤니케이션을 위한 IT 지식

#8-애플리케이션과 웹

 

애플리케이션과 웹

앞서 애플리케이션과 웹에 대해 알아봤다. 내용이 헷갈린다면 애플리케이션에 대한 글을 보고 오자.

특징 비교

  애플리케이션
실행 형식 서버에 있는 앱을 다운받아 클라이언트에 설치하는 형식 서버에 있는 원본 HTML/CSS/Javascript의 사본을 클라이언트 화면에 띄워 주는 형식
원본 위치 클라이언트 서버
수정 어려움 쉬움
앱스토어에 수정된 앱을 등록해 심사를 받아야 하고, 사용자가 이를 업데이트하는 과정을 거쳐야 하기 때문에 어려움 서버에 있는 원본을 수정하고, 사용자가 새로고침(페이지 이동, 탭 종료도 새로고침에 포함)만 하면 수정이 가능
네트워크 영향 적게 받음 많이 받음
데이터를 클라이언트 디바이스에 주로 저장하기 때문에 네트워크에 영향을 적게 받음 네트워크가 원활하지 않으면 서버에서 데이터를 다운받을 수 없기 때문에 네트워크의 영향을 많이 받음

애플리케이션과 웹의 연관성

HTML / CSS / javascript는 크롬 / 익스플로러 / 사파리와 같은 브라우저를 통해 확인할 수 있다. 그런데 이 '브라우저'는 설치해야 하는 애플리케이션이다. 즉, 웹은 애플리케이션을 통해 동작한다는 말이다.  그런데 애플리케이션은 위 내용과 같이 수정되면 앱스토어를 통해 업데이트를 해야 한다.

 

만약 사용자가 구 버전의 브라우저를 사용하고 있다면, HTML/CSS/Javascript의 최신 기능이 적용되지 않을 수 있다. 그렇다면 개발자는 각 버전에서 기능이 정상 동작할 수 있도록 코드를 추가 작성해야 한다. 이 문제를 '브라우저 버전의 파편화'라고 하며, 문제 해결을 위한 코딩을 '파편화를 잡는다'고 표현한다.

 

이 파편화를 잡는 작업은 꽤 힘든 작업이기 때문에, 전세계 및 국내 브라우저의 버전 점유율을 확인해야 효율적으로 개발이 가능하다.

 

#브라우저 및 버전 별 CSS 사용 가능 여부 확인 사이트

https://caniuse.com/

 

Can I use... Support tables for HTML5, CSS3, etc

 

caniuse.com

 


 

애플리케이션 개발 방식에 따른 구분

애플리케이션은 어떻게 개발했느냐에 따라 4가지로 구분된다. 각각의 특징은 아래와 같다.

네이티브 애플리케이션

운영체제에 맞는 언어를 사용하여 개발한 애플리케이션을 말한다. 즉, 안드로이드는 Kotlin/JAVA, IOS는 Swift로 개발한 애플리케이션이다. 전형적인 애플리케이션의 특징을 가지고 있다.

 

  1. 네트워크에 영향이 적다
  2. 수정이 어렵다
  3. 속도가 빠르고 안정적이다
  4. 디자이스에 대한 액세스 권한을 가질 수 있다

모바일 웹

반응형 웹개발을 이용하여, PC용 사이트를 모바일에 맞게 다시 구현하는 것을 말한다. PC웹을 모바일에 맞게 축소한 것이기 때문에 웹의 특징을 가진다. 웹이기 때문에 디바이스에 대한 액세스 권한을 가질 수 없으며, 애플리케이션 개발보다 비용이 적게 든다.

웹앱

단순 반응형이 아닌, 애플리케이션과 비슷하게 동작할 수 있도록 웹을 개발하는 형식을 말한다. 보이는 형태는 애플리케이션이지만, 웹이라고 생각하면 된다. 때문에 웹의 특징을 동일하게 가진다.

하이브리드 애플리케이션

하이브리드 애플리케이션(좌)과 웹앱(우)

하이브리드 앱은 네이티브 앱과 웹앱의 혼합형이며, 기본적으로 애플리케이션에서 웹앱을 띄우는 형태다. 즉, 애플리케이션을 실행시켰는데 웹앱을 URL을 통해 띄워준다면 하이브리드 애플리케이션인 것이다. 하이브리드 애플리케이션은 혼합형이기 때문에 애플리케이션과 웹의 장점과 단점을 고루 가지고 있다.

 

  1. 양쪽의 API를 모두 사용할 수 있다
  2. 네이티브 앱 개발 지식이 필요하다
  3. 부분적으로 네트워크의 영향을 받는다
  4. 웹앱 부분에 대해서 수정이 쉽다
  5. 디바이스에 대한 액세스 권한을 가질 수 있다