-
Notifications
You must be signed in to change notification settings - Fork 1
마일스톤 2
json으로 매핑할때 발생하는 익셉션을 어떻게 처리할까 하다가 구현한 기능이다.
spring에는 ControllerAdvice, Exception Handler 이렇게 2가지가 있는데, 우리는 그냥 핸들러만 구현했다.
(애초에 컨트롤러가 MessageController 하나뿐이니...)
추가로 저 두개 사이에는 적용 우선순위가 있는데, Handler 이후에 Advice가 적용된다.
요청이 fail 된다면, 이를 어떻게 처리할지 고민했었어요.
외부 서버의 문제는 해당 서버에 큰 문제가 발생했거나, 사소한 문제가 생긴 2가지 상황이 있을 수 있는데요.
사소한 문제 상황을 해결하기 위해 재요청하는 로직을 구현했어요.
외부 서버에 큰 문제가 생긴 경우는 아직 과제로 남아있습니다.
FCM으로 push-message를 전솔할때는 비밀키같은걸 헤더에 담아서 보내야한다.
공개할 수 없는 정보라 profile에 박고 앱에서는 이걸 꺼내오는 식으로 구현을 했는데, 운영 서버랑 개발 환경이랑 설정이 다를 필요가 생겼다.
그래서 profile을 각각 만들어서 따로 관리중이다.
TL;DR 수정 : POST /send
-> POST /push-message
REST api에 대해서 잘 알고 있다고 생각했었는데요.
무려 초창기 시절 인터넷의 쓰임새부터 현대 인터넷의 사용 패턴을 통해 Rest Api에 대한 이야기를 듣고 스스로 바꾸게 되었습니다...😆(도둑이 제발저린다는...ㅎㅎ)
덕분에 Rest api에도 단계가 있다는걸 새로 알게 되었습니다.
배경: 도메인 클래스가 외부의 요청, 응답에 사용, 외부와 도메인이 강하게 결합되어 있어 수정이 어려움
작업: 요청, 응답 전용 클래스를 새로 제작, 결합을 끊음
결과: 더이상 도메인이 외부의 변경으로 인해 수정되는 일이 없음