XML (eXtensible Markup Language) 이란?

원본: What Is XML Used For?

개발자라면 XML 이라는 용어가 무엇을 의미하는지, 어떻게 사용되는지 궁금할 것 입니다.

이 형식 자체는 프로그래밍 언어는 아니지만, 본인이 공부한 프로그래밍 언어에 상관없이 알아야 합니다.

이 포스트에서는 이것이 무엇인지, 왜 유용한 지, 정확히 어디에 사용되는지 알아 보겠습니다.

XML 이란?

XML 이란 eXtensible Markup Language의 약자로 확장 가능한 마크업 언어를 말합니다.

이는 저장된 데이터를 설명하는 언어로, 이러한 데이터를 “self-defining” 이라고 합니다. 왜냐하면 데이터 구조가 데이터 자체에 내장되어있기 때문입니다.

컴퓨터에서 접근할 수 있는 다양한 정보는 웹 브라우저, 모바일 애플리케이션, 데스크탑 응용프로그램에 표시된 결과 그대로 저장하지 않고 텍스트 기반 형식으로 저장합니다.

텍스트로 데이터를 저장할 때 표준 구조가 없으면 응용프로그램 간 공유가 어렵습니다. 예를 들어, 다른 응용프로그램에서 데이터를 읽으려면 추가 코드 등 사용자 정의 코드를 작성해야 합니다.

다음은 유효한 XML 데이터의 예 입니다.

xml 예제

위의 예제에서는 각각의 태그가 올바르게 데이터를 둘러싸고 있기 때문에 유효한 구조입니다. 이를 통해 데이터와 컨텍스트를 표준 구조로 저장할 수 있습니다.

XML 형식은 표준이므로 오류나 오해없이 모든 유형의 프로그래밍 언어와 응용프로그램에서 파싱할 수 있습니다.

XML 실제 사용

이는 구조와 함께 데이터를 저장하는 형식입니다. 이러한 특징을 활용해 데이터 전송, 문서 포맷, 레이아웃 생성 등 여러 부분에 유용하게 사용할 수 있습니다.

Data transfer

대부분의 응용프로그램은 데이터를 저장하고 검색해야 하는데, 이 부분에는 웹 서버 API (Application Programming Interface)를 사용합니다. 백엔드 엔지니어는 웹 서버에서 실행되는 API를 만듭니다.

여러 애플리케이션에서는 표준 데이터 형식을 통해 동일한 API로 데이터베이스에 데이터를 저장하고 액세스 할 수 있습니다.

이렇게 XML 형식으로 저장된 데이터를 여러 애플리케이션에서 파싱해 사용할 수 있습니다.

Formatting documents

웹 페이지는 HTML 문서로 표현하며 HTML은 XML 형식과 매우 유사합니다. HTML 파일을 웹 브라우저가 처리해 시각적으로 예쁜 화면을 제공합니다.

HTML 문서의 태그는 제목, 단락, 이미지 등과 같은 특정 유형의 요소를 정의합니다. 브라우저는 이러한 태그를 기반으로 요소를 렌더링합니다.

이는 또한 ID 및 클래스를 가지는 속성으로 데이터에 대한 문맥 정보를 저장합니다. CSS는 HTML과 협력하여 제목을 빨간색으로 만들거나 단락에 글꼴을 설정하는 등 특정 스타일을 적용합니다.

지금까지 설명한 예는 서식에 이 형식을 사용하는 한 가지 예일뿐입니다. PDF 파일, PostScript 파일, Microsoft Word 문서, PowerPoint 문서 및 RTF 텍스트 파일도 XML 형식으로 저장됩니다.

Web searching

검색 엔진은 수년에 걸쳐 진화했습니다. 원래는 웹 페이지에 원하는 문구가 포함되어 있는지 확인하는 정도만 했습니다. 하지만 이제 태그를 사용하여 보다 정확하게 검색을 합니다.

예를 들어 Mark Twain을 찾는다고 하면, HTML 페이지에서 <author> 태그를 파싱하여 해당 저자에 관련된 내용만 추릴 수 있습니다.

Creating layouts

안드로이드 애플리케이션의 모든 레이아웃은 XML 형식으로 생성됩니다. 이 레이아웃은 전화 화면 같은 부분에서 데이터를 렌더링할 위치를 결정합니다.

일반적인 안드로이드 레이아웃에는 Linear Layout이 있는데, 이 레이아웃은 화면의 컨텐츠를 수평 또는 수직으로 정렬하도록합니다.

또한 다른 레이아웃을 동적으로 포함하게 하는 Frame Layout, 목록을 보여주는 List Layout 등이 있습니다.

Storing configuration data

응용프로그램 속성의 구성에 이 형식을 사용할 수도 있습니다. Microsoft Excel에서는 스프레드 시트에 포함된 모든 정보를 가지도록합니다.

안드로이드 앱에서는 레이아웃 뿐만 아니라 색상, 스타일, 크기 등을 저장합니다.

XML 정리

이는 비교적 배우기 쉬운 간단한 언어입니다. 형식 자체를 공부할 수도 있지만 프로그래밍 언어와 함께 배우는게 훨씬 좋습니다.

XML 형식은 프론트 엔드 앱 개발에도 사용되고 웹 API를 통해 표준 형식으로 데이터를 전송하므로 백엔드 개발에도 사용됩니다.

안드로이드 앱에서는 레이아웃 구성에 크게 의존하고 있습니다.