ݺߣ

ݺߣShare a Scribd company logo
ѫ정부Ӥ레ѫ크
    개선안


   2012. 3. 15
   아람하이텍
1. 테이블 이름 수정

 •   문제점 : 테이블이름에서 약어 사이를 구분자(‘_’)없이 사용
     (예, 일반회원관리테이블 => COMTNGNRLMBER)


 •   행정정보 데이테베이스 표준화지침(안) 제34조 4항
      (문서번호:eGOV-D01.023, 2008 11월 25일 제정)
     ; 둘 이상의 영문약어를 조합하여 사용하는 경우 언더 스코어(‘_’)를 사용


 •   개선안 : 테이블 이름의 영문 약자 사이에 ‘_’를 삽입
     (예, 일반회원관리테이블 => COMTN_GNRL_MBER)
2. VO 클래스 사용개선안
 •    VO(Value Object)클래스용도
     ; 객체간의 정보전달용, 주로 메소드 함수의 매개변수로 사용

 •    웹 프로그램에서의 검색 정보 유지 필요성
     ; 리스트화면의 검색/페이지정보는 상세화면/수정화면 조회 후에도 유지 필요
     ; 스프링의 폼바인딩 모듈 => 검색VO와 폼의 파라메터를 바인딩시켜 검색정보 유지

 •    문제점
     ; 여러 형태의 VO생성 => 함수 인터페이스 기준이 모호해짐
       (도메인VO, 검색VO, 도메인검색VO(도메인VO + 검색VO))
     ; 상세화면 조회 시 iBatis의 resultObject queryForObject(queryId, parameterObject)는
       도메인검색VO를 파라메터로 받아 새 도메인 검색VO를 돌려줌으로 인해 검색정보 소실.
     ; 따라서 도메인검색VO외에 검색VO를 별도 관리함으로써 혼란가중.


 •    개선안
     ; iBatis의 queryForObject(queryId, parameterObject, resultObject)함수 사용
     ; parameterObject와 resultObject를 같은 도메인검색VO를 사용함으로써 검색정보유지
     ; 스프링의 폼바인딩을 이용하면 웹 전체에서 하나의 도메인검색VO로 사용가능
     ; 전체소스가 간단해짐.
3. 보안코드개선
 •    스프링 시큐리티 모듈
     ; 인증 및 권한모듈로 구성
     ; 강력한 권한모듈기능 => 권한 모듈부터 시작(Acegi)
     ; 웹권한모듈, 메소드권한모듈, 도메인권한(ACL)모듈로 구성
     ; 권한모듈은 모두 AOP방식(웹=>스프링filterchain, 메소드=>스프링AOP, 도메인=>?)
     ; 웹 및 메소드 권한은 모두 롤(역할) 기반

 •    문제점
     ; 잘못된 롤 개념(롤 => 추상적 권한대상자이지 자원이 아님)
     ; 이중으로 로그인하면서 중간 스프링 시큐리티 접속 URL이 노출됨
       - 노출된 URL을 직접입력하여 접속하면 모든 권한 정보를 가져올 수 있어 더 치명적인
         결과를 초래할 수 있음.
     ; 권한관리를 웹필터링에만 의존함으로써 서버부담이 가중, 메소드권한으로 이전 필요
     ; 기타…

 •    개선안
     ; 현재 롤 개념수정 => 접근자원으로 정정
      ; 중간로그인을 리다이렉트가 아닌 필터 체인방식으로 변경
      ; 일반유저 및 관리자권한은 웹필터에서 수행하지 않고 메소드 권한에서 처리.
      ; 메소드권한은 메소드 권한 어노테이션으로 관리.

More Related Content

ѫ정부Ӥ레ѫ크개선안

  • 1. ѫ정부Ӥ레ѫ크 개선안 2012. 3. 15 아람하이텍
  • 2. 1. 테이블 이름 수정 • 문제점 : 테이블이름에서 약어 사이를 구분자(‘_’)없이 사용 (예, 일반회원관리테이블 => COMTNGNRLMBER) • 행정정보 데이테베이스 표준화지침(안) 제34조 4항 (문서번호:eGOV-D01.023, 2008 11월 25일 제정) ; 둘 이상의 영문약어를 조합하여 사용하는 경우 언더 스코어(‘_’)를 사용 • 개선안 : 테이블 이름의 영문 약자 사이에 ‘_’를 삽입 (예, 일반회원관리테이블 => COMTN_GNRL_MBER)
  • 3. 2. VO 클래스 사용개선안 • VO(Value Object)클래스용도 ; 객체간의 정보전달용, 주로 메소드 함수의 매개변수로 사용 • 웹 프로그램에서의 검색 정보 유지 필요성 ; 리스트화면의 검색/페이지정보는 상세화면/수정화면 조회 후에도 유지 필요 ; 스프링의 폼바인딩 모듈 => 검색VO와 폼의 파라메터를 바인딩시켜 검색정보 유지 • 문제점 ; 여러 형태의 VO생성 => 함수 인터페이스 기준이 모호해짐 (도메인VO, 검색VO, 도메인검색VO(도메인VO + 검색VO)) ; 상세화면 조회 시 iBatis의 resultObject queryForObject(queryId, parameterObject)는 도메인검색VO를 파라메터로 받아 새 도메인 검색VO를 돌려줌으로 인해 검색정보 소실. ; 따라서 도메인검색VO외에 검색VO를 별도 관리함으로써 혼란가중. • 개선안 ; iBatis의 queryForObject(queryId, parameterObject, resultObject)함수 사용 ; parameterObject와 resultObject를 같은 도메인검색VO를 사용함으로써 검색정보유지 ; 스프링의 폼바인딩을 이용하면 웹 전체에서 하나의 도메인검색VO로 사용가능 ; 전체소스가 간단해짐.
  • 4. 3. 보안코드개선 • 스프링 시큐리티 모듈 ; 인증 및 권한모듈로 구성 ; 강력한 권한모듈기능 => 권한 모듈부터 시작(Acegi) ; 웹권한모듈, 메소드권한모듈, 도메인권한(ACL)모듈로 구성 ; 권한모듈은 모두 AOP방식(웹=>스프링filterchain, 메소드=>스프링AOP, 도메인=>?) ; 웹 및 메소드 권한은 모두 롤(역할) 기반 • 문제점 ; 잘못된 롤 개념(롤 => 추상적 권한대상자이지 자원이 아님) ; 이중으로 로그인하면서 중간 스프링 시큐리티 접속 URL이 노출됨 - 노출된 URL을 직접입력하여 접속하면 모든 권한 정보를 가져올 수 있어 더 치명적인 결과를 초래할 수 있음. ; 권한관리를 웹필터링에만 의존함으로써 서버부담이 가중, 메소드권한으로 이전 필요 ; 기타… • 개선안 ; 현재 롤 개념수정 => 접근자원으로 정정 ; 중간로그인을 리다이렉트가 아닌 필터 체인방식으로 변경 ; 일반유저 및 관리자권한은 웹필터에서 수행하지 않고 메소드 권한에서 처리. ; 메소드권한은 메소드 권한 어노테이션으로 관리.