본문 바로가기
IT

전자정부 프레임워크 도입 기준

by 민쌍 2021. 1. 8.

Front-end

  1. 화면 구성 및 재사용성
    1. Views
      1. Router 사용 여부, URL에 따라 업무별 페이지 분류
      2. Page ↔ API URL 일치성 여부 + 오류 추적 가능
    2. Components
      1. 한번 만든 구성요소는 화면에 관계없이 재사용 가능한지
      2. Modal, Popup 인자 전달
    3. Store, Session, Cookie 등 사용 여부
      ex) 사용자 정보, 지점 정보, 권한 정보 등 전역에 걸쳐 유지되어야 할 부분들.
  2. axios, ajax 비동기 요청, 응답
    1. 페이지 새로고침 없이 데이터 요청 및 응답 가능 여부
  3. 기능 사용자화 가능 여부
    1. chart, Grid 등
    2. 대용량 파일 업로드

Back-end

프레임워크 기본

프로젝트 구조)

  1. 부모)코어 프로젝트 → 자식)모듈 프로젝트 구조

  2. 추상화 구조 적용 여부(전자정부 프레임워크 기준)

    • 전자정부 프레임워크를 사용했다는 기준

      eGovframework의 아키텍처는 크게 3개의 layer로 구성되어있다.
      1. Presentation Layer - Controller 단

      2. Business Layer - Service 단

      3. Data Access Layer - Dao or Mapper 단

        각 클래스별 전자정부 표준 프레임워크 아키텍처 적용 규칙은

        우선 Annotation 기반 Spring MVC를 준수해야 한다.

      Controller class

      Class 상단에 @Controller annotation 선언해야 함.

      ServiceImpl class

      Class 상단에 @Service annotation 선언 또한 AbstractServiceImpl 또는 EgovAbstractServiceImpl을 상속해야 하고 업무에 대한 특정 Service 인터페이스를 구현해야 한다.

      DAO/Mapper class

      DAO Class의 경우 @Repository annotation 선언 Mybatis Mapper Interface 방식을 이용하는 경우에는 @Mapper annotation을 선언해야 한다. 또한 EgovAbstractDAO(ibatis) 또는 EgocAbstractMapper(Mybatis)를 상속해야 한다.

      둘째로 데이터 처리 부분은 iBatis 또는 MyBatis를 활용해야한다.

      MyBatis 사용시 SqlSessionDaoSupport를 상속한 EgovAbstractMapper 활용해야한다.

      ※ MyBatis의 경우 Mapper interface 방식으로 사용 가능(권장) 하며, 이 경우는 interface 상에 @Mapper를 지정하여 사용되어야 한다.

      운영서버(WAS)의 웹어플리케이션 루트 디렉토리/WEB-INF/lib/ 폴더에 egovframework.rte로 시작하는 .jar 파일이 존재해야 하며 실제 소스코드에서 위의 .jar파일이 활용되고 있어야 한다. 예(import egovframework.rte)

      표준프레임워크 실행환경 준수 : 표준프레임워크 실행환경은 적극적으로 활용되어야 함 (실행환경 부분 임의 변경 금지)

      확장 규칙 : 업무 클래스는 egovframework.rte 패키지 내에 정의될 수 없음

      이외에 개발 환경, 운영환경 및 공통 컴포넌트 부분은 선택적으로 적용 가능하며, 임의 변경 및 확장 가능함

      UI 부분에 RIA(Rich Internet Appliation)가 적용되는 경우는 UI Adaptor 또는 RESTful 방식을 적용 활용해야 함

      • iBatis 사용시 SqlMapClientDaoSupport를 상속한 EgovAbstractDAO 활용해야하며
      • 상세 내용

        1. MVC 패턴을 준수하고(Controller에서 DAO를 호출하는 행위 없이)

        2. ServiceImpl

          • AbstractServiceImpl 또는 EgovAbstractServiceImpl(3.0버전 이상)을 상속/확장하고, 업무에 대한 특정
          • Service 인터페이스를 구현하여야 함
        3. DAO(Data Access Object)/Mapper 클래스

          • EgovAbstractDAO(iBatis) 또는 EgovAbstractMapper(MyBatis)를 상속/확장하여야 함
          • MyBatis Mapper Interface 방식의 경우, @Mapper 선언
          • Hibernate/JPA 혹은 Spring Data JPA 방식의 경우, 정해진 규칙 없음

          세부 질문

        4. 특정 라이브러리, 예를 들어 Validator를 apache commons validator -> hibernate validator로 변경하여 적용해도 적용기준을 충족했다 할 수 있는가?

        5. 전자정부 프레임워크 외 artifact를 import하는 과정에서 추이 의존성에 의해 전자정부 프레임워크에 포함된 artifact의 version이 높아지는 경우에도 적용기준을 충족했다 할 수 있는가?

        6. Spring framework의 버전이 제공되는 버전 이상으로 올라가는 경우에도 적용기준을 충족했다 할 수 있는가?

