딥링크(Deep Link)는 모바일 애플리케이션 내의 특정 화면이나 콘텐츠로 직접 이동하게 해주는 URI(Uniform Resource Identifier)이다.
앱을 단순히 실행(Launch)하는 것을 넘어, 앱 내부의 구체적인 경로(Path)와 데이터(Parameter)를 포함하여 호출하는 기술이다.
웹 브라우저에서 https://www.naver.com/news/123을 입력하면 메인 페이지가 아니라 특정 뉴스 기사가 열리는 것과 동일한 개념을 모바일 앱에 적용한 것이다.
MainActivity (홈 화면) 실행."URL을 네비게이션 상태 객체로 변환한다" 라는 과정은 다음과 같은 기술적 흐름을 의미한다.
사용자가 myapp://product/42 라는 링크를 클릭하면, 모바일 OS(iOS/Android)는 이 링크(myapp://)를 등록한 앱을 찾아 실행한다.
OS는 앱을 실행시키면서 myapp://product/42라는 문자열(String)을 앱의 진입점(Entry Point)에 전달한다.
React Navigation은 이 문자열을 받아서 자신이 이해할 수 있는 내부 상태 객체(State Object)로 변환한다.
myapp://product/42const config = {
screens: {
ProductDetail: 'product/:id', // URL 경로와 화면 매핑
},
};
{
routes: [
{
name: 'ProductDetail', // 화면 이름
params: { id: '42' } // 파라미터 추출
}
]
}
네비게이터는 위 상태 객체를 보고, 초기 화면을 건너뛰고 즉시 ProductDetail 컴포넌트를 렌더링하며 route.params.id로 42를 전달한다.
scheme://host/path (예: kakaotalk://settings, twitter://user?id=123)https://www.mydomain.com/path (표준 HTTP URL)apple-app-site-association, assetlinks.json)이 서버에 있어야 한다.myapp://A/B)을 앱 내부의 라우팅 정보(Screen A, Params B)로 매핑하여 이동시킨다.