전자정부 표준프레임워크 시리즈 3화 – eGovFrame 아키텍처 한눈에 보기: 핵심 구조와 흐름 정리
전자정부 표준프레임워크의 아키텍처 구조와 핵심 흐름을 실무 관점에서 분석합니다. Controller부터 DAO까지의 요청 흐름, 공통 모듈의 역할, 트랜잭션 처리 방식 등을 정리합니다.
1. 왜 아키텍처 구조부터 이해해야 할까?
전자정부 표준프레임워크는 공공 시스템을 위한 정형화된 아키텍처 구조를 제공합니다.
이 구조를 정확히 이해하지 못하면,
- 샘플 프로젝트는 돌지만 실제 구현에서 오류가 발생하고
- 업무 모듈을 확장하거나 커스터마이징할 때 구조가 무너지고
- 인수인계나 유지보수 단계에서 치명적인 오류가 생깁니다.
프레임워크를 쓸 줄 아는 것과
프레임워크의 철학과 구조를 이해하고 설계할 수 있는 것은 다릅니다.
이번 화에서는 그 차이를 명확히 정리합니다.
2. 전체 구성 개요 – 5계층 구조
전자정부 표준프레임워크는 전통적인 5계층 구조를 따릅니다.
각 계층의 책임과 역할은 다음과 같습니다.
계층역할
Controller | 클라이언트 요청을 수신하고 서비스 호출 |
Service | 비즈니스 로직 처리, 트랜잭션 관리 |
DAO | 데이터베이스 접근 로직 처리 |
Model | VO, DTO 등 데이터 전달 객체 정의 |
View (JSP) | 사용자에게 결과를 출력 |
이 계층을 명확히 분리함으로써
- 재사용성
- 유지보수 용이성
- 테스트 가능성
- 을 확보할 수 있습니다.
3. 실제 요청 흐름
전자정부 프레임워크에서 클라이언트 요청이 처리되는 구조는 아래와 같습니다.
- 요청 발생:
- 사용자가 /mypage/selectList.do에 접근
- DispatcherServlet 동작:
- web.xml 또는 Spring 설정에 등록된 DispatcherServlet이 해당 URL을 분석
- HandlerMapping 설정:
- URL → @Controller 클래스의 특정 메서드로 매핑
- Controller 동작:
- 해당 메서드가 호출되어 Service를 통해 처리 로직 수행
- Service 내부 처리:
- 비즈니스 로직 실행, 필요 시 DAO 호출, 트랜잭션 처리
- DAO 동작:
- MyBatis 기반으로 DB 접근하여 결과 리턴
- ModelAndView 반환:
- 결과를 Model에 담아 View로 이동
- View 출력:
- JSP가 렌더링되어 사용자에게 응답
이러한 구조는 Spring MVC와 유사하지만, 전자정부 표준프레임워크는 특정 컴포넌트와 설정 구조를 강제하여 일관성을 보장합니다.
4. 공통 컴포넌트의 구조적 위치와 활용
전자정부 프레임워크에는 다음과 같은 공통 모듈이 내장되어 있습니다.
- EgovIdGnrService: ID 생성기 (시퀀스, UUID 등)
- EgovPropertyService: 공통 설정파일 관리
- EgovSessionCookieUtil: 세션 처리 유틸
- EgovFileMngService: 파일 업로드/다운로드 처리
- EgovMessageSource: 다국어 처리 및 메시지 관리
이 모듈들은 직접 구현하지 않아도 되며,
설정만으로 바로 연동 가능하게 설계되어 있습니다.
→ 예: 다국어 메시지는 message-ko.properties에 키만 정의해도 자동 반영됨
5. 트랜잭션 관리 방식
전자정부 프레임워크는 Spring의 @Transactional을 그대로 활용합니다.
그러나 전자정부 프레임워크에서는 아래와 같은 방식으로 명시적 트랜잭션 분리를 권장합니다.
- Service 계층에만 트랜잭션을 선언
- DAO는 트랜잭션의 대상이 아닌 단순 실행 단위로 유지
이 구조를 따르면,
- 로직 분리
- 예외처리 시 원자성 보장
- 서비스 단위 테스트 용이성
- 이 확보됩니다.
6. 실제 프로젝트 구조 예시
전자정부 프레임워크로 생성한 프로젝트의 디렉토리 구조는 다음과 같습니다.
src/
├── egovframework/
│ ├── com/
│ │ └── example/
│ │ ├── web/
│ │ ├── service/
│ │ ├── service/impl/
│ │ └── dao/
├── sqlmap/
│ └── example-mapper.xml
└── jsp/
└── example/
└── list.jsp
이 구조는 모든 공공 프로젝트에서 거의 동일하게 사용되며,
이로 인해 프로젝트 간 이관 시 학습 비용을 최소화할 수 있습니다.
7. 아키텍처의 실전 효용 – 표준화, 확장성, 감사 대응
이 구조는 단지 기술적인 편의가 아닌
감사 대응, 감리 문서화, 유지보수 계약 조건 충족을 위한 전략적 구조입니다.
- 각 계층이 분리되어 있어 로직 변경 이력이 명확함
- 트랜잭션 처리 범위가 문서화에 용이함
- 공통 모듈로 테스트 케이스 작성 및 증빙 자료 작성이 간편함
결론 – 전자정부 프레임워크의 구조는 ‘실전형 아키텍처’다
전자정부 표준프레임워크의 구조는 단순히 ‘MVC 기반’이라는 설명으로는 부족합니다.
이는 수많은 공공 프로젝트를 협력업체 간, 이관 담당자 간, 감리 담당자 간 일관되게 개발하고 운영하기 위한
규칙이자 전략입니다.
이 시리즈를 통해 구조를 정확히 이해하고,
실제 프로젝트에서 어디를 어떻게 확장해야 할지까지 판단할 수 있는 역량을 키우는 것이 목표입니다.
다음 화 예고
👉 전자정부 표준프레임워크 시리즈 4화 – 프로젝트 생성기 구조 분석: 자동 생성된 코드의 의미와 설계 철학