[Java Spring] XML과 어노테이션
*이 글의 내용은 제가 이해한 것을 바탕으로 작성되었습니다. 글의 내용 중 잘못된 내용이 있다면 댓글로 피드백 해주시면 감사하겠습니다.
0. 개요
Spring을 공부하면서 어노테이션이라 불리는 @를 많이 사용했는데 정작 저게 어떤 것이고, 어떤 원리로 사용되는 건지 몰랐다.
그리고 스프링부트가 나오기 전엔 XML 파일을 이용하여 스프링의 설정을 직접 다듬었다는 이야기를 많이 들었는데, 마찬가지로 XML이 무엇인지도 몰랐다.
Bean과 스프링 컨테이너를 공부하면서 XML과 어노테이션이 살짝 헷갈리기 시작하였고, 그래서 자세히 이해하고자 이 글을 작성하였다.
1. XML
XML의 정의
XML(eXtensible Markup Language)은 W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다.
마크업 언어는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다.
태그는 원래 텍스트와는 별도로 원고의 교정부호와 주석을 표현하기 위한 것이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 되었다. 이러한 태그 방법의 체계를 마크업 언어라 한다.
일반적으로 데이터를 기술하는 정도로만 사용되기에 프로그래밍 언어와는 구별된다.
- 출처: 위키백과
Spring에서의 XML
Spring 내부의 XML 파일을 통해 각종 설정을 진행할 수 있다. 어떤 Bean을 만들지 설정하거나 어떤 외부 라이브러리들을 사용할지 등을 설정할 수 있다.
자세한 설정 방법과 내용은 이 글에서는 생략한다.
2. 어노테이션(Annotation)
자바의 어노테이션은 소스 코드에 추가해서 사용할 수 있는 메타 데이터의 일종이다. 메타 데이터란 애플리케이션이 처리해야 할 데이터가 아니라 컴파일 과정과 실행 과정에서 코드를 어떻게 처리해야 하는지를 '자바에게' 알려주기 위한 추가 정보다.
자바의 어노테이션은 보통 '@' 기호를 앞에 붙여서 사용한다. JDK 1.5 버전 이상에서부터 사용이 가능하며, 자바 어노테이션은 클래스 파일에 임베드되어 컴파일러에 의해 생성된 이후 JVM에 포함되어 동작한다.