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