유니버셜 링크 (Universal Link)
🚀 추가된 버전: v1.5.1
🔔 최신화 일자: 2025-08-07
유니버설 링크 이해하기
유니버설 링크 (Universal Link)는 Apple에서 도입한 표준 딥링크 방식으로, iOS에서 정규 웹 URL을 이용해 앱을 여는 기술입니다. 하나의 HTTPS 링크로 앱과 웹을 모두 연결할 수 있어 사용성, 보안성 면에서 우수합니다.
겉보기에는 평범한 웹 URL이지만, 조건을 만족한다면 사용자가 특정 도메인의 HTTPS 링크를 열었을 때 iPhone, iPad에서 Safari 브라우저 대신 자동으로 대응되는 앱이 실행됩니다. 예를 들어 nachocode developer 앱과 https://nachocode.link URL을 유니버셜 링크로 연동해두면, iPhone의 Safari 등에서 해당 링크를 클릭했을 때 동일 도메인을 지원하는 앱(nachocode developer)이 설치되어 있으면 앱이 곧바로 실행되고 해당 URL을 앱 내에서 처리합니다. 설치되지 않은 경우에는 동일한 URL의 웹페이지(https://nachocode.link)를 그대로 브라우저에서 열어 웹 콘텐츠를 표시하는 형태입니다.
유니버셜 링크는 Android의 공식 딥링크 방식인 앱 링크 (App Link)와 유사하며, iOS의 표준 딥링크 방식인 만큼 좋은 사용자 경험을 제공합니다. 사용자는 별도의 스킴 링크를 인지하지 않아도 익숙한 웹 URL을 클릭하는 것만으로 앱을 열 수 있고, 앱이 설치되어 있지 않으면 동일한 URL이 브라우저에서 열려 여전히 콘텐츠를 확인할 수 있습니다. 또한 iOS에서 유니버셜 링크가 한 번 승인되면 이후로는 사용자의 추가 동의나 선택 창 없이 곧바로 앱이 열리기 때문에 매끄러운 사용자 경험을 제공합니다.
nachocode 앱소스 v1.5.1부터 iOS 유니버설 링크를 지원합니다.
유니버셜 링크 동작 흐름
유니버셜 링크 (Universal Link)는 도메인 소유 증명과 OS 설정을 통해 동작합니다. iOS에서는 Associated Domains(연관 도메인)라는 기능을 이용하여, "특정 웹 도메인의 링크가 이 앱을 열 수 있다"는 정보를 사전에 등록합니다.
- 앱 개발자는 Apple 개발자 계정의 설정과 앱의 번들에 연관 도메인 Entitlement를 추가하여, 예를 들어
applinks:example.com형태로 앱과 도메인을 연결합니다. - 또한 해당 웹사이트 (
example.com)의 서버에는 Apple 앱 사이트 연관 파일(Apple App Site Association 파일)을 호스팅합니다. 이 JSON 파일에는 어떤 앱(들의 Bundle ID)이 이 도메인의 링크를 열 수 있는지가 명시됩니다. (보통.well-known/apple-app-site-association경로에 파일을 배포) - 사용자가 iOS에서 해당 도메인의 URL을 클릭하면, OS가 그 도메인에 대한 앱-사이트 연관 정보를 미리 캐시/조회하여, 연결된 앱이 있는지 확인합니다. 연관된 앱(Bundle ID)이 설치되어 있다면, 곧바로 그 앱을 실행하고 URL 정보를 앱에 전달합니다. 설치되어 있지 않으면 원래대로 Safari에서 웹페이지를 표시합니다.
유니버셜 링크 구현 요건
iOS 유니버셜 링크 (Universal Link)를 적용하려면 도메인 소유권 인증, 앱 설정 그리고 Apple 개발자 계정 설정 세 가지가 필요합니다.
- 웹 도메인에 연계 파일 제공
- 본인 소유의 자체 도메인이 있어야합니다. 이 도메인에서 SSL이 활성화된 https 프로토콜로 서비스를 제공해야합니다.
- 해당 도메인 서버에 정확한 내용의
apple-app-site-associationJSON 파일을 호스팅해야 합니다. - 이 파일에는 앱의 Team ID와 App ID(Bundle ID)가 포함된 앱 식별자와 허용 경로 패턴 정보가 포함됩니다.
- iOS는 링크를 클릭할 때 이 파일을 HTTPS로 조회하여 앱과 도메인이 서로 연동 허용된 관계인지 검증합니다.
- 앱에 Associated Domains 설정
- 앱의 코드 서명에 Associated Domains 권한(entitlement)을 추가하고, 거기에
applinks:your.domain.com형식으로 해당 도메인을 명시해야 합니다. - iOS는 앱 설치 시 이 값을 확인하여, 추후 해당 도메인의 링크를 클릭하면 이 앱으로 열어줄 수 있게 연결짓습니다.
- nachocode 플랫폼에서는 해당 앱 설정을 시스템 상에서 자동으로 앱에 적용합니다.
- 앱의 코드 서명에 Associated Domains 권한(entitlement)을 추가하고, 거기에
- Apple 개발자 계정 설정 및 프로비저닝
- Apple 개발자 계정에서 해당 앱의 App ID에 Associated Domains 기능이 활성화되어 있어야 합니다.
- nachocode를 통해 빌드한 앱이라도, 사용자 측의 Apple 개발자 계정 설정 및 프로비저닝이 필요합니다.
유니버셜 링크 특징
유니버셜 링크 (Universal Link)는 iOS 9 이상에서 동작하며, iPhone/iPad의 Safari, Mail, Messages 등 Apple 기본 앱 및 WebView 등에서 동작합니다. 사용자가 링크를 클릭하면 Safari를 거치지 않고 바로 앱이 실행되기 때문에, 이전의 URI 스킴 (URI Scheme) 방식처럼 별도 팝업이나 확인 없이도 자연스러운 전환이 가능합니다.
iOS에서는 한 번 유니버설 링크가 앱으로 연결되면 추후에도 계속 앱으로 열리는 것이 기본 동작이므로, 사용자가 특별히 링크를 길게 눌러 "웹으로 열기"를 선택하지 않는 한 사용자에게 “앱 으로 열까요?” 같은 확인 팝업을 표시하지 않고 편리하게 앱으로 연결됩니다. 사용자가 이전에 해당 도메인을 웹으로 열도록 설정했을 때만 예외적으로 웹이 열릴 수 있습니다.
Apple이 제공하는 표준 방식이므로 보안과 사용자 경험이 뛰어나고 아래와 같은 장점을 가집니다.
- 고유성과 안전성
- Universal Link는 소유한 도메인을 기반으로 하므로 다른 앱이 가로챌 수 없습니다.
- 또한 도메인 소유자만 설정 파일을 제공할 수 있어 앱-도메인 연결이 안전합니다.
- 원앱-원도메인 원칙
- 한 도메인을 여러 앱에 매핑하거나 한 앱에 여러 도메인을 연결하는 것도 가능하지만, 각 연결은 명시적으로 인증되어야 합니다.
- 즉, 허가된 앱만 해당 도메인 링크를 열 수 있고, 그렇지 않은 앱은 열 수 없습니다.
- 원활한 fallback
- 만약 사용자가 앱을 설치하지 않았다면, 해당 웹사이트가 자동으로 열리기 때문에 자연스러운 사용자 경험을 이어갈 수 있습니다.
- 사용자는 웹에서 계속 내용을 확인하거나, 필요한 경우 그 웹페이지에서 다운로드 유도를 할 수 있습니다.
- 단일 링크 사용
- 하나의 URL로 웹과 앱을 모두 처리할 수 있어, 마케팅/운영 측면에서 URL 관리가 단순해집니다.
유니버셜 링크는 사용자가 링크를 주소창에 직접 입력하거나 JavaScript 등을 통해 리다이렉트로 해당 링크를 열 경우