앱 연동 관점에서 URL SCHEME이란?

URL SCHEME

URL scheme은 인터넷에서 자원의 위치를 식별하거나 액세스 방법을 지정하는 데 사용되는 문자열 패턴입니다. URL의 일부이기 때문에 평소 익숙한 웹 사이트 주소 체계와 비슷합니다. 형태는 아래와 같습니다 []는 생략 가능한 요소입니다.

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
  • scheme : 자원에 접근하기 위해 사용되는 프로토콜을 지정합니다. 예를 들어, http, https, ftp, mailto, file 등이 있습니다.
  • user:password@ : 선택적으로 사용되며, 일부 프로토콜에서 자원에 접근하기 위해 필요한 인증 정보를 제공합니다.
  • host : 접근할 자원이 있는 서버의 주소입니다.
  • port : 서버에서 자원에 접근하는데 사용되는 포트번호입니다.
  • path : 서버 내에서 자원의 위치를 나타냅니다.
  • query : URL에 추가 정보를 제공하는데 사용되며, 키-값 쌍으로 구성됩니다.
  • fragment : 웹 페이지 내의 특정 부분을 가리키는데 사용됩니다.

 

앱 연동 관점에서 URL SCHEME

애플리케이션 간 연동에서 URL scheme은 앱이 서로 데이터를 공유하고 특정 작업을 실행하는 데 중요한 역할을 합니다. URL scheme을 사용하면 한 애플리케이션에서 다른 애플리케이션의 특정 기능을 호출할 수 있기 때문입니다.

 

예를 들어, iOS 애플리케이션에서 특정 위치를 Apple 기기에 기본 내장된 지도(Maps) 앱으로 열고 싶다면 아래와 같은 URL scheme을 사용할 수 있습니다. 이 URL을 호출하면 애플 지도 애플리케이션을 열고 지도가 Palo Alto 지역으로 설정됩니다.

maps://?q=Palo+Alto

 

크롬 웹 브라우저를 통해 호출하면 실제로 지도 앱이 켜지는 걸 확인할 수 있습니다. 이건 웹 브라우저를 통한 호출이고, 같은 URL scheme을 사용해서 다른 앱에서도 원하는 방식으로 호출할 수 있을 것입니다. 예를 들어, 네이버에서 맛집을 찾다가 맛집 주소를 클릭하면 분명 네이버 앱 또는 사파리, 크롬 같은 브라우저 앱으로 쓰고 있었는데 스마트폰에 설치된 네이버 지도 앱이 켜지면서 해당 맛집 정보 결과를 보여주는 것을 떠올릴 수 있습니다. 

 

maps 스킴 호출
maps scheme 호출

 

maps 호출에 대한 결과
호출 결과 애플 지도앱이 켜지고 팔로알토가 보여진다.

 

같은 원리로 아래와 같이 mailto scheme을 사용해서 사용자의 이메일 애플리케이션을 열고 새 이메일을 작성하도록 할 수 있습니다. 이 URL을 호출하면 기본 메일 애플리케이션이 열리고 받는 사람 필드에 example@example.com 이 입력됩니다.

mailto:example@example.com

 

mailto 스킴 예시

 

mailto 스킴 결과

 

로그인 연동 예시)

조금 더 나아가서 A 애플리케이션과 B 애플리케이션이 URL scheme을 통해 로그인을 연동하는 작업을 가정해 보겠습니다. 로그인 연동은 보통 OAuth 같은 표준 인증 프로토콜을 사용합니다. 이 프로토콜은 URL 스킴과 쿼리 매개변수를 활용하여 작동합니다.

 

예를 들어, 애플리케이션 A에서 사용자가 로그인하면 애플리케이션 B도 로그인되는 시나리오를 생각해보겠습니다. 과정은 대략 아래와 같을 것입니다.

 

1. 애플리케이션 A에서 사용자가 로그인 버튼을 누릅니다.

 

2. 애플리케이션 A은 사용자를 인증 제공자의 웹 페이지로 리다이렉트합니다. 이때 URL scheme으로 보통 http(s)를 사용합니다. 이 URL의 쿼리 매개변수에는 애플리케이션 A의 정보와 사용자를 애플리케이션 A로 리다이렉트 하기 위한 정보가 포함되어 있습니다.

 

3. 사용자는 인증 제공자의 웹 페이지에서 자신의 로그인 정보를 입력하고 로그인을 완료합니다.

 

4. 인증 제공자는 사용자를 애플리케이션 A로 다시 리다이렉트합니다. 이때 사용된 URL scheme은 A의 고유 URL scheme이며, 이 URL의 쿼리 매개변수에는 A에서 사용자를 인증하기 위한 정보가 포함되어 있습니다. 일반적으로 이 정보는 액세스 토큰이나 인증 코드 등입니다.

 

5. 애플리케이션 A는 이 정보를 받아 사용자의 로그인 상태를 확인하고, 필요한 정보를 저장합니다.

 

6. 이후 애플리케이션 A에서 B를 호출할 때, 저장된 인증 정보를 사용하여 B에 사용자가 이미 인증되었다는 것을 알려줍니다. 이 정보는 일반적으로 B의 URL scheme을 호출할 때 쿼리 매개변수로 포함됩니다.

 

7. 애플리케이션 B는 이 정보를 받아 사용자의 로그인 상태를 확인하고, 필요한 정보를 저장합니다.

반응형

댓글

Designed by JB FACTORY