IT 용어

cocobirds·2024년 2월 2일
0

앱의 종류

네이티브 앱(Native app = 모바일 기기에 최적화 된)

스마트폰 운영체제에 맞춰 개발된 앱. 안드로이드, iOS에서 사용하는 언어를 이용해 개발.

장점

  • 앱 실행 속도가 빠름
  • 유용한 API 지원을 받을 수 있음
  • 카메라, 페이스 인식, 연락처 조회 등 스마트폰 기본 기능들 활용 가능
  • 각 운영 체제에 최적화되어 있어 안정적인 서비스 제공 가능
  • 고성능 그래픽 처리 가능(2D, 3D, 증강현실 등)

단점

  • 해당 플랫폼 별로 다른 언어를 사용함으로, 각 운영체제의 개발 언어를 알고 있어야 한다.
  • 플레이 스토어 & 앱 스토어에 올려 심사를 받고 통과해야만 앱이 등록되기 때문에 번거로움
  • 앱 업데이트 시 심사를 거쳐야 하기 때문에 업데이트 또한 번거로움
  • 각 운영체제 별로 개발해야 하므로 개발 비용 발생

웹뷰(WebView)

네이티브 앱 내에 내제되어 있는 웹 브라우저이다. 앱을 벗어나지 않고도 웹 브라우저를 띄울 수 있다. 프론트엔드 개발자가 작성한 코드가 앱 내의 웹뷰 컴포넌트로 임베딩된다.

웹뷰를 사용하는 이유?

  • 네이티브 앱 개발의 단점을 커버치기 위해 사용.
    • 앱 스토어 리스크 : 앱은 스토어를 통한 배포 프로세스이기 때문에 개발, 빌드 후 배포를 하더라도 바로 사용자에게 전달되는 것이 아니다. 각 스토어마다 앱의 가이드라인이 다르고 추후 정책이 바뀔 수 있기 때문에 리스크가 있음.
    • 버전 이슈 : 앱 최신 버전이 업데이트 되면 사용자들은 앱 버전 업데이트를 해줘야 하는데 자주 업뎃이 되면 사용자의 사용성이 떨어질 수 있다.
    • 개발자 풀 : 앱개발자들은 실제로 많이 없고, 회사에서도 잘 뽑지 않는다. 네이티브 앱 만으로 만들어진 거대한 서비스는 없다고 한다.
  • 앱을 벗어나지 않는다는 점이 포인트. 유저들을 앱을 벗어나 다른 컨텐츠가 뜨게 되면 방금까지 사용하던 앱으로 돌아갈 확률이 감소하게 된다고 한다.
  • 잘만든 웹뷰 화면들은 네이티브 앱인지 웹인지 분간이 어렵기 때문에 잘 만들면 서비스적 측면에서 더 나은 선택지가 될 수 있음.
  • 더 많은 기능을 빠르게 제공(핵심!): 사용자들에게 기능들을 빠르게 제공하고 수정할 수 있다. 유저들의 피드백을 수용해 즉각적으로 반영하여 빠르게 서비스를 개선해 나갈 수 있다.

웹뷰가 일반 웹과 달라야 하는 점

웹 개발자가 일반적으로 개발하는 일반 웹과 네이티브 앱에 들어가는 웹뷰는 개발 성격이 살짝 다르다. 앱은 화면과 화면 간의 전환이 정말 빠르고 자연스럽게 이뤄지므로 프레임이나 렌더링 성능이 좋아야 한다. 만약 웹뷰로 만들어진 페이지에서 화면 전환 시 렌더링이 늦어진다면 사용자 경험은 떨어진다.

웹뷰는 빨라야 한다. 그러므로 웹뷰는 일반 웹과 달리 다른 성능 지표를 생각하며 개발해야 한다.

  1. LCP(Largest Contentful Paint) : FCP(First Contentful Paint)와는 살짝 다르게 페이지의 가장 큰 컨텐츠 = 페이지의 주요 내용이 얼마나 빠르게 렌더링 되는지에 대한 지표
  2. CLS(Cumulative Layout Shift) : 레이아웃이 얼마나 덜 끊기는지에 대한 지표. 컨텐츠를 보다가 갑자기 이미지가 나중에 렌더링되서 뚝 끊기는 현상을 줄여야 한다.
    3.FID(First Input Delay) : 사용자와 인터랙션(터치, 드래그 등등)에 따라서 얼마나 빠르게 반응하는지를 요구하는 지표.

출처

