패스잇
모바일 개발 · 심화

React Native 애플리케이션에서 Deep Linking과 Universal Links(iOS) / App Links(Android)를 구현할 때, 단순한 페이지 이동을 넘어선 고급 시나리오(예: 사용자 인증이 필요한 페이지로의 딥 링크, 동적 콘텐츠 기반의 딥 링크, 외부 앱과의 연동)를 어떻게 처리할 것인지 설계 방안을 제시해 주세요. 특히 보안 및 사용자 경험 측면을 고려하여 설명해 주세요.

힌트 · Linking API를 활용하고, 네이티브 설정(Info.plist, AndroidManifest.xml)을 구성합니다. 인증이 필요한 경우 토큰 유효성 검사 및 리디렉션을 구현하고, 동적 콘텐츠는 쿼리 파라미터를 통해 처리합니다.

URI 스킴Universal LinksApp LinksJWTDeferred Deep Linking

모범답안

React Native에서 딥 링크와 Universal/App Links를 활용한 고급 시나리오 처리에 대해 말씀드리겠습니다.

단순 페이지 이동을 넘어 사용자 인증이 필요한 페이지로 딥 링크될 경우, 먼저 Linking API를 통해 URI 스킴이나 Universal/App Links를 감지합니다. 이때, 앱이 실행 중이거나 백그라운드에 있다면 바로 해당 페이지로 이동하되, 인증 토큰이 없거나 만료되었다면 로그인 페이지로 리디렉션합니다. 로그인 성공 후에는 원래 목적지로 다시 이동하도록 구현하여 사용자 경험을 해치지 않도록 합니다.

동적 콘텐츠 기반 딥 링크는 쿼리 파라미터를 적극 활용합니다. 예를 들어, myapp://product?id=123&category=electronics 와 같이 상품 ID와 카테고리 정보를 전달받아 해당 콘텐츠를 동적으로 로드하고 표시합니다.

외부 앱과의 연동은 딥 링크를 통해 데이터를 주고받는 방식으로 구현할 수 있습니다. 예를 들어, 다른 앱에서 특정 데이터를 딥 링크로 전달하면, 우리 앱은 해당 데이터를 받아 처리하고 결과를 다시 외부 앱으로 전달하는 방식입니다.

보안 측면에서는, 민감한 정보는 쿼리 파라미터에 직접 포함시키지 않고, 필요하다면 JWT와 같은 토큰을 사용하여 서버와 통신하며 인증 및 데이터 검증을 강화합니다. 또한, Universal/App Links 설정 시 도메인 검증을 철저히 하여 악의적인 링크로부터 앱을 보호하는 것이 중요합니다. Deferred Deep Linking 기법을 활용하여 앱이 설치되지 않은 사용자에게도 앱 설치 후 원래 의도했던 콘텐츠로 바로 연결되도록 유도하는 것도 사용자 경험 향상에 큰 도움이 됩니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 React Native 면접 질문

← React Native 면접 질문 전체 보기