-
(1분 읽기) XML이란? 📚Android 개발/개념 & 기초 2025. 2. 26. 22:22
📌 XML이 뭐야?
XML (eXtensible Markup Language)
데이터를 저장하고 전송할 때 사용하는 마크업 언어야.
HTML처럼 태그를 사용하지만, 데이터 구조화와 정보 전달에 중점을 둔 언어지.
주로 문서 저장, 설정 파일, 데이터 교환에 사용돼.
💡 왜 XML을 쓸까?
- 데이터 구조화: 태그로 데이터 계층 구조를 표현할 수 있어.
- 확장성: 사용자가 원하는 태그를 자유롭게 정의할 수 있어.
- 호환성 최고: 다양한 시스템과 언어에서 쉽게 파싱할 수 있어.
- 문서형 데이터: HTML처럼 문서 저장에 강력해.
- 웹 서비스 표준: SOAP, RSS, SVG 등 다양한 웹 표준에서 사용돼.
🔧 XML 문법이 궁금해?
<?xml version="1.0" encoding="UTF-8"?> <도서목록> <도서> <제목>이것이 안드로이드다</제목> <저자>남궁성</저자> <가격>30000</가격> </도서> <도서> <제목>자바의 정석</제목> <저자>남궁성</저자> <가격>35000</가격> </도서> </도서목록>
- 태그로 데이터 구조를 표현해.
- 시작 태그와 종료 태그가 짝을 이뤄야 해. (<제목>, </제목>)
- 루트 엘리먼트가 하나 있어야 해. (여기선 <도서목록>)
- **속성(Attribute)**을 사용해 추가 정보를 저장할 수 있어. (<도서 가격="30000">)
📡 어디에 쓰냐고?
- 설정 파일
예: AndroidManifest.xml, pom.xml, web.xml - 데이터 교환
예: SOAP 웹 서비스, RSS 피드 - 문서 저장
예: Office 문서 형식(.docx, .xlsx), SVG 이미지 - UI 레이아웃
예: 안드로이드 activity_main.xml, fragment_home.xml
❓ JSON vs XML
항목 XML JSON 가독성 복잡하고 장황함 😵 간단하고 읽기 쉬움 😍 데이터 크기 태그가 많아 크기가 큼 🐢 태그 없이 간결해서 가벼움 🚀 파싱 속도 느림 빠름 주석 지원 미지원 😥 데이터 타입 문자열만 가능 문자열, 숫자, 불리언, 배열, 객체 사용처 문서 저장, 설정 파일, SOAP RESTful API, 실시간 데이터 교환
⚠️ XML의 단점은?
- 복잡한 문법 😵
태그가 많아 가독성이 떨어져.
유지보수가 어려울 수 있어. - 데이터 크기 큼 🐢
태그가 많아 데이터 크기가 커져 전송 속도 저하. - 파싱 속도 느림 ⌛
태그 구조를 해석해야 해서 파싱 속도가 느려. - 데이터 타입 제한 🔒
문자열만 저장 가능. 숫자, 배열, 객체는 표현이 번거로워. - 태그 중첩 😵
중첩된 구조는 가독성을 해치고, 코드 길이를 늘려.
🚀 요약 & 꿀팁
- XML은 데이터를 구조화하고 저장하는 마크업 언어야.
- 확장성이 좋아서 커스텀 태그 정의 가능!
- 설정 파일, 문서 저장, 데이터 교환에 많이 사용돼.
- 복잡한 문법, 데이터 크기, 느린 파싱 속도는 단점이야.
- RESTful API에선 JSON이 더 적합하지만, SOAP이나 문서형 데이터에선 여전히 XML이 강력해!
- 면접 꿀팁: 장단점과 사용처를 정확히 말하면 플러스 점수! 🎯
💡 추가 팁
- XML 데이터 검사할 때는 XMLLint 사용해봐.
- JSON보다 복잡하지만 여전히 설정 파일, 문서 저장에선 강력해! 🚀
'Android 개발 > 개념 & 기초' 카테고리의 다른 글
(1분 읽기) Kotlin Class vs Data Class의 생성자 완벽 비교 🚀 (0) 2025.03.02 (1분 읽기) JSON이란? 📚 (1) 2025.02.23 (1분 읽기) 안드로이드에서 도메인 모델과 데이터베이스 Entity 🤔 (0) 2025.02.18 (1분 읽기) Parcelable이 뭐야? 🤔 (2) 2025.02.17 (1분 읽기) Serializable이 뭐야? 🤔 (0) 2025.02.17