스프링부트 3

[Spring] 스프링 MSA 개발하기 - 2: 개별 서비스 모듈구조 설정

🤔 들어가며 MSA의 개별 서비스 개발에 앞서 서비스마다 모듈 구조를 어떻게 구성하는것이 좋을지 고민하며 작성한 글이다. 🏢 멀티 모듈 구조 설계 멀티 모듈 구조란 독립적인 프로젝트들을 묶어 모듈로 사용하는 구조를 말한다. 어떤 형태의 모듈 구조를 구성할 까 고민할 때 다음과 같은 것들을 고려하였다. - 각 서비스는 개별의 DB를 가지며 독립된 서비스 형태를 가진다. - 각 서비스는 프론트, 백오피스 api로 구분된다. - 프론트 및 백오피스 서비스에서는 같은 영속성 엔티티들을 사용한다. - 각 서비스는 batch 기능을 가질 수 있다. 위의 사항들을 고려하여 설계한 모듈 구조는 다음과 같다. -: 모듈 사용자 서비스 - front - api (스프링 어플리케이션) - service (비즈니스 로직) -..

[spring boot] Async 비동기 메소드 사용하기

💡 들어가며 Spring boot 프레임워크를 이용한 rest api 서버에 FCM을 이용한 푸시알림 서비스, 이메일 인증 서비스를 구현하게 되었는데 앞서말한 2가지 기능처럼 외부 api 통신 등의 네트워크를 이용하면 꽤 긴 딜레이가 발생한다는걸 알게 되었습니다. 이와같은 딜레이를 어떻게 제거할까 고민해보았는데요, 곰곰히 생각해보니 푸시알림이나 이메일 전송등을 호출하는 로직은 해당 api의 핵심로직이 아니고 단순 알림을 위한 기능이였으므로 일단 api호출에 대한 응답을 먼저 넘기고, 스프링이 알아서 이메일을 보내든 푸시알림을 보내든 다른기능을 하도록 할 수 없을까? 하는 생각이 들어 방법을 알아보던중 비동기로 메소드를 실행할 수 있다는것을 알게 되었고 구현해보았습니다. 🤔 근데 비동기가 뭐지? 비동기..

Firebase Cloud Message(FCM) 스프링 부트 프로젝트에 적용하기

FCM이란?☁️ Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션입니다. - firebase 공식 홈페이지 참고문서 이 글에선 FCM에 대한 원리 설명, 설정보다 스프링 프로젝트에 적용하는 과정에 대해 설명하고자 한다. 초기설정 방법과 원리설명 등은 공식문서에 잘 정리되어 있으니 링크를 참고하길 바란다. 스프링 부트 프로젝트에 적용하기 요약 스프링 프로젝트에서의 FCM 사용 방법은 다음과 같다 1. 유저 테이블에 FCM 토큰 저장하는 컬럼 추가 2. 토큰 저장하는 REST API 생성 3. 특정 유저의 저장된 토큰으로 알림메시지 보내는 FCM 서비스 구현 + 4. 알림을 보내기 원하는 동작의 컨트롤러에서 비동기로 FCM 서비스 호출 + 5. ..

반응형