공부 목적
- 회사에서 나의 팀이 SI 팀인데, 회사 선배가 전자정부프레임워크 4.1에 대해 클론 코딩 식이라도 공부를 해보라고 했다.
(근데.. 난 일단 JS랑 리액트부터...)
- 뭐, 내가 SI계에 남아있는 동안은 전자정부프레임워크 개발을 공부할 것이기는 하지만, 그래도 개념 정도라는 아는 차원에서 공부를 해보기로 했다.
전자정부프레임워크란?
정의
- 전자정부프레임워크 = 행정안전부 산하 한국정보화진흥원에서 만든 웹 기반 어플리케이션 프레임워크
- 정부 및 공공기관, 공기업 등의 웹사이트에 자주 쓰이는 공통 기능들을 Java의 Spring 프레임워크와 유명 Java 라이브러리(iBatis/MyBatis, Jackson, Apache Commons 등)를 가지고 미리 만들어 놓은 공통 컴포넌트와 이를 개발하는 개발환경, 실행환경, 운영환경, 관리환경 등으로 구성
프레임워크
- 우선, 프레임워크는 미리 구축된 기능과 아키텍처이다. Spring Framework처럼 말이다. 즉, 기존에 구축된 프레임워크를 기반으로 내가 만들고 싶은 것을 좀 더 쉽고 효율적으로 만들 수 있다.
- Spring Framework와 마찬가지로, 전자정부프레임워크도 동일하다.
- 공공사업에 적용되는 개발프레임워크의 표준 정립으로 응용 SW 표준화, 품질 및 재 사용성 향상을 목표로 전자정부프레임워크가 만들어졌다.
왜 사용할까?
- 공공기관을 위한 서비스 개발 시 사용하기 위해
- 즉, 정부발 프로젝트는 전자정부프레임워크를 표준으로 개발을 진행한다고 보면 된다.
전자정부프레임워크 장점 및 단점
장점
- 미리 만들어진 프레임워크를 기반으로 프로젝트를 개발하기 때문에, 보다 신뢰성 있는 코드를 작성할 수 있다.
- 개발하다 문제가 발생할 경우 기술 지원을 받을 수 있다.
- 유지보수 측면에서 좋다.
- 정부기관에서 관리하는 검증된 오픈 소스로 구성된 무료 프레임워크이다.
단점
- 공공사업에서는 거의 100% 전자정부프레임워크를 토대로 개발을 진행한다.
- 그러다보니, 최신 개발 기술 트렌드 반영 어려움
- 구조의 경직화
- 한국 SW 시장의 Java + Spring으로의 획일화
느낀점
전자정부프레임워크가 무엇인지 간략하게 알 수 있는 시간이었다.
개인적인 생각
현재, 팀에서 다른 회사가 만든 프레임워크를 기반으로 프로젝트를 만들고 있다. 이 프레임워크를 아직까지도 분석하고 있다. 이것에 대해 우리 회사가 넘겨 받은 문서가 적은 부분도 있다. 하지만, 우리가 남의 생각이나 사상을 이해할 때 어려운 점이 존재하듯, 지금 이 회사가 넘겨준 프레임워크를 짤 때 어떠한 생각과 사상을 바탕으로 구성했을지 분석하는 것은 쉽지 않은 일이다.
- 나중에 내가 전자정부프레임워크를 기반으로 실제 프로젝트를 진행할 지는 모르겠다. 그걸 떠나서, 추후에 개인적으로 전자정부프레임워크 개발을 할 거기는 한데.... 과연 이 사상을 잘 이해할 수 있을까...?
- 뭐, 표준이라고는 하는데 설명을 잘 해주는 영상이나 글이 있으면 모를까 왜지 없을 것 같은 느낌 ㅠㅠ
한국 개발의 아쉬움
- 전공생 시절부터 우리나라는 Java가 대세인 나라라고 들었다. 어렴풋이, 정부가 주관하는 프로젝트가 Java 환경으로 진행하다보니 자연적으로 Java가 대세가 됐다는 것을 들은 기억이 있다.
- 이번에 전자정부프레임워크를 공부하면서, 왜 우리나라에서는 Java 대세인지 알게 됐다.
- 어찌보면, 공통으로 참고할 수 있는 표준이 존재한다는 것은 좋은 일이다. 하지만, 그만큼 다양성이 부족하다는 점....
- 해외와 같은 경우, Python / Kotlin이 대세로 가는 추세이다. 만약, 해외에서도 Java가 대체 불가의 언어라면 다른 언어가 있어도 Java를 썼겠지....? 하지만, 그게 아니니까 Java의 인기가 사그러진 것....
- 이러한 측면을 보면 조금 아쉬운 것 같다. Java 기반이 아닌 다른 언어를 기반으로 한 전자정부프레임워크를 국가에서 만들어준다면, 우리나라의 개발 시장도 더 좋아지지 않을까 생각한다.
참고
https://velog.io/@jojo_devstory/Spring-%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%EB%9E%80