[eGovFramework] 표준프레임워크 개요
지금이야 애플리케이션 개발할 때 웹 개발 방식을 많이 사용하지만, 이전에는 exe파일을 배포하는 C/S 방식과 단말기를 통해서 서비스를 제공받는 메인프레임 방식으로 개발을 진행했었고, 그보다 더 이전에는 어셈블리언어를 통해 하드웨어를 개발했었다.
어셈블리 -> 절차지향 -> 객체지향 -> 프레임워크
사용하는 개발 도구의 흐름은 위와 같다.
공통되는 부분을 따로 빼고, 중복되는 부분을 쉽게 재사용 하기 위해 위와 같이 변화해왔고 그 결과 프레임워크가 도입됐다.
프레임워크는 애플리케이션 개발의 구조와 틀을 제공한다는 점에서 라이브러리와 다르다.
자동차에 비유하자면 라이브러리는 핸들, 엔진 등 특정 기능을 제공한다.
프레임워크는 자동차의 큰 틀을 제공한다.
컴포넌트는 자동차의 표준화 된 기능을 제공해 프레임워크가 가져다 사용한다.
Model2가 프레임워크가 제공하는 아키텍처이다.
이전에는 JSP에 비즈니스 로직, 화면 렌더링 등 모든 기능을 한 번에 처리했다면 Model2 에서는 각 관심사에 따라 Layer를 두고 처리한다. (변화에 유연하게 대응할 수 있다)
전자정부 표준프레임워크가 도입되기 전에는 국가정보시스템들이 특정업체의 프레임워크로만 구축되고 운영돼 중소기업은 사업을 따오지 못하는 경우가 많았다. (삼성 SYSTEMiER...)
표준프레임워크가 도입되면서 중소기업도 자기만의 프레임워크가 없다는 이유로 사업 입찰에 참여하지 못하는 일이 없어졌고, 로그인 / 로그 / 트랜잭션 등 여러 부가기능을 편리하게 사용할 수 있게 돼 개발자는 비즈니스 로직에 집중할 수 있게 됐다.
이 외에도 정보시스템을 하나의 프레임워크로 개발해서 정보시스템간의 유지보수를 편하게 할 수 있다는 장점을 가진다.
전자정부 표준프레임워크는 스프링 프레임워크를 기반으로 하고 전자정부사업에 특화된 몇 가지 기능을 추가로 제공한다.
스프링 레거시 뿐만 아니라 부트, JWT, Security, 모바일 등 스프링의 최신 기술들을 제공한다.
전반적인 개발은 스프링으로 개발하듯 하면 된다.
다른 점이 있다면 전자정부 프레임워크는 특정 기능을 구현할 때 EgovAbstract... 인터페이스 및 클래스를 상속받아서 구현하도록 해 개발의 큰 틀을 제공한다는 부분과, 웹 관련 여러 가지 템플릿들을 제공한다는 점이다.
개발에 일관성을 가져가 유지보수를 편하게 수행하는게 목적이다.
화면 처리 레이어 : Controller / View
업무 처리 레이어 : Service
데이터 처리 레이어 : Repository (영속 계층 덕분에 데이터 롤백이 가능)
배치 처리 레이어 : 대용량 데이터 처리를 위한 환경 제공