DB생성시 칼럼에 코멘트를 달 수 있다.

코멘트 보는 법
SHOW FULL COLUMNS FROM MEMBER
고민 1. null체크를 하나하나 if문으로 돌리려니 뭔가 중복 작업이 장난 아닌것 같았다. 그래서 map에 항목 명과 항목 값을 넣어주고, for-each로 한번에 처리하도록 했다.

고민 2.
아래같이 작성했더니 null이 나왔다.

검색해보니 마이바티스에서 boolean값을 받으려면 아래와 같이 쓰는게 맞다고한다.

고민. request 어떻게 가져오지?
검색해보니 레스트 컨트롤러여도 기존 서블릿처럼 평범하게 가져와졌다.

강사님 코드 덮어쓰기 한 김에 다시한번 doLogin 만들어봤다.
이번에는 request를 파라미터로 받는게 아니라 HTTPSESSION도 받아지나 테스트 해봤다. 평범하게 가져와졌다.


instanceof 실제 인스턴스의 타입을 확인하는 연산자.
String.format 지원하는 포맷

참조:공식문서
단순히 스트링이나 Object를 반환하기보다, 메시지와 성공여부, 반환할 객체등을 하나의 클래스로 정의하는 편이,
데이터를 받는 쪽에서 일하기 수월할 것이다.
그렇기때문에 메시지의 반환 룰 등, 내규를 정해 하나의 클래스로 규정해주는 편이 현명하다.
반환된 http body


이유 HttpMessageConverter는 응답이 객체라면 직렬화 해서 반환한다.
이때 직렬화 기준은 필드가 아니라 get 메소드인데 boolean타입같은 경우 get = is.
생각해보면 필드는 전부 private. 필드에 직접 접근하는것이 아니라 get메소드를 통해 접근한다. 만약 getter가 없으면 해당 필드는 직렬화 되지 않아, body에 찍혀나오지않는다.
만약 success라는 필드의 getter메서드를 자동생성하면 isSuccess라는 이름이 되기 때문에, HttpMessageConverter는 마치 success라는 필드값이 반환된 듯이 처리한 것이다.
반대로 말하면 필드로 지정할 값이 아니라 그때그때 계산되어야 되는 값이라도, 메소드 명을 이용해서 얼마든지 필드 처럼 활용할 수 있음을 알 수 있다.
참고블로그