본문 바로가기
회고

TIL_210825

코동이 2021. 8. 26.

1. Facts(사실, 객관)

- DDD 7~9장 읽기

- 회사 필터점검예정 페이지 개선 요청 개발하기

2. Feelings(느낌, 주관)

-  회사에 잘못된 코드가 있었는데, 마이 페이지 필터점검예정일 목록에서 더보기를 클릭해서 나오는 추가적인 일정은 모바일에 퍼블리싱이 적용되지 않았습니다. 기존에 1페이지에 있는 일정은 퍼블리싱이 잘 되었으나 더보기를 통해 추가한 일정들은 퍼블리싱이 추가되지 않았습니다. 퍼블리싱은 인력이 없고 제가 만질 실력이 없기에 더보기 기능을 삭제하고 한꺼번에 부여주는 방법을 택했습니다. 나름 타당한 근거를 들자면, 필터점검은 일정기간 달을 두고 이루어지기에 데이터가 많지 않다는 점입니다. 

 

또한, 해당 필터점검예정일이 날짜별로 정렬되어 있지 않는 큰 문제점을 발견했습니다. 이것은 사용자가 굉장히 불편할 요소라고 생각했습니다. 따라서, 가장 최근 점검 예정일은 맨 상단부터 나오도록 정렬했으며, 칼럼 위치도 맨 왼쪽으로 이동시켜 한눈에 보일 수 있도록 했습니다. 단순히 데이터를 보여주는 것에도 어떻게 보여주고 배치하는 것이 효과적인지 고민하였으며, 바뀐 UI는 사용자가 더욱 편리하게 인식할 것이라고 생각합니다.

 

3. Findings (배운 점)

mybatis를 사용하면서 xml에서 매번 select from where을 썼는데, <sql id>를 통해서 따로 공통부분을 뺄 수 있다. 해당 문법 내에 쿼리를 입력하면되고 사용하고 싶은 곳은 해당 문법을 <sql refid>로 등록해서 사용하기만 하면된다. 이런 방식으로 페이징처리를 할 때, 평소와 같이 select를 작성하고, 위 아래로 paging 처리 코드를 넣어주면 가독성 높고 재사용 가능한 쿼리를 짤 수 있다.

 

<sql id="selectPagingHeader">
	SELECT *
	FROM (
		SELECT ROWNUM NUMB, ORIGINALQUERY.*
		FROM (
</sql>
	
<sql id="selectPagingFooter">
		) ORIGINALQUERY
	<![CDATA[
		WHERE ROWNUM <= #{endRow}
	)
	WHERE NUMB >= #{startRow}
	]]>
</sql>

<select id="...DisplayList" resultType="...Vo">
	<include refid="selectPagingHeader" />
	SELECT 
		CUSTCODE,
		DGREE,
	<include refid="...From" />
	<include refid="...Where" />
	<include refid="selectPagingFooter" />
</select>

CDATA는 <= 혹은 >= 같은 부등호를 부등호로 인식하지 못하고 문법 태그로 인식하기 때문에 방지하기 위한 목적이다.

SELECT ROWNUM 은 조회시 ROW마다 순번을 붙여주는데,  페이징 범위를 지정하기 위해 번호를 붙인다.

ROWNUM을 사용하는 방식은 다양한데, 여기서는 끝번호를 먼저 처리하고 밖에서 시작번호를 처리한다.

 

4. Affirmation (자기 선언)

나는 단순히 개발자 입장에서 코드를 완성하는 것을 목적으로 하지 않고 사용자가 이용하며 만족감을 높여주기 위한 방식을 고민하며 코딩한다.

반응형

'회고' 카테고리의 다른 글

TIL_210827  (0) 2021.08.28
TIL_210826  (0) 2021.08.28
TIL_210824  (0) 2021.08.26
TIL_210823  (0) 2021.08.26
TIL_210820  (0) 2021.08.24