본문 바로가기

분류 전체보기16

iOS, Android에서 firebase-admin을 통해 FCM 푸시 알림 보내기 Androidimport firebase_adminfrom firebase_admin import credentials, messaging# Firebase 프로젝트의 서비스 계정 키 파일로 Firebase Admin 초기화cred = credentials.Certificate('path/to/fcm-signkey.json')firebase_admin.initialize_app(cred)# 메시지 정의message = messaging.Message( data={ 'score': '850', 'time': '2:45', }, notification=messaging.Notification( title='Match update', body=.. 2024. 2. 7.
AWS SNS를 이용한 Topic 기반 Push Notification 글 작성 타임어택: 10분 AWS SNS를 이용해 Push Notification(이하 '푸시 알림')구현을 시도했는데 생각보다 관리포인트도 많고 잘 납득되지 않는 부분도 있어 FCM을 직접 쓰는 것으로 진행했다. 무엇이 불편했는지 써본다. SNS를 이용하려면 관련 Topic을 먼저 생성해야 한다. Topic으로 메시지가 들어오면 이메일이나 SMS, 기타 플랫폼 애플리케이션 엔드포인트로 트리거 할 수 있다. 나는 모바일 푸시 엔진으로 FCM을 선택했다. FCM에서 앱 생성 후 키를 받고 이를 SNS에 업로드하면 쉽게 연동된다. 문제는 SNS Topic을 각 모바일앱(클라이언트)가 구독하고 해지하는 과정이 너무 번거롭고 불편했다. SNS를 이용한 푸시 알림을 보내려면 각 모바일앱이 FCM으로부터 획득한 토.. 2024. 1. 30.
모바일앱과 Spring boot 백엔드 연동을 통한 소셜로그인 구현 소셜로그인을 진행하기 위해선 클라이언트(여기서는 모바일앱)에 로그인한 사용자 계정 정보가 필요하다. 그래야 백엔드에 해당 이메일이면 이메일 등 계정 식별자로 회원가입이나 로그인처리를 진행할 수 있다. 크게 보면 다음과 같은 순서를 가진다. 정해진 표준 프로세스가 있는 것은 아니어서 각자 구현 방식에 따라 다르니 참고만. 1. 모바일앱에서 사용자 계정 정보 획득 모바일앱에서 해당 소셜로그인 공급자가 제공한 SDK를 이용하여 사용자 로그인 후 응답값을 벡엔드로 보낸다. 카카오와 네이버의 경우 AccessToken을 발급받을 수 있다. 구글의 경우, AccessToken을 바로 주지 않고 Id Token과 AuthCode라는 걸 받을 수 있다. Id Token은 OpenID Connect 프로토콜에 맞춘 JW.. 2023. 12. 28.
mapStruct 의존성 순서 문제 해결방법과 간단한 사용법 각 레이어 간 전달되는 DTO간 변환이나 DTO, Entity간 변환을 별도의 Mapper 클래스를 만들어 일일이 수작업으로 해주다보면 힘이 들기도 하고, 실수도 자주 생기게 된다. 테스트 코드에서 걸러주긴 하지만 이건 테스트 코드에서 거르기 전에 시스템 적으로 예방하는 편이 맞다. 물론 요즘에는 Copilot을 쓰면 이런 보일러 플레이트 코드를 자동완성해주니 일정 부분 해결되긴 하지만 좀 더 구조적인 방법을 찾고 싶다면 전문 Mapper 라이브러리를 써보는 것도 좋다. 이 분야에서 나름 네임드는 ModelMapper와 mapStruct다. ModelMapper는 별도의 인터페이스 정의같은 것 없이 상대적으로 좀 더 간편하게 시작할 수 있지만 구체적인 타입과 메서드를 알기 위해 런타임 리플렉션이 일어나므.. 2023. 12. 11.