이번주는 구현을 완료하고, 코드 리뷰를 받았다. 코드 리뷰를 받고 수정이 필요한 부분을 수정하는 과정을 거쳤다. 또한 이번주는 예상치 못한 오류들을 참 많이도 만났는데... 이클립스의 프로젝트가 보이지 않질 않나, 데이터베이스에 데이터가 적재되지를 않나, scm에 commit이 되지를 않나 등등... 그래도 오류를 다 해결해서 다행이다. 되돌아보면 큰 오류는 아니고 오타 실수 또는 중간에 한 단계를 빠뜨려서 발생한 오류들이었다.
습득한 지식 및 공부내용
form 데이터를 처리하는 과정에서 데이터가 넘어오지 않는 현상
: input 속성에 disabled = "disabled" 속성이 들어가 있어 submit이 되지 않아 데이터가 넘어오지 않았음. 이 속성을 없애니 데이터가 정상적으로 들어옴.
StringUtil.inNulltoString
: 객체가 null인지 확인하기. null인 경우 ""로 바꾸는 메서드
sparrow
: 소스 코드 분석 도구로, 자바 파일 같은 경우 검사를 필수적으로 해줘야함
테이블명 노출안되게 주의!
logger.debug( , ) (x) / logger.debug( + ) (o)
: 데이터 로그가 계속 안찍혀 확인해보니 형식에 안맞게 넣어 안나왔던 것임
mybatis - <foreach></foreach>
: 여러개 반복되는 것을 foreach
를 사용해 간편하게 처리
: 리스트 안에 뽑고 싶은 결괏값을 {key.value} 형태로 뽑으면 됨
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item.id}
</foreach>
1) form-action (submit) 방식 (동기식)
- 웹에서 거의 사용하는 방식
- form 데이터가 전송되면 컨트롤러는 이것을 객체에 담아 전송을 받아 처리함
2) ajax 방식 (비동기식)
- 페이지 전환이 거의 없는 모바일에서 사용하는 방식
- controller가 ajax 통신을 위한 경우 화면 페이지를 반환해주는 것이 아니라 데이터를 반환해줌 (즉, 페이지 일부분만 업데이트 가능)
cf) ajax 사용할 때, serialize 사용
- serialize 함수 이용하면 form 요소에 입력받은 데이터 직렬화 가능
- 여기서 직렬화란 입력받은 데이터를 하나의 쿼리 문자열로 만드는 것을 의미함