'스프링4 코딩공작소' 라는 책으로 스프링에 대해 공부중에 있는데 src/main/resources 이하의 폴더인 META-INF에 대해 갑자기 궁금증이 생겨 찾아보았다. (평상시에는 아무 신경을 쓰지 않고 있었다...)


일단 현재 공부하고 있는 교재에서는 DB의 데이터 및 스키마 생성을 위한 SQL파일과 각종 프로퍼티 파일 그리고 빈 설정을 위한 XML 파일 등을 위치시키고 있다.


찾아본 결과 META-INF 폴더는 manifest 파일을 담는 폴더로 활용되며 manifest 파일이란 일종의 jar 파일의 사용매뉴얼이나 스펙을 가지고 있는 사용설명서와 비슷한 개념이라고 한다. 

예를들면, 실행되는 main 함수가 어떤 class에 위치하고 있는지, 프로그램의 보안정책이 어떻게 되는지, sealing 정보 등을 담고 있다고 한다.


즉, META-INF 폴더는 자바 패키징 기술인 jar의 일부분이라고 할 수 있다. 그럼 jar는 무엇일까? jar는 기본적으로 zip파일과 파일 포맷이 동일하지만 zip외에 부가적인 규약이 정해져 있고, 그 중 하나가 META-INF 디렉터리 이다.


교재에서 XML같은 설정 파일을 META-INF에 두는 이유는 해당 어플리케이션을 war가 아닌 jar로 패키징 해서 배포할 수 있기 때문이다.


정리하면,

- META-INF 폴더는 jar파일 생성시 일종의 사용설명서인 manifest 파일을 담기위한 디렉터리이다.

- 스프링 프로젝트에서는 해당 프로젝트를 jar로 패키징해서 배포할 수 있으므로 프로젝트와 관련된 설정파일을 META-INF 폴더 밑에 두고있다.


'개발 > 기타' 카테고리의 다른 글

LastModified 헤더를 이용한 파일변경 체크  (0) 2020.12.06
Maven 기본  (0) 2019.11.12
UTC, GMT, Epoch Time  (0) 2019.10.11
Ajax에 관하여  (0) 2018.12.13
TCP/IP  (0) 2017.08.01

+ Recent posts