12월 4일 전자정부 프레임워크 5.0 이 출시되었다. 옛날 개발자때 부터 항상 흘려들었던 내용은 ‘전자정부 프레임워크 기반’ 으로 했다라는 말을 들었었는데 이번에 5.0 으로 출시된 겸, 전자정부 프레임워크가 뭔지 알아볼 겸 해당 내용을 포스팅한다.

전자 정부 프레임워크란?
전자정부프레임워크(eGovFrame)는 대한민국의 전자정부 구현을 위해 개발된 오픈소스 기반의 소프트웨어 개발 프레임워크다.
프레임워크는 공공기관에서 소프트웨어 개발 시 표준화, 재사용성, 효율성, 품질 향상을 목표로 설계되었다.

전자정부 프레임워크의 빛과 어둠
표준 프레임워크 기반으로 개발을 하면서 개발자는 오직 비즈니스 로직에만 집중이 가능해진다. 이 말이 무슨 말이냐면 개발자는 준비된 판 위에서 로그인, 권한, 게시판 등 250여 종의 검증된 공통 컴포넌트를 조립하기만 하면 된다는 거다. 내가 굳이 만들필요 없이 서비스 로직만 새롭게 짜면된다. 또 이런 공통 컴포넌트를 사용하다보면 '코드 스타일'의 통일이 가능해진다.
전자정부 표준 프레임워크의 단점으로는 자바 공화국의 고착화가 되버렸다. 최신 IT 생태계는 Java 21을 논하고 가상 스레드를 활용하지만, 현재까지 전자정부 프레임워크는 4.x 버젼까지 JDK 1.8에 멈춰있다. 게다가 기존에 만들었던 컴포넌트를 재사용 하다 보니 개발자들이 원리를 모르고 '복사-붙여넣기'만 하는 관성적 개발만 하게 되는 단점이 있다.
프레임워크 5.0 도입으로 변화된점

1. 실행 환경의 현대화 (인프라 및 코어)
가장 큰 변화는 자바(Java) 17 이상을 필수 기본 사양으로 채택하고, 최신 스프링 생태계를 수용한다. (근데 17도 너무 늦은거 같다.)
- Java 17/21 지원: 기존의 Java 8/11 중심에서 벗어나 Java 17을 최소 사양으로, Java 21(LTS)을 권장 사양으로 지원한다.
- Spring Framework 6 & Spring Boot 3: 최신 스프링 6와 부트 3 기반으로 업그레이드되어 성능이 개선됬다.
- Jakarta EE 전환: 기존 javax.* 패키지 네임스페이스가 jakarta.*로 완전히 전환되었다. 기존 프로젝트 마이그레이션 시 가장 주의해야 할 기술적 변화다

2. AI 기술의 전격 도입 (AI-Ready Framework)
5.0 버전의 부제라고 할 수 있을 만큼 AI 관련 기능이 대거 추가되었다.
- Spring AI 및 LangChain4j 통합: 대규모 언어 모델(LLM) API를 손쉽게 호출하고 연동할 수 있도록 Spring AI와 LangChain4j 라이브러리가 정식 포함되었다.
- RAG(검색 증강 생성) 템플릿: 단순 챗봇을 넘어, 공공기관의 내부 문서를 학습시키지 않고도 AI가 참조하여 답변할 수 있는 RAG 아키텍처 예제가 표준 템플릿으로 제공된다.
- AI 코딩 에이전트 연동: Eclipse에서 GitHub Copilot이나 Gemini 같은 AI 코딩 보조 도구를 공식적으로 지원하여 코드 자동 생성 및 오류 수정을 돕는다.

3. 클라우드 네이티브 및 운영성 강화
클라우드 환경에서 시스템을 안정적으로 운영하기 위한 표준 기술들이 대거 도입
- Kubernetes & Istio 최적화: 컨테이너 오케스트레이션과 서비스 메시(Istio) 환경에서 서비스 간 통신과 배포를 원활하게 하는 설정들이 표준화되었다.다.
- OpenTelemetry 적용: 시스템의 성능을 실시간으로 추적(Tracing)하고 모니터링할 수 있는 글로벌 표준인 OpenTelemetry가 적용되어 observability(관측성)가 크게 향상됬다.
- GraalVM Native Image 지원: 애플리케이션 시작 속도를 획기적으로 높이고 메모리 사용량을 줄일 수 있는 네이티브 이미지 빌드 옵션이 강화됬다.

클라우드 부분은 잘 몰라서. 나중에 천천히 알아봐야겟다.
4. 개발 환경 및 모바일의 변화
- VS Code 확장 프로그램 제공: 기존 이클립스(Eclipse) 중심에서 벗어나, 많은 개발자가 사용하는 Visual Studio Code용 확장 프로그램이 새롭게 제공됩니다. 이제 VS Code에서도 표준프레임워크 프로젝트 생성 및 설정이 가능하다.
- Flutter 기반 모바일 프레임워크: 기존의 하이브리드 앱 방식에서 벗어나, 구글의 Flutter를 모바일 표준 기술로 채택하여 고성능 크로스 플랫폼 앱 개발을 지원한다.

나는 평소 React Native 로 모바일 크로스 플랫폼을 개발을 했었는데 이 부분이 이제 google Flutter로 확정되어서 아쉽다. 그래도 새롭게 배우고 즐겨야겠다는 생각이 든다.
5.0 변화로 인해 내가 가져야될 변화와 시선
→ Java 버젼 변화 : 백엔드 언어로 JAVA를 하는 나로서 꼭 알아야될 부분인거 같다. 버젼이 올라간 만큼 문법적인 변화도 있을 것이고, 이걸 활용하여 코드를 더 클린하게 작성하고 더 최적화를 할 수 있는 부분이 늘어나기 때문에 이런점을 꼭 잘 알아야될 거 같다.
→ flutter 확정 : flutter 로 확장되면서 front 전반적인 부분이 flutter로 가지 않을까 싶다. flutter가 단순히 앱만 지원하는게 아닌 웹도 지원하는 만큼 앞으로 필수적인 언어가 되지 않을까 싶다.
→ AI : 2025는 AI의 한해라고 해도 될 만큼 많은 AI 기술과 기능들이 출시 되었는데, 정부에서도 적극적으로 해당 내용을 받아들이걸로 생각된다. Spring AI에 대한 기능을 익혀 프로젝트에 원활하게 사용할 수 있을 정도로 배워야겟다.
참고자료
[https://www.youtube.com/watch?v=XQqLpBtzDp0]
'Tip' 카테고리의 다른 글
| Nextjs Snippets 익스텐션 추천! (1) | 2024.09.27 |
|---|---|
| 시간을 소중히 해주는 snippet 사용하기 (1) | 2024.05.04 |