서버 추가 및 확장

필수)

  1. On-Premise 서버 1대당 동시 처리 가능 Client 수

  2. 서버 확장 방법 제시

    1. ex) 로드 밸런싱,
  3. 서버 요청 분할

    검토) Nginx / Apache Web Proxy Server

    요청 URI 에 따른 서비스 분리

우대)

  1. 서버 통합 관리, 운영 모니터링 Tool 제공 혹은 제시
  2. 향후 MSA 구성을 위한 서버간 API (HTTP 표준) 통신 방법 제시

SCM, 배포

필수)

  1. 소스 배포 및 Runtime 서버 적용시
    1. 결재 프로세스
    2. 자동 배포 방법 제시
    3. 메일, Push 알림 기능
  2. Gitlab ↔ Docker 연결 (GitLab 배포시 Docker 연계 배포)

우대)

  1. Docker 배포 시나리오 방법 제시
    1. 현재 단일 서버 구축으로 알고 있는데, 제안서에는 여러 서버에 배포하는 시나리오가 있음.
  2. 서버 시작, 종료, 재부팅
    1. 스케줄링
    2. 원격 제어

DB

필수)

  1. 기존 SQL Package, Procedure → WAS 실행 여부
  2. Mybatis 기반 → 배포된 후에도 SQL 오류 발생 가능성 있음. (SQL 오류는 컴파일 단계에서 확인 불가)

우대)

  1. 배포 전 SQL 오류 검증 방법 제시
  2. 양방향 대용량 파일 처리 (엑셀 파일 ↔ DB)

요청사항)

  1. Table 별 id 컬럼 필수 포함

Transaction

필수)

  1. Join 등 복잡한 SQL 처리 방법 제시
  2. 1개 메소드 내 여러 메소드 호출시 Rollback, Commit 일괄 적용 및 @Transactional
    ex) 1개 프로시저 내 여러 테이블에 대한 수정, 삽입시 Rollback, Commit 일괄 적용

우대)

  1. 조회시 Commit read 설정 등 조회 옵션 설정
  2. MSA

REST API

필수)

  1. URI는 정보의 자원을 표현해야 한다.
  2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

우대)

  1. 데이터 서버 분리 가능?
    1. API 방식 기반으로 웹 페이지가 아닌 앱, 윈도우 프로그램 등 기타 플랫폼에서 사용하기 위함.
  2. Framework 기능 점검표 (3) URI 에 따라 자원 요소의 CRUD Http 기본 메소드 사용 가능?
728x90
반응형

'IT' 카테고리의 다른 글

Docker #1  (0) 2021.02.28
전자정부 프레임워크 도입 기준 #2  (0) 2021.01.13
Vue CLI 3 삽질...  (0) 2020.12.31
구글 서버 에러  (0) 2020.12.14
프로그래밍의 시작은  (0) 2020.08.25