발생일: 2010.02.16 문제: 정확히 어디서부터 이 얘기가 시작되었는 지는 잘 모르겠다. 프렌드 홍과 스트럿츠의 복잡한 요청에 대한 ActionForm 구현에 대해 이야기하다가, 자연스럽게 관계형 DB 에서 지연 로딩 객체 구현에 대한 주제로 넘어가게 됐다. 일반적인 OR Mapping 툴에서 대부분 lazy loading 을 지원한다는데, (실제 사용해 본 적이 없어 정확히는 모르겠으나, iBatis 의 lazy loading 부분을 책에서 읽어봐 대충 감이 잡혀있긴 하다.) 얘네들은 아무래도 객체형 DB 에 적합할 것 같다는 생각이 들었다. 그럼 객체 자체에 지연 로딩을 적용해 보면 어떨까. 예를 들어, user 객체는 userId 만 가지고 있다가, userUserName() 과 같은 요청이 ..
발생일: 2010.02.16 문제: 오랜만에 회사 온라인 강의를 신청해 들어볼까 싶어서 교육 사이트를 둘러보다가, '알기 쉬운 UML' 강좌의 화려한 플래시에 혹~ 해서 신청 버튼을 눌러버렸다. UML 은 이미 대략적인 개요를 알고 있고, (여러 다이어그램 중 클래스 다이어그램만 마음 먹은대로 쓸 수 있는 수준이다) 업무를 포함하여 평소에는 다이어그램을 쓸 일이 거~~의 없어서 그다지 관심있는 편은 아니었다. 다만, 얼마 전 IBM 의 UML 컬럼 강좌을 보고서는, '+ methodName ( ParameterName: ParameterType ) : ReturnType ...' '요고요고 띄어쓰기도 좋고, 깔끔하니 있어 보이는데~' 하는 생각이 들어서 작성 기법에 개인적으로 후한 점수를 주기는 했다. ..
발생일: 2010.02.10 문제: iBatis 에 parameterClass 로 List 를 넘긴 후, iterate 태그 사용을 시도하였을 경우 아래와 같은 예외가 발생한다. Error getting ordinal list from JavaBean. Cause java.lang.StringIndexOutOfBoundsException 이 때 사용된 iBatis 구문은 아래와 같다. // select something and use iterate #someList[]# 잘못된 게 없는 것 같은데, 왜 이럴까. 해결책: 정확한 원인은 모르겠으나, 일단 패러미터를 Map 형태로 전달해주면 문제 없이 작동한다. queryForList 등의 메서드를 호출하기 전, 패러미터로 전달할 list 객체를 Map 객체..
발생일: 2010.02.10 문제: 업무 공유를 위해 팀원끼리 사용할 간단한 게시판을 하나 만들고 있다. 한 게시물에 여러 개의 태그를 달 수 있는 게시판이며, 태그는 형태로 구성되어 있다. 또한 gmail 의 목록처럼, 전체 목록을 뿌릴 때 엮여 있는 모든 태그를 보여준다. 좌측 메뉴에서 태그를 선택할 경우, 아래와 같이 해당 태그에 해당하는 게시물만 필터링하려고 한다. 그러다 매핑 테이블에서 and 조건으로 조회를 하려다가 난관에 봉착했다. 매핑 테이블에서 AND 조건을 추가하기가 쉽지 않다. task 테이블과 tag 테이블이 존재하며 매핑 테이블은 아래와 같이 구성되어 있다. [task_tag_map] task_id tag_id 데이터 샘플은 아래와 같다. (task_..