달력

072010  이전 다음

적합한 소프트웨어 설계(design)를 위해서는 기술 요소에 대한 구체적인 지식과 함께 사용자 요구 사항에 대한 깊은 이해가 필요하다. [각주:1]

예전에 경험한 일이 떠오른다. 대량 데이터 조회 화면에서 페이징(paging) 고려는 흔한 일이다. 구체적인 사항에 대해서는 고객에 앞서 UI 개발 전문가가 예제를 보여주고 선택하게 했다. 그리고 나니 고객은 적극적으로 의견을 피력했다. 주관식보다는 객관식이 답하기에 좋은 법이니까. 두 가지 사항을 결정했다.
  • 페이지로 나누어진 그리드(list) 하위에 이동할 페이지가 숫자로 나타나는 형태 선택[각주:2]
  • 그리드 상단에 콤보(drop-down list)를 부착하여 한 페이지에 보일 데이터 건수를 선택하게 함
이외에도 UI 개발 전문가가 뽑은 일반적인 고려 사항에 대해 기본 정책을 결정했다. 얼마 지나지 않아 구현한 화면을 띄우고 동료 검토를 하는 가운데 몇 가지 문제가 발생했다.
  • 하나는 데이터 수정(입력, 삭제 포함) 후에 돌아가는 페이지와 커서 위치다.
  • 두 번째는 데이터 건수 선정 후에 페이지 이동을 함께 반영할 때 처리를 어찌 하느냐 문제다.
HTML 페이지 기반 웹 화면에서는 콤보(select) 선택을 이벤트로 잡아서 목록에 변화를 주는 경우가 많다. 하지만, 스크롤(Scroll)을 적극적으로 사용하는 X-인터넷에서는 콤보에 이벤트를 거는 방법을 피해야 한다고 UI 개발 전문가가 지적했다. 오히려 부자연스런 느낌이 있지만 데이터 건수를 변경하고 페이징을 적용하는 방식을 원하는 고객도 있다고 한다. 후자는 잘 수긍이 가지 않지만, 전자는 고개를 끄덕일 수 있다.

여하튼 이러한 예외적인 사용자 입력에 대해 정상적인 페이지를 보여줄 수 있도록 코드 수정이 필요했다. 개발자가 작성하는 화면 스크립트, 서버 코드, 연동을 처리하는 공통 코드(혹은 프레임워크) 세 곳 중에서 가장 영향이 적은 방안을 택해야 한다. 아쉽게도 화면 스크립트는 수정은 막을 수 있었지만, 서버 코드 수정은 피할 수 없었다. 공통 코드가 로직 대부분을 감싸고 있기에 변화를 줄일 수는 있었지만...
  1. 마침, 비슷한 논지의 글을 읽었다. '너도 나도 그렇게 폼나고 상위의 일을 했을 때, 디테일이 살아있는 디자인이 나올 수 있냐는 질문을 던집니다.' 출처: 누끼마녀와 아웃소싱 [본문으로]
  2. 화살표 클릭이나 페이지 직접 입력 등을 배제 [본문으로]
Posted by 영회