본문 바로가기

전체 글

(271)
[안드로이드] 브로드캐스트 리시버 브로드캐스트 리시버(BroadcastReceiver) 브로드캐스트란 네트워크를 학습하면 알겠지만 방송을 의미한다. 여기서 중요한 특징은 방송국에서 방송을 송신하면 필요한 사람만 해당 정보를 수신하게 된다. 이러한 메커니즘을 그대로 사용하는게 안드로이드의 Broadcast Receiver이다. 그리고 이러한 방송은 방송하는 앱 자체의 리시버에게 전달되는 것 뿐만 아니라 다른 앱으로도 방송될 수 있다. 어딘가에서 특정한 방송을 송신하면, 특정 방송을 기다리고 있던 브로드캐스트 리시버는 이를 듣고 처리를 시작하게 된다. 앱에서 이러한 브로드캐스트를 받기 위해서는 receiver를 등록해야한다. BroadcastReceiver를 상속한 객체를 생성하여 manifest에 등록하거나 registerReceiver(..
[Node.js] nodemailer로 이메일 인증 구현하기 nodemailer Node.js에서 사용하는 이메일 전송 라이브러리이다. 이번 문서에서는 이메일로 인증코드를 보내 클라이언트에서 해당 인증 코드를 입력하면 회원가입이 계속해서 진행되는 예제를 다룬다. 구현과정 기본 셋업 구현 1. 기본 셋업 먼저 nodemailer 라이브러리와 dotenv, ejs를 설치해준다. dotenv는 node 프로젝트에서 전역적으로 사용되는 변수를 정의할 수 있는 라이브러리이다. 여기에는 보통 중요 정보(비밀번호, 키값) 등이 저장되어 깃허브에서 추적하지 않게 .gitignore에 등록해야 한다. 그리고 ejs는 이메일로 전송될 내용이 담겨있다. npm install dotenv nodemailer ejs 그리고 메일을 전송하는데에 사용할 계정에 대한 정보를 수정한다. 이번 ..
[Node.js] Firebase Cloud Messaging을 이용하여 클라이언트에 메시지 전송하기 Firebase Cloud Message Firebase Cloud Message 이하 FCM은 메시지를 간단하게 보낼 수 있는 크로스 플랫폼 메시징 솔루션이다. 해당 내용은 아래 소개한 글에 자세히 설명되어있다. [안드로이드] Firebase Cloud Messaging Firebase Cloud Messaging Firebase Cloud Messaging 이하 FCM은 메시지를 빌드, 전송, 수신하는 크로스 플랫폼 메시징 솔루션이다. 안드로이드 앱에서 흔하게 볼 수 있는 Push 메시지가 대표적인 사용 예시이다.. bb-library.tistory.com 구현과정 Firebase console에서 서버키를 발급받기 firebase 셋업 메시지 전송 요청 1. Firebase console에서 서버키..
[안드로이드] Firebase Cloud Messaging Firebase Cloud Messaging Firebase Cloud Messaging 이하 FCM은 메시지를 빌드, 전송, 수신하는 크로스 플랫폼 메시징 솔루션이다. 안드로이드 앱에서 흔하게 볼 수 있는 Push 메시지가 대표적인 사용 예시이다. 동작 방식은 아래 도표와 같다. Firebase 콘솔 GUI 혹은 써드 파티 서버(node, php, ...) 등에서 메시지를 전송하도록 FCM 서버에 요청하면, FCM 서버에서 이를 각 플랫폼에 맞게 적절히 메시지를 전달한다. 여기서 말하는 메시지란, 단순히 유저로에게 어떠한 알림을 보내는 것 이외에도 디테일한 데이터 전달 또한 가능하다. 이러한 데이터는 보통 json, xml로 전송된다. 안드로이드 Client 측에서의 세팅 1. Firebase SDK ..
[Node.js] 6. 서버와 MongoDB 연결하기 MongoDB MongoDB는 NoSQL 데이터베이스로 기존에 학습한 MySQL의 관계형 데이터베이스와 데이터를 저장한다는 점을 제외하고는 완전히 다르다. NoSQL은 컬렉션(SQL의 테이블)과 문서(SQL의 로우)로 구성된다. SQL은 일관성 측면에서 특장점이 있고, NoSQL은 확장성에 이점이 있다. MongoDB 설치 및 세팅 먼저 설치는 https://www.mongodb.com/download-center/community에서 진행할 수 있다. 계속 next를 하고 중간에 좌측 하단에 Install MongoDB Compass도 체크하여 설치한다. 설치가 완료되면 시스템 변수의 path에 MongoDB의 경로인 C:\Program Files\MongoDB\Server\4.4\bin을 추가해준다...
[Node.js] 5. 외부에서의 서버 접속 허용하기. 개요 이전 문서까지는 오직 localhost만 서버에 접속할 수 있었다. 이번 문서에서는 외부 클라이언트도 서버에 접속하는 것을 허용하게 세팅하는 법을 다룬다. 이번 문서에서는 linux에 대한 기초적인 이해가 필요하다. 추가로 클라우드 서버는 Ubuntu 16.04를 기준으로 한다. 과정 클라우드 플랫폼 - 네이버 클라우드 플랫폼(NCF) pm2 패키지 설치 서버 구동 1. 클라우드 플랫폼 AWS. Toast, 구글 클라우드 플랫폼 등 다양한 클라우드 플랫폼이 존재한다. 이번 문서에서는 네이버 토스트 클라우드를 사용하려 한다. 현재 가입시 10만 크레딧을 주고, Micro 서버라는 성능이 뛰어나진 않지만 소규모로 쓸만한 서버도 1년간 무료로 제공한다. 서버 생성법은 https://console.nclo..
[Node.js] 4. Express 라우터 Router 코드를 계속해서 작성하다 보면 server 파일의 코드 양이 많아지고 지저분해지면서 개발자는 자연스럽게 이를 리팩토링하고 싶어진다. 이를 위해 Express의 라우터 객체를 이용하여 프로젝트 구조를 깔끔하게 정리할 수 있다. 초기의 코드 const express = require("express"); const mysql = require("mysql"); const dbConfig = require("./config/database.js"); const connection = mysql.createConnection(dbConfig); const bodyParser = require("body-parser"); const server = express(); server.use(bodyPar..
[Node.js] 3. 서버와 MySQL의 연동 개요 저번 문서에서는 데이터를 서버 내에 하드 코딩하여 작업이 된다는 정도만 확인하였지만 실제로는 데이터들은 DB에서 관리된다. 이번 문서에서는 저번 문서에서 구축한 서버에 MySQL을 연결하여 요청받은 데이터를 MySQL DB에서 조회, 수정, 삭제, 추가하는 예제를 수행한다. 문서를 시작하기에 앞서 MySQL은 설치되어 있다고 가정한다. 또한 기본적인 MySQL 쿼리 방법을 기본으로 가정한다. 과정 MySQL에 데이터베이스 및 테이블 생성 기본 환경 세팅 조회/삽입/수정/삭제 구 1. MySQL에 데이터베이스 및 테이블 생성 MySQL 쉘을 열어 'test' DB를 생성한다. 이후 토큰값과 위도, 경도 값을 컬럼으로 갖는 테이블을 생성한다. CREATE DATABASE test; USE test; C..