회사를 다니며 Xml, Excel, Json, Csv 을 이용한 데이터 관리를 사용했었다.
이번에는 그 중 Xml에 대해 장점과 단점을 작성해보려고 한다.
Xml (eXtensible Markup Language)
확장가능한 마크업 언어
(마크업 언어 는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다)
뜻 그 자체로 확장가능한
Xml은 확장이 정말 편하다.
여러가지의 특징 중 정말 와닿게 느껴진 특징으로 2가지만 작성하자면
1. 작성 방법이 편하다
2. 데이터의 표현 방법이 자유로워 확장이 편리하다
예시)
<Items>
<Item ID="1">
<Name>아이템1</Name>
<Attack>10</Attack>
</Item>
</Items>
개발 초기단계에서 아이템1의 데이터를 작성할 경우
현재는 아이템의 이름(Name) 그리고 공격력 수치(Attack) 2개의 변수만 존재하지만
해당 데이터에 방어력 수치(Defense) 를 추가하고자 한다면
<Items>
<Item ID="1">
<Name>아이템1</Name>
<Attack>10</Attack>
<Defense>10</Defense>
</Item>
</Items>
<Defense>10</Defense> 라는 텍스트만 입력해주면 쉽게 추가가 완료된다.
또한 아이템1에는 존재하지 않지만 새로 추가될 아이템2에만 존재하는 데이터를 추가하고자 한다면
<Items>
<Item ID="1">
<Name>아이템1</Name>
<Attack>10</Attack>
<Defense>10</Defense>
</Item>
<Item ID="2">
<Name>아이템2</Name>
<MaxDurability>100</MaxDurability>
</Item>
</Items>
최대 내구도 (<MaxDurability>100</MaxDurability>) 라는 텍스트만 입력해주면 완료가 된다.
위와같이 편리한 작성법 그리고 뛰어난 확장성으로 인해 Xml을 통한 데이터 관리가 정말 편하다는 점을 깨닫게 되었다.
하지만
편하다고 하여 이게 장점으로만 판단하여선 안된다.
확장성이 뛰어나고 유연성이 뛰어나다는건
그만큼 해당 데이터를 메모리로 담고 있어야하는 객체의 크기가 커진다는 것이다.
아이템1에는 공격력과 방어력
아이템2에는 최대 내구도가 존재하지만
Item이라는 클래스는 공격력, 방어력, 최대 내구도에 대한 변수를 모두 들고있어야 할 것이다.
무분별하게 사용하다간 퍼포먼스가 떨어지는 상황이 벌어질 수 있다는 점이다.
꼭 추가해야 하는 변수만 추가하여 사용할 수 있도록 하자.
정리
XML의 장점
데이터의 확장 및 작성법이 편하다.
XML의 단점
확장이 편하다고 막무가내로 추가하면 성능이 떨어진다.
'프로그래밍 > ETC' 카테고리의 다른 글
IntelliJ - Grep Console 을 소개합니다 (0) | 2023.09.01 |
---|---|
SDK와 API의 차이는 무엇인가요? (0) | 2022.08.21 |
지금 너의 상태는 - FSM (유한기계상태) (0) | 2022.08.08 |
데이터 관리 - Excel (0) | 2022.08.07 |
내 눈이 편한 코딩용 Font (1) | 2020.05.21 |