amplitude.init("2e2e5a386856efdf3237cf254a9d14d9"

[개념 콕] 안드로이드 Deep Links와 App Links의 차이점

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
Jun 05, 2024
[개념 콕] 안드로이드 Deep Links와 App Links의 차이점
✍🏼
안드로이드 입문자 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 안드로이드 핵심 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 
딥 링크(Deep Links)는 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행합니다.
 
딥 링크는 3가지 방식으로 구분됩니다.
  • URI 스킴 방식 : 앱에 URI 스킴(scheme) 값을 등록하여 딥 링크 사용
  • 앱링크(App Link) : Android 제공 - 도메인 주소를 이용한 딥 링크 사용
  • 유니버셜 링크 (Universal Link) : iOS 제공 - 도메인 주소를 이용한 딥 링크 사용
 
또한 딥링크에는 2가지 타입이 존재하는데
  1. default 딥 링크 : 유저가 이미 앱을 깔았을 때만 원하는 화면으로 이동하는 딥 링크. 앱이 없는 경우 스토어로 연결합니다. 즉, 미리 앱을 깐 유저들을 다시 데려오고 싶은 목적일 때만 유용합니다.
  1. defered 딥 링크 : 앱이 깔려있지 않은 유저를 App이나 Play Store로 데려간 다음, 설치된 뒤에는 원래 보고싶었던 페이지를 띄우게 하는 딥 링크.
 
이를 그림으로 요약하면 다음과 같습니다.
notion image
즉, default 딥 링크 안에 유니버셜 링크와 앱 링크가 포함되어 있습니다. 자, 이제는 조금 더 디테일하게 들어가보도록 합시다.
 

URI 스킴(URI Scheme) 방식

URI 스킴을 이용한 딥링크는 앱에 Scheme값을 등록하는 형태입니다. 예를 들어, 여러분들이 트위터를 오픈하고 싶다면 twitter:// 라는 스킴값을 이용하면 됩니다. (이제는 트위터가 아니라 X 지만요) 앱 내에서의 특정 페이지는 'path' 값으로 구분합니다. 예를 들어, 트위터 앱의 회원가입 페이지를 오픈하고자 한다면 twitter://signup 이라는 값을 사용합니다.
 
이를 정리하자면 다음과 같습니다.
  • Scheme://Path
  • Scheme = 앱을 특정함 (트위터)
  • Path = 앱 내 페이지를 특정함 (트위터 내 회원가입 페이지)
 
안드로이드에서 URI 스킴을 사용하고자 하면, AndroidManifest.xml에서 스킴 값을 등록합니다.
<activity android:name=".MainActivity" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="your_scheme" android:host="your_host" /> </intent-filter> </activity>
여기서 android:scheme 항목에 스킴 값을 넣으면 됩니다.
 
다만, 이 URI 스킴 방식에는 한계점이 존재하는데 앱 스킴 값이 서로 중복되는 경우 앱에 등록된 스킴 값이 자신들의 앱만 사용하는 고유 값인지 확인할 방법이 없습니다. 예를 들어, 구글플레이 앱은 자신들의 앱을 오픈하기 위한 스킴 값으로 market:// 란 값을 사용하고 있는데 원스토어, 삼성 앱스토어 등의 오픈 마켓 또한 이 스킴 값을 사용합니다. 따라서 market:// 란 값을 사용하면 사용자에게 구글스토어, 원스토어, 삼성 앱스토어가 전부 오픈이 됩니다. 그렇게 되면 사용자는 어떤 앱을 이용해야할지 구분할 수가 없게 되죠.
이러한 한계점을 극복하기 위해 생겨난 것이 바로 앱 링크(App Links) 입니다.
 
앱 링크는 웹사이트 URL을 기반으로 하는 딥 링크입니다. Android에서만 사용하는 방식이고, iOS에서는 이와 비슷한 유니버셜 링크를 사용하고 있습니다.
 
이 앱 링크의 장점은 다음과 같습니다. (Android 공식문서 참조)
  • 안전성 및 구체성: Android App Links는 내가 소유한 웹사이트 도메인에 연결되는 HTTP URL을 사용하므로 다른 앱에서 내 링크를 사용할 수 없습니다. Android App Links의 요구사항 중 하나는 웹사이트 연결 방법 중 하나를 통해 도메인 소유권을 확인하는 것입니다.
  • 원활한 사용자 환경: Android App Links는 웹사이트와 앱에 있는 동일한 콘텐츠에 단일 HTTP URL을 사용하므로 앱을 설치하지 않은 사용자는 앱이 아닌 웹사이트로 연결됩니다.
  • Android 인스턴트 앱 지원: Android 인스턴트 앱을 사용하면 사용자가 Android 앱을 설치하지 않고도 실행할 수 있습니다.
  • Google 검색에서 사용자 참여: 사용자는 모바일 브라우저, Google 검색 앱, Android의 화면검색에서 Google의 URL을 클릭하거나 Google 어시스턴트를 통해 앱에서 직접 특정 콘텐츠를 엽니다.
 
사용 방법은 위의 URI 스킴 방식과 비슷하지만, data 부분에서 차이점이 있습니다.
<activity android:name=".MainActivity" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="https" android:host="your_appkey.adtouch.adbrix.io" /> </intent-filter> </activity>
android:scheme 부분에 스킴 값 대신 http 혹은 https를 집어넣고, android:host 부분에 도메인을 집어넣는 방식으로 링크를 구현합니다. 단, 이 앱 링크는 최근에 만들어졌기 때문에 Android 6.0(API 수준 23) 이상에서만 사용이 가능합니다.
 

딥 링크와 앱 링크의 차이점

Deep Links
App Links
Intent URL scheme
http, https, 커스텀 스키마
http와 https만 가능
Intent action
모두 가능
android.intent.action.VIEW만 가능
Intent category
모두 가능
android.intent.category.BROWSABLE과 android.intent.category.DEFAULT만 가능
Link verification
필요없음
User experience
사용자가 어떤 앱을 사용할 것인지 disambiguation dialog에서 선택할 수 있음
dialog 없음. 해당 앱이 바로 열리거나 웹사이트로 이동함
Compatibility
모든 안드로이드 버전에서 가능
안드로이드 6.0 이상에서 가능
 
 
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 안드로이드 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 안드로이드 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
 
 
CREDIT
글 | 김기원 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
 
 

취업 준비, 어디서부터 시작해야 할지 모르겠다면?

 
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
 
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
 
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
 
Share article
Subscribe to our newsletter
RSSPowered by inblog