Back-end 18

[Node.js] cron ? node-schedule ?

특정 시간이나 주기로 작업을 처리해야 하는 경우에 리눅스의 Cron을 사용한다. 핸드폰으로 알람을 설정하는 경우를 떠올리면 될 것 같다. 매일 오전 8시에 알람을 설정해두면, 해당 시간마다 알람이 울리는 이벤트 를 발생시킨다. Cron Cron에 대해서 조금 더 알아보자. 위키백과에 따르면 Cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 스케줄러이다. 소프트웨어 환경을 설정하고 관리하는 사람들은 고정된 시간, 날짜, 간격에 주기적인 스케줄링 처리를 하기 위해 Cron을 사용한다. Cron 표현식 Cron 표현식은 6개의 단위 표현식으로 이루어진 문자열이다. // ┌───────────── second (0 - 59) // │ ┌───────────── min (0 - 59) // │ │ ┌─────..

[Node.js] nodemailer로 임시 비밀번호 발급 구현하기

nodemailer 로그인 시 비밀번호를 까먹어 임시 비밀번호를 발급받은 경험이 한 번쯤은 있을 것이다. node.js에서는 nodemailer 모듈을 통해 이메일을 쉽게 보낼 수 있다. 해당 모듈을 사용해 임시 비밀번호를 메일로 전송해주는 방법에 대해 알아보자. 설치 npm install nodemailer google 계정 보안 설정 변경 gmail을 통해 이메일을 보내게끔 했는데, 아래 두 설정을 해줘야 구글 계정에 정상적으로 접근하여 이메일을 보낼 수 있다. https://myaccount.google.com/lesssecureapps 보안 수준이 낮은 앱 허용 : 사용 https://accounts.google.com/DisplayUnlockCaptcha 내 Google 계정에 대한 액세스 허용..

[Node.js] passport 모듈을 이용한 카카오 로그인

예전에 프로젝트 할 때 시간이 부족해서 소셜 로그인을 다루지 못했었다. 이론은 알고 있었기에 직접 구현해보고 싶었는데 하지 못해서 많이 아쉬웠다. 이번에 소프트 스퀘어드에서 외주를 진행하며 다시 소셜 로그인을 다룰 수 있는 기회가 왔다. Node.js 를 통해 개발하고 있기 때문에 passport, passport-kakao 모듈을 어떻게 사용하는지 알아보자. 소셜 로그인 인증 시퀀스 기본적으로 소셜 로그인은 아래와 같은 방식으로 진행된다. 클라이언트가 카카오로부터 발급받은 access token을 서버에 전달하고, 서버는 그것을 다시 카카오에 검증 요청한다. 카카오 서버는 자기가 클라이언트에게 부여한 토큰과 서버로부터 받은 토큰이 같을 경우 사용자 정보를 내준다. 이것이 우리가 흔히 알고 있는 소셜 로..

[스프링부트/Spring boot] 스프링 입문 4/4 - API

인프런 강의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 스프링 웹 개발 스프링을 이용한 웹 개발은 크게 세 가지로 나뉜다. 정적 컨텐츠 MVC와 템플릿 엔진 API API API는 안드로이드 개발할 때 많이 사용한다. key-value 쌍의 JSON 형식으로 클라이언트에게 전달해준다. @ResponseBody 사용 뷰가 필요하지 않기 때문에 viewResolver 또한 동작하지 않는다. 대신 HttpMessageConverter가 동작한다. body 부분에 내용을 직접 넣어 반환한다. @Controller public class HelloController { @GetMapping("hello-api") @ResponseBody public Hello helloAp..

[스프링부트/Spring boot] 스프링 입문 3/4 - MVC

인프런 강의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 스프링 웹 개발 스프링을 이용한 웹 개발은 크게 세 가지로 나뉜다. 정적 컨텐츠 MVC와 템플릿 엔진 API MVC와 템플릿 엔진 템플릿 엔진을 이용하면 정적 컨텐츠와 달리 서버에서 컨텐츠를 동적으로 조금 수정할 수 있다. MVC는 Model, View, Controller의 약자로 디자인패턴 중 하나이다. 사용자가 컨트롤러를 조작하면 컨트롤러는 모델을 통해 데이터를 가져오고, 그 정보를 뷰를 통해 사용자에게 보여준다고 생각하면 된다. Model 백그라운드에서 동작하는 로직 처리 일반적으로 데이터베이스 테이블과 대응 View 사용자가 보게 될 결과 화면 html / css / javascript 등을 모아둔 컨..