티스토리 뷰
전자정부프레임워크(eGovFrame) 3.0 버전을 사용하고 계시는군요! 이 버전은 Spring Legacy 방식의 정석이라 할 수 있습니다.
스프링 부트(Boot)와는 사뭇 다른, 전통적인 구동 방식을 이해하시면 코드의 흐름이 한눈에 보이실 거예요. 3.0 버전의 핵심 특징과 구동 순서를 정리해 드립니다.
1. 3.0 버전의 핵심: "설계도는 XML에 있다"
스프링 부트가 "자동 설정"이라면, 전자정부 3.0은 **"수동 설정"**입니다. @SpringBootApplication 대신 아래의 파일들이 그 역할을 나눠서 수행합니다.
📂 WEB-INF/web.xml (프로젝트의 입구)
자바의 main 메서드 대신, 서버(Tomcat)가 켜질 때 이 파일을 가장 먼저 읽습니다.
- ContextLoaderListener: 비즈니스 로직(Service, DAO)을 담은 바구니를 만듭니다.
- DispatcherServlet: 웹 요청(Controller)을 처리할 바구니를 만듭니다.
📂 src/main/resources/egovframework/spring/ (설계도 뭉치)
이 폴더 안에 있는 XML 파일들이 프로젝트의 심장입니다.
- context-common.xml: 공통 설정 (컴포넌트 스캔 등)
- context-datasource.xml: DB 연결 정보 (ID, PW, URL)
- context-mapper.xml: **MyBatis(SqlSessionFactory)**와 XML 위치 설정
- context-transaction.xml: 트랜잭션 관리 설정
2. 전자정부 3.0의 구동 순서
서버의 "Start" 버튼을 누르면 다음과 같은 순서로 살아납니다.
- WAS(Tomcat) 구동: 서버가 먼저 켜집니다.
- web.xml 읽기: 서버가 프로젝트 내부의 web.xml을 찾아 읽습니다.
- Root Context 생성: context-*.xml 파일들을 읽어서 Service, DAO, DTO 객체들을 메모리에 올립니다. (이때 DB 연결도 테스트합니다.)
- Servlet Context 생성: 컨트롤러(@Controller) 객체들을 메모리에 올리고 URL 주소와 연결합니다.
- 준비 완료: 이제 로그에 Server startup in XXX ms가 뜨면 요청을 받을 수 있는 상태가 됩니다.
3. 왜 이렇게 파일이 많고 복잡한가요?
전자정부프레임워크는 대규모 공공사업을 위해 만들어졌습니다.
- 표준화: 어떤 개발자가 들어와도 context-datasource.xml만 보면 DB 설정을 알 수 있게 규격화한 것입니다.
- 유연성: 코드를 수정하고 다시 컴파일하지 않아도, XML 설정만 바꾸면 서버 동작을 변경할 수 있다는 장점이 (과거에는) 컸습니다.
4. 실전 팁: 코드 찾기
3.0 버전에서 흐름을 따라가고 싶다면 이렇게 해보세요.
- URL 확인: 내가 접속하려는 주소가 무엇인가? (예: /userList.do)
- Controller 찾기: @RequestMapping("/userList.do")가 붙은 자바 파일을 찾습니다.
- Service 호출 확인: 컨트롤러가 어떤 서비스를 호출하는지 봅니다.
- DAO/Mapper 확인: 서비스가 호출하는 DAO 메서드명을 확인합니다.
- XML 쿼리 확인: src/main/resources 하위의 XML 파일에서 id="메서드명"인 SQL을 찾습니다.
요약하자면
"전자정부 3.0은 메인 메서드가 없는 대신, 톰캣이 web.xml을 읽고 context-*.xml에 적힌 대로 객체들을 조립해서 실행하는 구조입니다."
혹시 프로젝트 폴더 내의 src/main/resources/egovframework/spring 폴더 안에 어떤 파일들이 있는지 확인해 보셨나요? 그 파일 목록을 보시면 제가 말씀드린 구조가 바로 보이실 거예요.
※ 해당 내용은 Google Gmini3.0에서 작성되었습니다.
'WEB > 자바' 카테고리의 다른 글
| 자바 코딩을 배우는 과정 4단계 (1) | 2026.03.25 |
|---|---|
| .do 를 제거하고 보여주는 경우에 특별한 이유가 있을까요? (0) | 2026.03.25 |
| @SpringBootApplication나 메인머서드 없을 수도 있나요? 전자정부프레임워크 입니다. (0) | 2026.03.25 |
| 어노테이션이 궁금합니다. (0) | 2026.03.25 |
| 스프링부트가 실행될때 어떤순서로 불러오는지 궁금합니다. (0) | 2026.03.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바스크립트countiue
- 증폭기 #아이피타임증폭기
- SQL명령어 #SQL
- // 사진직: 데이터가 없으면 DEFAULT_IMG 사용 const profileSrc = (d.img && d.img !== "") ? d.img : DEFAULT_IMG;('#user-photo').attr('src'
- echart
- 테스크탑무선랜카드 #무선랜카드 #아이피타이무선랜카드 #a3000mini #무선랜카드추천
- 정보처리기사 #정보처리기사요약 #정보처리기사요점정리
- iptime와이파이증폭기 #와이파이증폭기설치
- 좋은책
- 자바스크립트정규표현식
- 쇼팬하우어 #좋은책
- 파비콘사이즈
- 바지락칼국수 #월곡동칼국수 #칼국수맛집
- 썬크림 #닥터지썬크림 #내돈내산 #내돈내산썬크림 #썬크림추천 #spf50썬크림 #닥터지메디유브이울트라선
- 자바스크립트break
- 광주분식 #광주분식맛집 #상추튀김 #상추튀김맛집 #광주상추튀김
- css미디어쿼리 #미디어쿼리 #mediaquery
- 와이파이증폭기추천 #와이파이설치
- 좋은책 #밥프록터 #부의원리
- lg그램pro #lg그램 #노트북 #노트북추천 #lg노트북
- 무료폰트 #무료웹폰트 #한수원한돋움 #한수원한울림 #한울림체 #한돋움체
- sw기술자평균임금 #2025년 sw기술자 평균임금
- jQuery #jQuery이미지슬라이드 #이미지슬라이드
- ajax
- 탭메뉴자바스크립트
- jdk #jre
- thymeleaf
- 자바스크립트 #javascript #math
- 파비콘 #파비콘 사이트에 적용
- 연명의료결정제도 #사전연명의료의향서 #사전연명의료의향서등록기관 #광주사전연명의료의향서
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함

