티스토리 뷰

네, 아주 날카로운 질문입니다! 결론부터 말씀드리면 **전자정부프레임워크(eGovFrame)**의 구 버전이나 전통적인 Spring Legacy 프로젝트에는 @SpringBootApplication과 main 메서드가 없습니다.

이유는 **"서버를 누가 먼저 실행하느냐"**의 차이 때문입니다. 이해하기 쉽게 비교해 드릴게요.


1. 스프링 부트 vs 전자정부프레임워크(Legacy)

구분 스프링 부트 (Spring Boot) 전자정부/Legacy (Spring MVC)
실행 주체 내장형: 자바(main)가 서버를 켬 외장형: 서버(Tomcat)가 자바를 켬
메인 메서드 있음 (public static void main) 없음
핵심 설정 @SpringBootApplication 어노테이션 web.xml 파일 (또는 Config 클래스)
배포 파일 .jar (자바 실행 파일) .war (웹 압축 파일)
Sheets로 내보내기

2. 왜 메인 메서드가 없나요?

전통적인 전자정부프레임워크 방식은 **WAS(Web Application Server)**라고 불리는 톰캣(Tomcat) 같은 별도의 소프트웨어가 주인공입니다.

  1. 톰캣 실행: 개발자가 톰캣 서버를 먼저 가동합니다.
  2. 설정 파일 읽기: 톰캣이 프로젝트 안에 있는 WEB-INF/web.xml 파일을 읽습니다.
  3. 스프링 구동: web.xml에 적힌 설정을 보고 그제야 스프링 컨테이너를 메모리에 올립니다.
  4. 객체 생성: 우리가 만든 @Controller, @Service 등을 이때 스캔해서 생성합니다.

즉, 서버가 이미 켜진 상태에서 내 코드가 그 위에 '탑승'하는 구조이기 때문에, 내가 직접 main 메서드를 써서 서버를 켤 필요가 없는 것이죠.


3. 대신 어디서 시작되나요? (핵심 파일)

전자정부프레임워크 프로젝트를 열어보시면 다음 파일들이 가장 중요합니다.

  • src/main/webapp/WEB-INF/web.xml: 프로젝트의 설계도입니다. 여기서 DispatcherServlet이 설정되어 요청을 기다립니다.
  • src/main/resources/egovframework/spring/context-*.xml: 스프링 부트의 자동 설정 대신, 여기서 DB 연결이나 서비스 스캔 설정을 일일이 적어둡니다.

4. 요즘 전자정부프레임워크는요?

최근에 나온 전자정부프레임워크 4.x 버전부터는 스프링 부트 기반을 지원합니다. 이 버전으로 프로젝트를 만들면 우리가 아는 @SpringBootApplication과 main 메서드가 생깁니다.

하지만 공공기관이나 기업에서 오랫동안 써온 3.x 버전 이하라면 99% 확률로 main 메서드 없이 web.xml과 XML 설정 파일들로 돌아가는 구조일 것입니다.


요약

"메인 메서드가 없다면, 톰캣(WAS)이 외부에서 나를 불러주는 수동적인 구조(Legacy)라고 이해하시면 됩니다."


※ 해당 내용은 Google Gmini3.0에서 작성되었습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함