한국어
  • XML
  • HTML
  • SAML
  • 데이터 전송

XML이란 무엇인가?

XML은 데이터를 구조화하고 전송하기 위한 다용도 마크업 언어입니다. 사용자 정의 가능한 태그, 계층적 구조, 스키마 정의를 특징으로 합니다. HTML과 달리, XML은 표시보다는 데이터 표현에 중점을 둡니다. Logto의 SAML 구현과 같은 SSO 구성을 포함하여 다양한 애플리케이션에서 널리 사용됩니다.

Darcy Ye
Darcy Ye
Developer

확장 가능한 마크업 언어 (XML)는 데이터 파일의 텍스트가 어떻게 구조화되고, 저장되고, 전송되어야 하는지를 나타내기 위해 태그를 사용합니다. XML은 인간과 기계 모두 읽을 수 있도록 설계되었기 때문에 강력하고 매우 커스터마이즈 가능한 마크업 도구입니다.

XML은 1996년 월드 와이드 웹 컨소시엄 (W3C)에 의해 생성되었습니다. W3C의 목표는 문서 유형을 정의할 수 있는 언어를 만들고 사용자 정의 태그를 생성할 수 있는 기능을 제공하는 것이었습니다. 만들어진 마크업 언어 유형은 페이지의 데이터가 다른 시스템과 XML 파일로 공유되기 전에 어떻게 마크업되는지를 정의할 수 있게 합니다. 두 시스템이 같은 XML 언어(해석할 수 있는 태그)를 사용할 경우, 두 시스템 모두 XML 파일 형식을 "이해"할 수 있습니다. XML이 제대로 배포되면, 데이터 파일이 저장되고, 전송된 후 액세스될 때마다 동일한 데이터와 구조를 정확히 재현할 수 있습니다.

XML 콘텐츠 예제

XML 데이터는 디지털 파일 내의 텍스트로 구성됩니다. HTML과 유사하게, 텍스트가 어떻게 해석되어야 하는지를 나타내기 위해 태그를 삽입하여 XML 파일의 필요한 "코드"를 만듭니다. 예를 들어:

이 예제는 세 명의 사용자를 보여줍니다. XML 콘텐츠에는 이름, 사용자 이름, 이메일, 사용자 수준이 포함되어 있습니다.

이것은 ID 공급자와 자원 공급자 간에 공유하고 읽을 수 있는 XML 문서를 생성합니다.

중요하게도, 위 예제는 XML 문서의 계층적 특성을 보여줍니다. 예를 들어:

  • 첫 번째 줄의 내용 <?xml version="1.0" encoding="UTF-8"?>은 XML 선언이며, 버전과 인코딩을 지정합니다
  • XML 문서에는 루트 요소가 반드시 있어야 하며, 이 예에서는 <users>가 그 루트 요소입니다
  • 루트 요소에 포함된 모든 다른 요소들은 "자식 요소"라고 불립니다
  • 위의 예제에서는 <user> 태그로 표시된 3개의 자식 요소가 있습니다
  • <user> 자식 요소 내에는 <name>, <username>, <email>, <level>과 같은 몇 가지 다른 자식 요소가 있습니다
  • <user> 태그에는 id라는 XML 속성이 있습니다. 요소는 동일한 이름으로 여러 속성을 가질 수 없습니다

사용된 태그는 각 데이터 유형이 무엇인지 보여주며, 일반 텍스트가 데이터 자체로 작용합니다. 콘텐츠가 들여쓰기 된 것도 주목하십시오. 이것은 시스템이 XML 파일을 처리하는 데 도움이 되는 것이 아니라, 인간이 XML 파일과 그 계층적 순서를 더 쉽게 찾고 오류나 누락을 해결할 수 있도록 돕기 위한 것입니다.

XML 스키마란 무엇입니까?

스키마는 XML 문서에 대한 "정의" 역할을 합니다. 즉, XML 파일 구조, 콘텐츠 및 데이터 타입의 상호작용을 제어하는 주요 규칙과 제한 사항을 설명합니다. 이는 데이터 무결성을 항상 보호하여, 다른 애플리케이션이나 시스템 간에도 이를 보장합니다.

주요 스키마 언어는 문서 유형 정의(DTD)와 XML 스키마 정의(XSD)입니다. XSD는 풍부한 기능 세트와 강력한 데이터 타입 기능 등으로 인해 XML 문서에서 가장 일반적으로 사용되는 언어입니다.

XML 구문이란 무엇입니까?

XSD와 같은 XML 스키마가 XML 문서의 유효성을 보장하기 위한 세부 명세에 관한 것이라면, XML 구문은 XML 파일의 전체 구조를 지배하고 제어하는 규칙 세트를 제공합니다. 예를 들어, XML 구문은 자체 닫힘 요소(추가 콘텐츠가 필요 없는 단일 정보) 또는 XML 선언(문서의 시작 부분에서 문자 인코딩과 같은 주요 정보를 설명하는 데 사용됨)과 같은 텍스트 콘텐츠, 문서에 사용된 XML 버전 등을 다룰 수 있습니다.

XML 대 HTML

HTML에 익숙하다면 XML 파일이 마크업을 배포하는 방식이 매우 친숙하게 느껴질 것입니다. 그러나 이 두 마크업 언어 간에는 중요한 차이가 있습니다. 그들은 사용 사례와 목적이 다릅니다:

  • HTML은 콘텐츠를 화면에 표시하는 방법을 브라우저가 이해할 수 있도록 돕는 마크업 언어입니다
  • XML은 데이터를 저장, 표시 및 전송하는 데 사용되는 마크업 언어입니다

이 외에도 몇 가지 다른 차이점이 있습니다:

  1. HTML은 브라우저용 페이지 콘텐츠 렌더링을 위해 사전 정의된 태그 타입을 가지며, XML 태그는 실제 상황에 따라 사용자 정의할 수 있습니다
  2. HTML은 콘텐츠를 표시하는 데 사용되므로 흔히 정적입니다; XML은 데이터를 전송하는 데 사용되므로 동적입니다
  3. HTML은 네임스페이스를 지원하지 않지만, XML은 네임스페이스를 사용하여 동일한 이름을 가질 수 있지만 다른 컨텍스트를 가진 태그를 구별하여 혼동을 피할 수 있습니다

이 예제에서:

  • tech:title<http://www.example.com/tech>를 네임스페이스로 사용하여, 이 <title> 요소가 tech 네임스페이스에 속합을 나타냅니다
  • bio:author<http://www.example.com/bio>를 네임스페이스로 사용하여, 이 <author> 요소가 bio 네임스페이스에 속함을 나타냅니다

XML은 Logto에서 어떻게 사용됩니까?

Logto는 SSO를 위해 SAML 프로토콜을 지원합니다. SSO를 구성할 때, ID 공급자는 인증서나 SSO URL과 같은 중요한 구성을 포함하는 XML 형식의 구성 파일을 제공합니다.

SAML SSO를 구성할 때, Logto는 ID 공급자로부터 얻은 XML 구성 파일을 직접 업로드할 수 있도록 하여 각 구성 항목을 수작업으로 채울 필요를 없앱니다.