개발/기타

NameSpace란

Hide 2024. 11. 24. 14:32

Namespace란?

 

우선 Namespace란 마크업 언어들을 구분하기 위해 만들어졌다.

 

HTML, WML 등등 마크업 언어들은 단일화된 표현 방법을 사용하는데, XML은 다수의 마크업 언어로 작성 가능하다.

 

<?xml version="1.0" encoding="euc-kr">

<데이터>

  <내용>KKKK</내용>

</데이터>


<?xml version="1.0" encoding="euc-kr">

<데이터>

  <제목>안녕하세요</제목>

</데이터>

 

위 두가지 코드가 있을 때, 두개를 같이 병합한다고 생각해보면, <데이터> 가 중복한 이름을 가지게 되고, 데이터를 구분해서 파싱하기 어려워진다. 어떤 정보가 원하는 정보인지 찾을 수 없으니 해당 문제를 해결하기 위해 namespace를 사용하는 것이다. 

 

namespace가 왜 존재하는지에 대한 답은 각 element 간의 충돌을 방지하기 위해서이다.

 

위와 같은 충돌을 방지하기 위해 W3C의 권고안으로 표준화되었다.

 

XML에서 해당 Namespace를 결정짓는 이름으로 URL 사용을 많이 한다. 도메인은 세계에서 유일하게 보장해주는 값이기 때문이다.

 

namespace를 사용한 XML 은 다음과 같다.

 

<?xml version="1.0" encoding="euc-kr">

<네임스페이스 xmlns:내용데이터="http://kkk/kkkk" xmlns:제목데이터="http://zzzz/zzzz">

<내용데이터:데이터>

  <내용>KKKK</내용>

</내용데이터:데이터>


<?xml version="1.0" encoding="euc-kr">

<제목데이터:데이터>

  <제목>안녕하세요</제목>

</제목데이터:데이터>

</네임스페이스

 

namespace를 사용하여, 동일한 데이터를 구분할 수 있게 되었다.

 

오늘은 namespace에 대해 알아보았다.