[React-Native] 딥링크 공유하기 기능

DaYoung·2023년 6월 6일

React-Native

목록 보기
5/35

딥링크 vs 원링크

딥링크란?

url을 입력해서 원하는 웹 페이지에 접속하는 것처럼 앱에서도 특정 컨텐츠 링크에 도달하게끔 해주는 것.

원링크란?

OS 별로 구현할 필요없이 하나의 링크를 사용하여 특정 앱의 특정 페이지로 이동가능
Firebase = Dynamic Link, AppsFlyer = App Link


-> 딥링크를 사용하면 OS마다 각각 구현해줘야하지만,
다이나믹 딥링크(or 원링크)는 하나의 링크를 사용하여 자동으로 앱 내 특정페이지로 이동할 수 있게 해준다.


> 딥링크 종류

1) URI Scheme 방식: 앱에 URI 스킴(scheme)값을 등록해서 사용
ex) twitter을 오픈한다고 하면 ‘twitter://' 라는 스킴값을 사용하여 특정 앱을 오픈시킨다.

2) 앱 링크(App Link): 도메인 주소를 등록해서 사용 (Android only)

3) 유니버셜 링크(Universal Link): 도메인 주소를 등록해서 사용 (iOS only)

대표적으로 3가지 방식이 있음


프로젝트에서 다이나믹 링크를 사용하게 된 이유?

<사용하지 않게 된 이유>

  1. URI scheme

1-1 ) URL 스킴 방식은 한계가 있다.
URI scheme 방식은 개발자가 자유롭게 scheme을 지정할 수 있기 때문에 중복이 발생할 수 있다.
그럴 때는 아래와 같이 사용할 애플리케이션을 선택하도록 사용자에게 유도를 함.

특정 목적의 앱(스토어, 갤러리, 카메라 등)으로 이동할 때 사용자가 더 선호하는 앱을 선택할 수 있도록 선택지를 줄 수 있지만, 무조건 특정 앱으로 보내야 하는 상황에서는 곤란한 상황일 수 있다.

1-2) 모바일이나 웹에서 앱 스킴을 요청했을 때, 만약 앱이 설치되어있지 않다면, 예외를 발생시키거나 아무 일도 일어나지 않는다.
개발자는 번거롭게 예외 처리를 구현해야 하며, 직접 예외를 처리하기 힘든 외부 소스라면 딥링크를 사용하기 힘들 수 있다.


2. 유니버셜 링크, 앱링크 custom URI scheme의 문제점이었던 유연성도 어느 정도 해결함
  • 사용자가 HTTP URL을 실행하면 OS(운영체제)는 URL에 해당하는 앱을 찾아 실행
    -> 사용자는 하나의 URL을 통해 웹과 모바일에서 동일한 컨텐츠를 볼 수 있음
  • 앱이 설치되지 않은 유저의 경우에는 클릭한 링크를 외부 브라우저에서 실행(fallback url이라고 함)

<참고> fallback url 앱 다운로드를 유도할 수도 있고, 앱스토어를 바로 실행하는 규칙을 만들 수도 있음 -> URI 스킴의 단점이었던 부분을 HTTP URL을 활용하여 상당 부분 해결


이러한 단점을 극복하고자 유니버셜 링크(iOS)와 앱링크(Android)가 생겼지만, 아직까지는 완전하지 않음 -> 모든 앱에서 유니버셜 링크와 앱링크 오픈을 지원하는 것이 아니기 때문임 (앱 링크는 구글에서 만든 앱에서만 동작하고 유니버셜 링크는 애플에서 만든 앱에서만 동작)


Firebase가 제공하는 Dynamic Link를 사용하면 이러한 문제를 해결할 수 있다.
> 딥링크 기능
  1. 앱이 설치된 유저의 경우 : 실행 후 링크 이동
  2. 앱이 설치되지 않은 유저 : 다운로드 페이지로 이동

참고

1.URL의 구조
URI란?
-> 웹 서버가 고유하게 식별할 수 있도록 하는것으로 인터넷에 있는 접근 가능한 자원을 나타내는 유일한 주소를 일관되게 표현하는 방식임 (고유하게 식별할 수 있도록 나타낸 주소)
URI의 하위 개념으로는 URL과 URN이 있음

  • 참고한 사이트


    <딥링크>

https://velog.io/@ragnarok_code/%EB%94%A5%EB%A7%81%ED%81%AC%EC%9D%98-%EC%A2%85%EB%A5%98

https://medium.com/@kimdohun0104/%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EB%B3%B4%EB%8A%94-%EB%94%A5%EB%A7%81%ED%81%AC-%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80-%EC%95%B1%EC%9D%84-%ED%97%A4%EB%A7%A4%EC%A7%80-%EC%95%8A%EA%B2%8C-%ED%95%98%EA%B8%B0-20e909fcf60f


https://hanseul-lee.github.io/2020/12/24/20-12-24-URL/

profile
안녕하세요. 프론트앤드 개발자 홍다영입니다.

0개의 댓글