전자정부 프레임워크란 무엇인가요? 주니어 개발자를 위한 친절한 입문 가이드

전자정부 프레임워크란 무엇인가요? 주니어 개발자를 위한 친절한 입문 가이드 포스팅 대표 이미지
"전자정부 프레임워크 써보셨나요?"

 개발 공부를 열심히 해서 첫 회사에 입사했는데, 첫날부터 팀장님이 이런 말씀을 하십니다.

"우리 프로젝트 전자정부 프레임워크 기반이에요, 혹시 써보셨어요?"

Spring Boot도 겨우 익혔는데 전자정부 프레임워크라니, 처음 들어보는 분들도 많으실 겁니다. 하지만 걱정하지 않으셔도 됩니다. 전자정부 프레임워크는 생각보다 낯선 기술이 아닙니다. 이 글에서 주니어 개발자 눈높이에 맞춰 차근차근 설명해 드리겠습니다.


전자정부 프레임워크가 뭔가요?

한 줄로 정리하면

전자정부 프레임워크(eGovFrame)는 행정안전부가 주도하고 한국지능정보사회진흥원(NIA)이 관리하는 대한민국 공공 IT 사업 전용 표준 개발 프레임워크입니다.

쉽게 말해서, 정부나 공공기관이 발주하는 웹 시스템을 만들 때 "이 틀 안에서 개발하세요"라고 정해놓은 공식 개발 표준입니다.

왜 만들었을까요?

2000년대 초반까지만 해도 공공기관마다 제각각의 방식으로 시스템을 개발했습니다. A 기관은 이 회사 프레임워크, B 기관은 저 회사 프레임워크를 쓰다 보니 유지보수도 어렵고, 개발사가 바뀌면 처음부터 다시 파악해야 하는 문제가 반복됐습니다.

이런 비효율을 없애기 위해 2009년에 전자정부 프레임워크가 공식 출범했고, 이후 공공 프로젝트에서는 사실상 표준으로 자리 잡았습니다.

Spring Framework와 무슨 관계인가요?

전자정부 프레임워크는 Spring Framework를 기반으로 만들어졌습니다. 완전히 새로운 기술이 아니라, Spring 위에 공공사업에 필요한 공통 기능들을 미리 구현해서 얹어놓은 구조입니다.

Spring을 공부하셨다면 전자정부 프레임워크는 생각보다 빠르게 적응하실 수 있습니다.

전자정부 프레임워크가 뭔가요? 섹션 참조 일러스트


어떤 프로젝트에서 쓰이나요?

공공 SI 프로젝트의 필수 조건

행정안전부 지침에 따라 일정 규모 이상의 공공 정보화 사업은 전자정부 프레임워크 사용이 의무화되어 있습니다. 아래와 같은 프로젝트에서 거의 필수적으로 사용됩니다.

  • 중앙부처 및 지방자치단체 행정 시스템
  • 공공기관 민원 포털
  • 교육청, 병원, 공기업 내부 시스템
  • 국방, 경찰, 소방 관련 행정 플랫폼

중소 SI 개발사에서도 필수 역량

대형 IT 기업뿐만 아니라 공공 프로젝트를 수주하는 중소 SI 개발사에서도 전자정부 프레임워크 경험자를 우대하는 경우가 많습니다. 공공 분야에 진출하고 싶은 주니어 개발자라면 반드시 익혀두어야 할 기술입니다.

어떤 프로젝트에서 쓰이나요? 섹션 참조 일러스트


전자정부 프레임워크, 어떤 구조로 되어 있나요?

4개의 핵심 레이어

전자정부 프레임워크는 크게 4개의 레이어로 구성되어 있습니다.

실행환경(Runtime Environment) 실제 애플리케이션이 동작하는 핵심 영역입니다. 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리 등 개발자가 가장 많이 다루는 부분입니다.

개발환경(Development Environment) Eclipse 기반의 개발 도구(eGovFrame IDE)를 제공합니다. 코드 생성, 템플릿, 테스트 도구 등이 포함되어 있어 개발 생산성을 높여줍니다.

운영환경(Management Environment) 시스템 모니터링, 배포, 로그 관리 등 운영 측면을 지원합니다.

공통컴포넌트(Common Component) 로그인, 게시판, 코드관리, 파일업로드 등 공공 시스템에서 공통적으로 필요한 기능들을 미리 만들어 제공합니다. 처음부터 개발할 필요 없이 가져다 쓸 수 있습니다.

전자정부 프레임워크, 어떤 구조로 되어 있나요? 섹션 참조 일러스트


주니어 개발자라면 무엇부터 공부해야 할까요?

1단계 – Spring Framework 기초 다지기