크로스 플랫폼 프레임워크(cross-platform frameworks)

한 가지 개발 언어와 프레임워크로 ios, 안드로이드 양쪽 스토어에 출시할 수 있는 개발 방법. 둘 이상의 플랫폼에서 돌아가는 앱을 만들 수 있다.

예) 구글 Flutter, 페이스북의 React Native

장점

  • 코드를 하나만 작성하면 양쪽 스토어에서 모두 사용할 수 있어 시간을 줄 일 수 있음
  • 빠른 개발 가능
  • 하나의 코드로 작성하기 때문에 유지보수 용이

단점

  • 기존 네이티브 앱이 가지고 있는 동적인 요소 퍼포먼스를 100% 구현할 수 없음
  • 네이티브 앱에 비해 성능이 떨어져 느린 경우가 있음
  • 라이브러리가 다양하지 않아 기능 구현에 어려움이 있을 수 있음
  • 업데이트 지연 발생 가능

모바일 웹 앱

네이티브 앱처럼 보이고, 기능 또한 앱과 동일하게 구현되지만 웹 기술을 활용하여 만들어진 앱을 '웹앱'이라 한다. 네이티브 앱과 달리 웹 기반의 html, css, js 등을 활용하며, 별도의 앱 파일을 설치하지 않고 인터넷 브라우저 기반으로 작동된다.

앱 없이 인터넷을 통해 구동되는 것을 보면 일반 모바일 웹과 똑같은 것이라 느낄 수 있지만, 두 가지의 차이가 약간 있다.

  • 모바일 웹 : PC를 기준으로 제작된 뒤 모바일 화면 규격에 맞게 폰트나 이미지 등을 바꾼 것.
  • 웹 앱 : 처음부터 모바일을 기준으로 제작되어 이용자에게 훨씬 편안한 환경을 제공한다. 하지만 설치하는 앱이 아니므로 카메라나 음성 등 디바이스 자체 기능에 접근할 수는 없다.

++ 차이점
실행 방식에 차이가 있다. 모바일 웹은 화면의 일부분이 바뀔 때 전체를 서버에서 새롭게 불러오는 풀 브라우저방식, 웹앱은 변경이 필요한 부분만 바꾸는 단일 페이지 방식(Single page application)을 사용. 따라서 모바일 웹이 웹앱보다 속도가 느리다는 특징이 있음.

  • 웹앱 : 모바일 화면도 구성한 웹
  • 모바일 앱 : 모바일 화면만 구성한 앱

++ 차이점

인프콘 웹뷰 영상

하이브리드 앱(Hybrid app)

웹과 앱의 장점을 하나로 합침. 하이브리드 앱은 네이티브 앱 + 웹앱 개발 방식을 모두 사용한다. 앱의 화면이나 기능 등 콘텐츠 영역은 웹 기반으로 제작하고 겉모습은 앱 마켓 등록과 설치를 위해 네이티브 앱으로 포장함. 두 가지 개발 방식을 이용하므로 웹과 앱의 API 모두 사용 가능하다. 따라서 웹앱에서는 불가능 했던 디바이스 자체 기능에 접근할 수 있게 된다.

장점

  • 웹 기술을 기반으로 제작되지만, 모바일 API도 사용할 수 있으므로 디바이스 자체 기능을 활용할 수 있음
  • 네이티브 앱에 비해 개발 비용 및 시간 절약 가능
  • 한 번 개발해두면 패키징을 바꾸는 방식으로 여러 플랫폼에 대응 가능

단점

  • 네이티브 앱 개발 지식 필요
  • 브라우저의 성능이 떨어지면 앱 구동 속도 저하됨
  • 네이티브 앱에 비해 디자인의 자유도가 떨어짐

SDK

software development kit. 어떤 소프트웨어를 만들기 위한 도구 모음. 그 도구 안엔 API도 있을 수 있다.

예) ios SDK를 다운받으면 개발자에게 ios 어플리케이션을 만드는데 필요한 모든 도구가 제공된다. 아이폰 시뮬레이션을 할 수 있는 시뮬레이터도 제공됨.

API

application programming interface. 모듈화되어 만들어진 것으로, 어떤 기능을 제어하거나 제공하는 인터페이스를 말함. 대부분의 어플리케이션은 API에 의존하고 있다.

예) 업로드 버튼을 클릭하면 업로드 된다거나,
계산기를 이용해 값을 얻을 수 있는 것.

profile
접근성과 UX, 데이터 표현에 관심이 많습니다.

0개의 댓글