Spring AOP
@Transactional도 대표적 AOP중 하나
AOP를 사용하는 이유, '공통 로직 구현'
로깅 / 트랜잭션 처리 / 공통으로 처리해야되는 전처리 기능...
쓸 일 별로 없을 것 같고 내용이 어려움
보통 Filter / Interceptor로 처리한다
이렇게 해도 유지보수에 크게 문제가 있지는 않다.
코드는 줄어든다.
어노테이션 하나만 박아놓고 사용하고싶으면 사용
핵심기능1,2,3...
API 예외처리
서비스 레이어가 하나 (익셉션이 발생할 수 있는 레이어가 하나) 일 때 핸들러나 어드바이스
Exception(특히 Checked Exception)은 최대한 늦게 던지고, 빨리 잡아서 처리해야된다
핸들러를 사용하면
체크드 언체크드 에러
Checked / UnChecked / Error
Checked
UnChecked
Error
익셉션을 만든다고 하면 대부분 extends RuntimeException 한다
변경을 가하는 경우는 왠만하면 트랜잭션을 넣어라!
@Transactional(Readonly = false)
// 과제해설
Entity를 변환없이 Dto에 그대로 데이터 셋 하는건 괜찮다
Model - DAO
authResult에 대한 검증? 을 해줘야된다
베어럴프릭스로 시작하는지 체크
제대로 변환이 되었는가, 널체크
API 로그인을 호출하면 어덴티케이션 필터를 통할까?
= No
Once 어쩌구 필터에서 처리
getUserIfoFromToken 단일책임원칙을 많이 벗어남
검증 추출 유저인포
3개로 나눠라 인증 해석 추출
나눠라
token 탈취 대비 만료시간 짧게
refresh-token으로 재발급
상속
처음부터 인터페이스로 만들어라.