2010/01/12

왜 그들은 JSTL/커스텀태그에 집착할까?

2 comment(s)

Java Web Application 을 구현하다 보면 항상 사람을 피곤하게 하는 부분이 HTML 쪽 처리이다. 어째서 JSTL/커스텀태그 만을 사용해야 하는지 납득할 수 없다.
기본 루프식도 마음에 안들고 if - (else if -) else 를 지원하지 않는 것도 마음에 들지 않지만(태그 구조상 지원할 수 없는 것이 당연하기는 하다) 파라메터가 있는 메소드를 사용할 수 없다는 점은 정말 최악이다. 이 것 때문에 서버 측 코드 설계까지 좋지 않은 영향을 미친다.

JSTL 에 맞추려고 서버 측 코드 설계를 제대로 할 수 없는 것은 핑계일지도 모른다. 그렇다고 그런 코드를 처리하기 위한 커스텀태그를 만드는 일도 좋지 않다.
단지 출력하는 부분을 처리하기 위해 커스텀태그를 만드는 것은 상당히 귀찮은 작업일 뿐만 아니라 배보다 배꼽이 커지는 작업이기도 하고, 이런 특수한 코드 - 보통 JSTL 로 처리할 수 없는 내용은 독특한 기능이 대부분이다 - 를 처리하기 위해 커스텀태그를 만드는 것 자체가 더 안 좋다. 코드와 커스텀태그가 항상 종합선물셋트로 묶여 같이 붙어다녀야 한다. 재사용성 최악이다. 단지 특수 코드를 억지로 태그 표현식으로 나타내기 위해 하는 커스텀태그 구현을 뭐하러 해야 할까? 그런 태그는 만들어 놓은 사람도 훗날 그 사용 방법을 기억해 내기가 쉽지 않다.
결국 재사용성 높은 태그로 처리하게 하려면 기본적인 Map/Set/List 자료형으로 구현해야 하는데 정작 그렇게 범용성을 부여하기가 쉬운 것도 아니고 막상 만들고 나면 그런 커스텀태그는 대체 어디에 어떻게 사용하기 위한 것인지 애매모호하게 되기 쉽다.

"매우 간단한" 목록형은 JSTL로 간결하게 표현할 수 있다. 그런데 이는 스크립틀릿도 마찬가지 아닌가? 오히려 복잡한 표현식은 스크립틀릿이 더 자유로울 뿐만 아니라 무엇을 하는 것인지 파악하기도 쉽다.
스크립틀릿을 쓰면 가독성이 떨어진다? 말도 되지 않는 소리이다. JSTL 을 쓴다고 가독성이 좋아지지 않는다. 애초에 쓸데없이 복잡하게 만든 HTML 페이지 디자인 자체가 문제다. 브라우저가 무슨 유화를 그리기 위한 캔버스도 아닌데 말이다.

2010/01/08

색인을 만들기 위한 한글 자소 단위 분해

0 comment(s)

프로젝트에 주어진 과제 중 책 찾아보기처럼 가나다 순으로 제목을 모아 놓아야 하는 기능이 필요하게 되었다. 영문이나 숫자는 그냥 첫 글자만 식별하면 되었는데, 한글인 경우 그렇게 단순하지가 않았다. '가', '거', '객' 등을 모두 'ㄱ' 이라는 대표문자로 묶어야 해서, 일단 한글인 경우 첫 글자를 초/중/(종) 으로 분해해서 초성으로 식별을 하는 방식을 사용했다.

source


test case