'역할 분리'에 해당되는 글 5

  1. 2009.08.09 인증정보 노출
  2. 2009.06.08 테이블 깨짐 방지
  3. 2009.05.01 특정 경로를 통해서 접근하는 경우의 화면 처리
  4. 2009.04.02 View 계층을 효율적으로 개발하기 위한 방안
  5. 2009.02.24 JSTL 제약사항 - 상수

인증정보 노출

인증정보(사용자 아이디, 부서코드, 권한 등)를 쿠키나 세션에 저장한다.
쿠키에 저장하는 경우 조작이 가능하므로 암호화 처리가 필요하다.

중간에 정보를 가로채어서 조작이 가능하므로 최초 로그인시 아이피를 저장해 두었다가 비교하는 것도 필요하다.

이러한 작업을 필터나 컨트롤러, 공통 커맨드 등에서 처리해서 개발자가 코딩시에는 비지니스 로직에 집중하도록 할 필요가 있다.

- 세션 사용시
아이디, 아이피 --> 필터에서 아이피 점검 --> Request 에 저장

- 쿠키 사용시
아이디+아이피 --> 암호화 --> 필터에서 복호화, 아이피 점검, User 객체로 처리해서 Request 에 저장


테이블 깨짐 방지

글자가 너무 길거나 내용이 많아서 화면이 깨지는 경우가 있다.
서버나 클라이언트 스크립트를 이용해서 내용을 줄이는 방법을 사용하는데
화면단에서 처리하는 방법을 적어 본다.
  1. table-layout:fixed
  2. overflow:hidden
  3. nowrap -or- nobr

text-overflow는 IE에서만 사용가능
text-overflow:ellipsis 는 내용이 길어지면 ... 표시를 보여준다.

(Xenocode의 브라우저로 테스트함, FF3, IE8, IE6, Safari3, Opera9)

특정 경로를 통해서 접근하는 경우의 화면 처리

특정 경로를 통해서 들어오는 경우 브라우저 위치를 지정해 준다.

- 요청을 처음 처리하는 컨트롤러에서 특정 경로를 통해서 들어오는 경우를 찾아서 적절한 값을 넘겨 받을 수도 있다.
그러나 뷰에 대한 처리를 정의하는 것이므로 화면단에서 처리하는 것이 적절하다.

View 계층을 효율적으로 개발하기 위한 방안

- 최대한 로직을 작게 가져간다.
비지니스로직은 서비스에서 처리.
뷰에서는 단순 출력만 하면 되도록 하는게 어렵다.

- 컴포넌트화 시킨다.
복잡해질 수 있는 부분을 태그라이브러리나 별도의 유틸리티로 분리한다.
개발 초기보다는 개발후 리팩토링을 진행하면서 점진적으로 분리하는 것도 좋겠다.

-
JSP 는 컴파일을 해서 에러를 잡는다.
뿐만 아니라 테스트를 자동화할 수 있는 방법이 필요함.

JSTL 제약사항 - 상수

간단하지만 편리한 기능때문에 JSP에서 JSTL 사용을 적극 권장하고 있다.
그러나 JSTL은 Java Bean에만 접근이 가능하고, 인자없는 getter만 사용가능하다.
상수를 참조할수도 없다.
Constants.TYPE_ADMIN 이라는 상수가 있는데 참조할 수가 없다.
그래서 하드코딩을 해야 한다.

- 그래서 isAdmin()을 추가한다.
- JSTL 구문에서 상수를 직접 사용할수 있도록 하자.

- 설계시점에 고려를 해서 뷰레이어가 단순해지도록 해야 한다.
뷰레이어에 Java코드를 사용하거나 상수를 사용하지 않는 것이 좋다.