패스잇
모바일 개발 · 심화

Flutter 앱에서 딥 링크(Deep Linking)와 유니버설 링크(Universal Links/App Links)를 구현하는 과정을 설명하고, 각각의 작동 방식, 장단점, 그리고 실제 프로덕션 환경에서 발생할 수 있는 문제점(예: 다른 앱과의 충돌, OS 버전별 동작 차이)과 이를 해결하기 위한 전략에 대해 논하십시오.

힌트 · 딥 링크는 URI 스킴을 사용하고, 유니버설 링크는 HTTP/HTTPS URL을 사용합니다. go_router나 Navigator 2.0과 연동하여 라우팅을 처리하고, 플랫폼별 설정(AndroidManifest, Info.plist)이 중요합니다.

URI 스킴AASA 파일AndroidManifest.xmlInfo.plist링크 검증

모범답안

딥 링크와 유니버설 링크는 앱으로 사용자를 특정 콘텐츠로 바로 연결하는 기술입니다. 딥 링크는 앱 내 특정 위치로 이동하는 URI 스킴을 사용하지만, 유니버설 링크는 HTTP/HTTPS URL을 사용해 웹사이트와 앱 모두 연결할 수 있어 더 안전하고 사용자 경험이 좋습니다.

구현 과정은 먼저 go_router나 Navigator 2.0을 사용하여 라우팅 설정을 하고, AndroidManifest.xml과 Info.plist에 딥 링크/유니버설 링크 설정을 추가합니다. 유니버설 링크의 경우, 웹 서버에 AASA(Apple App Site Association) 파일을 호스팅하여 앱과 웹사이트의 연결을 증명해야 합니다.

문제점으로는 딥 링크의 경우 다른 앱과 URI 스킴이 충돌할 수 있고, 유니버설 링크는 AASA 파일 설정 오류나 OS 버전별 동작 차이로 인해 제대로 작동하지 않을 수 있습니다. 해결 전략으로는 고유한 URI 스킴을 사용하고, AASA 파일 설정을 꼼꼼히 확인하며, OS 버전별 예외 처리를 구현하는 것이 중요합니다. 링크 검증 도구를 활용하여 링크가 올바르게 설정되었는지 확인하는 것도 좋은 방법입니다.

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

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

함께 보는 Flutter / Dart 면접 질문

← Flutter / Dart 면접 질문 전체 보기