All Articles

딥 링크(Deep Link) / 모바일 딥 링크(Mobile Deep Link)

현재 근무 중인 회사의 주력 서비스는 App이다.(Web 서비스가 없는것은 아니다.)
주력 서비스가 App이기 때문에 유저가 Web으로 유입되는 것 보다 App으로 유입되는 것이 좋고, App으로 유입이 되어야만 했다.
모바일 웹에서 App으로 유입되도록 하는 방법이든, 광고 또는 마케팅으로 유입되도록 하는 방법이든 무슨 방법이 되었든 간에
App 으로 회원을 유입 시키기 위해 딥 링크(Deep Link) / 모바일 딥 링크(Mobile Deep Link) 라는 것이 필요하다고 얘기가 내부적으로 나왔고
대체 이 딥 링크, 모바일 딥 링크가 무엇인지, 어떤 경우에 사용하는 것인지, 어떻게 우리 서비스에 적용할 수 있는지 이 3가지를 알아야 했다.

  1. 그래서 딥 링크(Deep Link), 모바일 딥 링크(Mobile Deep Link) 가 무엇?!?!
    먼저 웹이나 앱에서 모바일 앱의 내부 콘텐츠로 이동하기 위한 방법으로
    URL/URI Schema, App link, Deep link, Universal link 등이 존재했고, 빠르게 변화하고 있는 분야이다.

해당 분야는 상당히 파편화 되어있어, 어떤 기술을 구현해야 하는지, 어떤 방법이 최선인지 등 혼란이 많았고 빠르게 변화하는 만큼 새롭게 생긴것도 있을것입니다.

우리 개발자들은 http:// https:// 와 같은 Schema에 익숙한대 이런것들은 요구되는 콘텐츠 유형을 나타내며
모바일 앱은 자신만의 맞춤 URI Schema를 만들 수 있습니다.

그러나!! Schema 방법은 한계가 있습니다.
첫번째, 앱이 설치되지 않은 경우 에러가 발생.
두번째, 두 개 이상의 앱이 같은 Schema에 응답하려는 경우 충돌 발생.

첫번째 문제는 js를 통해 회피 방법을 개발했지만, 두번째 문제는 해결책이 없다고 합니다.

위 한계점으로 iOS 와 안드로이드는 각각 universal link 와 app link로 알려진 2세대 딥 링크 표준을 개발했습니다.
애플이 URI Schema의 js 재설정을 차단했기 때문에 iOS에서는 사용할 수 가 없어 universal link만 iOS에서 사용할 수 있습니다.

그러나!! 이 2세대 표준들도 한계가 있습니다.
바로 기존에 앱이 설치되어 있는 경우 앱 내 특정 페이지로 이동하는 것이 가능했지만, 설치되어 있지 않은 경우 앱을 설치하는 과정에서
모바일 딥 링크가 유실되는 점입니다.

위 한계점으로 디퍼드 딥 링크로 발전하게 됩니다.
디퍼드 딥 링크는 앱을 설치하는 과정에서 모바일 딥 링크가 유실되는 문제점을 해결합니다.

그러나!! 디퍼드 딥 링크도 한계가 있습니다.
바로 iOS 와 안드로이드 각각 OS에서만 사용할 수 있는 딥 링크가 따로 존재하고, 따로 만들어야 하는 것입니다.
현재 모바일 웹에서 앱으로 많이 이동시키려고하는데 이때 디퍼드 딥 링크를 많이 사용하고 있는것으로 보입니다.
iOS 와 안드로이드 따로따로 앱 설치 버튼 또는 앱으로 이동시키려고하는 오브젝트가 있는 경우 해당됩니다. (바로 윗 줄에 작성한 글에 대한 근거)

사실 오류라든지 심각한 문제인것은 아닙니다.
다만 제가 생각하기에는 하나의 같은 딥 링크를 두 OS에서 접근? 컨틀로? 할 수 있으면 좋겠다는 생각할 뿐입니다.

그리고 제가 생각한것처럼 뛰어난 분들이 먼저 그 생각을 하고 다이나믹 링크로 발전시켰습니다.
다이나믹 링크는 단 하나의 링크로 각각의 OS에 맞게 앱 설치 및 앱 내 특정 페이지로 이동할 수 있게 해줍니다.

결국 딥 링크(Deep Link) 라는 것은 특정 페이지로 이동할 수 있도록 하는 링크(Link) 를 의미하며, 모바일 딥 링크(Mobile Deep Link) 는
앱 내의 특정 페이지로 이동할 수 있도록 하는 링크(Link) 를 의미한다.

  1. 어떤 경우에 사용하는가?!?!
    그렇다면 프론트엔드 개발자가 HTML로 Web 구조를 잡을 때 사용하는 a 태그, Link 태그 같은 이러한 것들도 딥 링크로 볼 수 있지 않을까 생각한다.
    하지만, Web 은 URI/URL이 있으며, 주소창 이라는 이름으로 공개적으로 노출되어 있어, 사용자가 굳이 URI/URL을 수정하여 해당 주소로 접근을 하지는 않겠지만, 그래도 어떤 수단을 통해 특정 페이지로 이동 할 수 있는것은 분명하다.

반면 App 은 URI/URL이 공개적으로 노출되어 있지 않다.

그래서! Web은 공개적으로 노출되어 있어서, App은 노출되어 있지 않아서 모바일 딥 링크(Mobile Deep Link) 가 존재하며 사용하는 것일까?
이 차이가 핵심 포인트는 아니라고 생각한다.

Web에서도 버튼, 링크 등 특정 오브젝트를 클릭하여 이동할 수 있으며, App에서도 버튼, 링크 등 특정 오브젝트를 터치하여 이동할 수 있다.

그렇다면 왜 모바일 딥 링크(Mobile Deep Link) 를 사용하는 것인가?
맨 위에 작성했듯이 App으로 유저의 유입이 필요하다고 했다.
App으로 유저가 유입이 되려면 유저는 우리 서비스의 App을 AppStore 또는 PlayStore에서 설치해야 한다.
하지만, 일반 사람들은 우리 서비스가 App으로 출시되어 있는지 없는지 모른다.
(그래서 마케팅, 광고, 홍보 등등으로 우리 서비스 App으로 있어요~ 많이 많이 이용해주세요~ 하는것이겠죠?)

그래서 타 사의 서비스 App이든, Web이든, 우리 회사의 서비스 Web이든 모바일 딥 링크(Mobile Deep Link) 터치 한번으로 App 설치와 동시에
특정 페이지로 유입을 시킬 필요가 있을 때, App을 설치 할 때 AppStore PlayStore 구분하지 않고 하나의 UI로 양쪽의 Store로 각각 이동시켜 줄 때

  1. 우리 서비스에 어떻게 적용할거야~~??
    FireBase의 Dynamic Links 라는 서비스를 통해 쉽고 간편하게 적용할 수 있다.

뜬금없지만 항상 느끼는 부분..
먼저 경험하고 불편하고 어려운 부분을 개선하고 개발 생산성을 올려주는 전 세계 많은 개발자분들께 감사합니다. :)