728x90
728x90
Maven 의존성 주입FCM 엔진을 이용해 Web Push 알림을 발송하기에 앞서, Maven 의존성 주입을 작성해줘야한다. 필자는 9.3.0 버전을 사용했지만, 읽는 이들은 쓰고 싶은 버전 쓰면 될 것 같다. 물론 그에 따른 method 지원 양상에 대해서는... 알아서들 JAVA DOC 읽어보면서 파악하자. 사실 필자도 더 오래전 버전을 쓰다가, 알고보니 해당 버전대에서 알림을 발송하는 method 일부가 더이상 제공되지 않는 것을 뒤늦게 확인한 바가 있다. 항상 JAVA DOC 잘 읽자... com.google.firebase firebase-admin 9.3.0 FCM Web Push 발송 순서시작하기에 앞서 FCM 엔진을 이용한 Web Push 발송 순서를 간략하게 설명하겠다...
FCMFCM(Firebase Cloud Messaging)이란, Google 사에서 제공하는 메시지를 안정적으로 무료 전송할 수 있는 크로스 플랫폼 메시징 솔루션이다. FCM을 사용하면 새 이메일이나 기타 데이터를 동기화할 수 있음을 클라이언트 앱에 알릴 수 있다. 이렇게 알림 메시지를 전송하여 사용자를 유지하고 재참여를 유도할 수 있다. 채팅 메시지와 같은 사용 사례에서는 메시지로 최대 4,000바이트의 페이로드를 클라이언트 앱에 전송할 수 있다. 필자는 FCM 엔진을 이용하여 다음과 같은 프로세스를 처리하고자 한다.사용자가 화면에서 특정 웹 사이트의 알림을 신청한다.서버에서는 해당 사용자의 기기 토큰 값을 DB 내 저장한다.알림을 신청한 사용자들의 기기에 알림을 발송한다. 이러한 일련의 과정을 앞으..
이전에 작성한 easy rules 사용 [9] 포스팅의 응용에 대하여 작성해보겠다. MVEL Rule을 사용하면서, 여러 조건을 하나의 Rule에 등록하는 것과, Rule을 거치며 return 하고자하는 변수를 담는 것에 집중하고자 한다. MVEL Rule 응용 방식 우선 아래의 소스코드를 확인하자. 필자가 포스팅한 가장 기본적인 형태의 MVEL Rule의 형태이다. public static void main(String[] args) { // facts 정의 Facts facts = new Facts(); facts.put("position", true); // rules 정의 Rule testMVELRule = new MVELRule() .name("MVEL rule") .description("MV..
Swagger Annotation (1) ← 본문 링크 Swagger Annotation (2) ← 본문 링크 Swagger Annotation (3) ← 작성 예정 이전 포스팅에서 Swagger의 기본 개념 및 JAVA Spring Boot 환경에 사용하는 방법에 대하여 알아보았다. 이번에는 Annotation에 대하여 알아보고자 한다. Swagger Annotation을 이용하여 API 명세 화면(swagger-ui.html)을 보다 쉽게 Control 할 수 있다. Swagger Annotation(간략) @ApiIgnore class에 붙여 사용하는 Annotation ui 화면에서 보이지 않도록 ignore 설정을 가능케한다. @Api class에 붙여 사용하는 Annotation ui 화면에 ..
Swagger Swagger란 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 필자가 직접 사용해본 결과, 사용방법이 무척이나 간단하며 편리하게 API 문서화를 진행할 수 있다. 단점이라고 한다면, 이미 어느정도 개발이 완료된 프로젝트에 대해서는 적용이 다소 어려울 수 있다는 점이다. 이미 생성해놓은 모든 API에 별도 적용을 거쳐야 하기 때문이다... 신규 프로젝트에 도입할 때에는, 개발자들이 API Annotation 양식을 지켜가며 작성을 하게 함으로써 아주 간단하게 API 문서화를 할 수 있겠지만 말이다. 하단 출처에 적혀있는 Swagger 홈페이지에서 Demo 및 사용방법 등과 같은 정보를 확인할 ..
SSL ignore - URL Connection - File Download [2]URL Connection을 이용한 File Download [1]에서는, Stream을 이용하여 진행하였다.URL Connection을 이용한 File Download [2]에서는, Resource를 이용하여 진행할 것이다. 이전에 작성한 URL Connection을 이용한 File Download [1]을 참고하도록 하자. 해당 게시물을 보면 다음과 같이 구성이 되어있음을 알 수 있다.SSL ignoreHttpsURLConnectionFile Download 1번과 2번까지는 같은 내용을 다룰 것이다. File Download 방식을 변경할 것이기에, 이전 포스팅에서 1번과 2번까지 테스트를 마치고 아래의 내용을 보..
SSL ignore - URL Connection - File Download [1] URL Connection을 이용한 File Download [1]에서는, Stream을 이용하여 진행할 것이다. URL Connection을 이용한 File Download [2]에서는, Resource를 이용하여 진행할 것이다. URL Connection을 이용한 일종의 GateWay 역할을 담당하는 서비스를 구축해보고자 한다. 최종적으로는 URL Connection으로 특정 URL의 data를 읽어와, File Download를 JAVA가 대신하도록 할 것이다. 포스팅을 쓰는 까닭은, 필자가 해당 업무를 진행하며 기본적으로 URL Connection을 사용하는 방법부터, 해당 URL의 자체 SSL 인증으로 인해 J..
반복문 반복문이란, 말 그대로 특정 조건을 만족할 때까지 반복하는 구문을 일컫는다. 쉽게 생각해보자. 당신은 숫자를 헤아리고자 한다. 10번을 헤아린다고 컴퓨터에게 명령을 내리는 것, 그것이 바로 반복문이다. 기본 개념 for ( int i = 0; i < 10; i++ ) { System.out.println(i); } for ( int i = 0; i < 10; i++ ) for : for문을 사용하겠다는 선언 int i = 0 : 얼마나 반복할지, 최초 숫자 i < 10 : 얼마나 반복할지, 최대 숫자 - 범위를 설정(10번 미만까지 반복하겠다) i++ : 얼마나 반복할지, 최초 숫자로 부터 증가값(1씩 늘리겠다) 위의 반복문 예시를 실행할 경우, console 창에는 0부터 9까지 찍힐 것이다. ..
mybatis를 사용할 때, parameterMap 및 parameterType, resultMap 및 resultType을 선언하여 사용한다. 이 친구들에 대해 알아보도록 하자. 간단하게 정리하면 다음과 같이 정리할 수 있다. parameterMap : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수를 담은 객체 parameterType : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수의 자료형 resultMap : 비즈니스 로직으로 반환할, 결과값을 담은 객체 resultType : 비즈니스 로직으로 반환할, 결과값의 자료형 [ parameterMap ] 정해진 형태를 갖춰 매개변수를 전달받을 때 필자는 VO를 사용하여 정해진 형태의 값들을 SQL 구문에 전달하여 사..
mybatis를 통하여 data의 존재 유무를, count를 통해 반환하도록 작성하였다. 그랬더니 다음과 같은 오류가 발생하는 것을 확인하였다. 원문 : attempted to return null from a method with a primitive return type (int). 번역 : 원시 반환 형식(int)을 사용하여 메서드에서 null을 반환하려고 했습니다. 말 그대로, null 값을 처리할 수 없는 int type에 null 값(혹은 공백)이 들어간다는 오류이다. 해결 방법은 간단하다. return 되는 과정을 int 에서 Integer로 치환만 시켜주면 된다.