본문 바로가기

728x90
반응형
SMALL

Spring

(17)
no more than 500 tokens can be specified firebaseMessaging.sendEachForMulticast(message); 실제 운영 중인 서비스에서 동시에 몇천건씩 fcm token을 이용하여 push를 보내는 기능이 있었다. 잘만 전송되던 푸시가 제목과 같은 에러를 내뱉으며, 오류가 발생하며 실제로 유저에게 푸시가 가지않았다.  [오류]no more than 500 tokens can be specified오류내용 그대로 500개 이상은 보낼수없다. [해결]몇천건씩 동시에 발송되는 토큰을 500개씩 잘라, 순차적으로 푸시전송하도록 수정하였다.public static List makeMultiMessages(String title, String body, List targetToken, String msgGroupId, String ad..
No qualifying bean of type 'org.springframework.boot.autoconfigure.http.HttpMessageConverters' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(requ 상황springboot에서 내부통신을 위해 feignClient를 사용. api01 -> api02로 feignClient로 찔렀을때, 제목과 같은 오류가 발생하였다. No qualifying bean of type 'org.springframework.boot.autoconfigure.http.HttpMessageConverters' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}  해결전 해결후  원인spring-boot-starter-web 에..
springboot yml 환경 분리하기 왜 yml를 환경분리 해야할까? 실제 배포를 하기위해 프로젝트를 만든다면 개발서버와, 운영서버를 꼭! 분리해야함. 운영서버에 있는 데이터들은, 실제로 사용자들이 서비스를 이용하고 있는 데이터일텐데 그곳에 테스트를 한다고 test1, test2, test3 이런 더미데이터들이 들어있으면 참으로 난처함. 또 개발서버와 운영서버의 설정이 다를 수가 있는데, 분리하지않으면 개발서버에서 되던 설정이 운영서버에는 안먹힘. 그래서 꼭 분리해야됌. 두 가지 방법이 있다. 1. application.yml을 나누는 방식 개발 환경(로컬)에서는 application-local.yml 에다가 설정값을 적으면 됌. 운영 환경에서는 application-prod.yml 에다가 설정값을 적으면 됌. Active profiles ..
@JsonProperty 사용이유? 사용법 어떤 회사의 과제시험을 보는중이였다. 거기서 요구하는 조건에 맞게 API를 개발해야하는 상태.. { "한국어":"korea", "영어":"englisth", "언어":"lang" } 이 JSON을 가지고 요청을 해야함. 근데 왠걸 키 값이 한글로 되어있음...... 자바에는 변수명을 한글로도 표기가 가능해서, 그렇게 개발해도 상관은 없다. private String 한국어; private String 영어; private String 언어; 뭐 이런식으로 해도 정상작동은 한다. 근데 안이쁘잖아.... 우선 라이브러리 등록하자. gradle implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.14...
springboot FCM 푸시 API 사용법 Firebase Cloud Messaging (FCM)은 다양한 플랫폼에서 푸시 메시지를 편리하게 전송할 수 있는 솔루션으로, iOS, Android, Web 등 각 플랫폼에 종속되지 않고 사용할 수 있다. 이를 통해 개발자는 각 플랫폼별로 별도로 개발하는 번거로움을 덜 수 있다. iOS => APNS (Apple Push Notification Service) Android => GCM (Google Cloud Messaging) 위와 같은 서비스를 사용해야 했는데. FCM은 이러한 작업들을 통합하여 한 번의 코드로 여러 플랫폼에 메시지를 전송할 수 있게 해준다. 플랫폼 독립성: FCM을 사용하면 iOS, Android, Web 등 다양한 플랫폼에서 푸시 메시지를 처리할 수 있어 플랫폼 간의 일관성을 ..
springboot 이상적인 폴더 구조 내가 생각했을 때에, springboot를 이용할 때 가장 이상적인 폴더 구조인 것 같다. 아래 링크를 참고하자. 출처 : https://malshani-wijekoon.medium.com/spring-boot-folder-structure-best-practices-18ef78a81819
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 몇 가지 테스트 할 것이 있었다. 새 프로젝트에서 해보기위해 스프링부트 프로젝트를 새로 생성하였다. 제대로 생성되었는 지 확인 하기위해서 서버 실행하였고 아래 같은 에러 문구가 떴다. 영어를 직역해보면 datasource 라는것이 정의되어있지 않다는 에러이다. 스프링에서는 자동으로 DB를 사용한다고 설정되어있는데, 이 새 프로젝트에서 DB 관련된 정보 설정을 안했기 때문에, 읽어올수 없어 스프링에서 에러를 내준것이다. 해결 1. yml 혹은 properties 에 스프링이 읽을 수 있도록 DB 정보를 입력해주는것. 2. @SpringBootApplication 어노테이션에 @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) 이런식으로 ..
@RequestBody 와 @ResponseBody 란? 안녕하세요. 오늘은 @RequestBody 와 @ResponseBody 에 대해 간단하게 알아보도록 하겠습니다. 이 두개의 어노테이션을 알기 전 기본적으로 HTTP 에 대해 알고계셔야 합니다. HTTP 에 대하여 간단하게 설명을 드리면 HTTP(Hypertext Transfer Protocol) 인터넷 통신에서 데이터를 주고 받기 위한 규칙을 정한 약속입니다. 데이터를 주고 받기 위해선, '이런 방식'으로 해야한다. 라는것을 약속한 게 HTTP 입니다. POST /userInfo Host: www.example.com Content-Type: applicationjson Content-Length: 35 { "userInfo": { "userName":"honggildong", "userNickname"..

728x90
반응형
LIST