전자정부 프레임워크의 뿌리는 Spring입니다. IoC/DI, MVC 패턴, AOP의 개념을 먼저 확실히 이해하시는 것이 가장 중요합니다. Spring을 모르고 전자정부 프레임워크부터 배우면 구조를 이해하기 어렵습니다.

2단계 – MyBatis 익히기

전자정부 프레임워크에서는 데이터베이스 연동에 MyBatis를 주로 사용합니다. JPA보다 SQL을 직접 다루는 방식이라 처음에는 익숙하지 않을 수 있지만, XML에 SQL을 작성하고 Mapper 인터페이스와 연결하는 패턴을 익히면 금방 적응하실 수 있습니다.

3단계 – eGovFrame IDE 설치 및 환경 설정

공식 홈페이지(www.egovframe.go.kr) eGovFrame IDE를 무료로 다운로드할 수 있습니다. Eclipse 기반이라 이클립스를 써보신 분들은 크게 낯설지 않으실 겁니다. 설치 후 샘플 프로젝트를 직접 실행해 보는 것이 가장 빠른 적응 방법입니다.

4단계 – 표준 프로젝트 구조 파악하기

전자정부 프레임워크 프로젝트는 정해진 패키지 구조와 네이밍 규칙을 따릅니다. 공식 사이트에서 제공하는 샘플 프로젝트를 열어보고 Controller, Service, ServiceImpl, DAO, Mapper, VO 구조가 어떻게 연결되는지 흐름을 파악하세요.

5단계 – 공통컴포넌트 활용해 보기

로그인 처리, 게시판, 파일업로드 같은 공통컴포넌트를 직접 프로젝트에 적용해 보세요. 실제 공공 프로젝트에서 그대로 쓰이는 코드들이라 실무 감각을 익히는 데 큰 도움이 됩니다.

주니어 개발자라면 무엇부터 공부해야 할까요? 섹션 참조 일러스트


맛보기로 알아두면 좋은 핵심 개념들

MVC 패턴 흐름

전자정부 프레임워크의 요청 처리 흐름은 아래와 같습니다.

사용자 요청 → DispatcherServlet → Controller → Service → ServiceImpl → DAO → DB → 다시 역순으로 응답 반환

이 흐름을 머릿속에 그릴 수 있으면 코드를 읽는 속도가 확연히 빨라집니다.

globals.properties

전자정부 프레임워크 프로젝트에서는 DB 접속 정보, 파일 업로드 경로, 공통 설정값 등을 globals.properties 파일에서 관리합니다. 프로젝트를 처음 받으면 이 파일부터 확인하는 습관을 들이시면 좋습니다.

EgovAbstractServiceImpl

공통 서비스 추상 클래스입니다. 모든 ServiceImpl 클래스는 이 클래스를 상속받아 구현합니다. 로그 처리나 예외 처리 공통 기능이 내장되어 있습니다.

@LoockupCache, @Cache 어노테이션

전자정부 프레임워크에서 제공하는 캐시 처리 어노테이션입니다. 자주 조회되는 공통 코드 데이터를 캐싱할 때 사용합니다.

맛보기로 알아두면 좋은 핵심 개념들 섹션 참조 일러스트


공부할 때 참고하면 좋은 자료들

공식 사이트를 적극 활용하세요

전자정부 프레임워크 공식 포털(www.egovframe.go.kr)가이드 문서, 튜토리얼, 동영상 강의, 샘플 프로젝트가 모두 무료로 공개되어 있습니다. 생각보다 자료가 풍부하니 공식 문서를 먼저 보시는 것을 추천드립니다.

기술 커뮤니티도 적극 활용하세요

전자정부 프레임워크 관련 질문은 공식 포털의 커뮤니티 게시판, 국내 개발자 커뮤니티(okky.kr), 기술 블로그에서 많은 사례를 찾아보실 수 있습니다. 에러 메시지로 검색하면 비슷한 문제를 겪은 선배 개발자들의 해결 사례가 많이 나옵니다.

즐겁게 코딩하는 개발자 일러스트레이션


마치며: 어렵지 않습니다, 익숙해지면 됩니다

전자정부 프레임워크는 처음 이름만 들으면 거창하게 느껴지지만, Spring을 알고 MyBatis를 다룰 줄 안다면 구조 자체가 크게 낯설지 않습니다. 공공 프로젝트 특유의 규칙과 컨벤션에 익숙해지는 데 시간이 조금 걸릴 뿐, 기본기가 있다면 충분히 빠르게 적응하실 수 있습니다.

공공 분야 개발에 관심이 있다면 지금 당장 공식 사이트에서 eGovFrame IDE를 다운로드하고 샘플 프로젝트 하나를 실행해 보세요. 백 번 읽는 것보다 한 번 직접 돌려보는 것이 훨씬 빠른 이해로 이어집니다.

댓글