100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

개발 42

[FIDO] FIDO2

FIDO2란? U2F에서 발전한 것이며, FIDO모듈을 플랫폼화하고 플랫폼에 포함되어 있는 내부 인증자 또는 외부 인증장치의 외부 인증자를 이용하여 인증 가능하며 RP서버와 RP클라이언트 간 통신에 자체 프로토콜을 적용합니다. WebAuthn W3C와 협력한 전체 웹 플랫폼에 대한 FIDO 인증을 표준화 한 것으로 웹 사이트가 로그인 페이지를 업데이트하여 지원되는 브라우저와 플랫폼에서 FIDO 기반 인증을 추가할 수 있도록 하는 웹 기반 API입니다. 모든 웹 사이트에서 고유하고 사용자의 장치를 떠나지 않으며 서버에 저장되지 않는 암호화 로그인 자격 증명을 사용하는 데서 비롯됩니다. CTAP 웹 Authenticator Protocol을 보완하며 인증기기가 클라이언트에 인증할 때 보내는 프로토콜입니다. ..

개발/FIDO 2022.06.15

[FIDO] FIDO(Fast IDentity Online)란?

FIDO란? 기존의 비밀번호보다 안전하면서 편리한 인증수단(지문, 홍채, 얼굴, 정맥, 음성, 뇌파)으로 인증 프로토콜과 인증수단을 분리하여 보안과 편리성이 높다는 평가를 받으며 스마트 모바일 환경에 접속한 인증기술이라는 점에서 주목 받고 있는 신기술입니다. FIDO 1.0은 모바일 기반의 UAF와 웹 기반의 U2F의 두 가지 인증 표준을 통해 동작 UAF 사용자 디바이스 인증기법을 온라인 서비스와 연동해서 사용자를 인증하는 기술 U2F 기존 패스워드를 사용하는 온라인 서비스에서 2번째 인증요소로 강한 인증을 사용자 로그인시에 추가할 수 있는 기술 FIDO 시스템은 FIDO서버, FIDO클라이언트, ASM(Authenticator Specific Module), 인증자(Authenticator)로 구성되..

개발/FIDO 2022.06.15

[Software] Semantic versioning

최근, 멘토님에게 포폴 첨삭을 받고있습니다. 포폴 첨삭을 받던중, 버전 규칙에 대한 지식이 부족한거같아 그 부분에 대해서 좀 알아보았어요... (다행히 기존 버전 관리도 나름 잘 해왔다... ㅋㅋ) 다음 사진은 크롬의 SW 버전입니다. 이 버전 규칙은 흔히 우리에게 익숙한 방식입니다. 이 익숙한 방식은 바로 Semantic versioning이라는 규칙에 따른 버전 명명 방식입니다. Major.Minor.Patch Semantic versioning 은 이런 형식을 가지고있습니다. (그리고 위에서 봤던 크롬의 처럼 Patch 뒤에 Build 라는 자리수가 더 오는 경우도 있다고 하네요.) 각각 Major, Minor, Patch는 어떻게 숫자를 올려야 하는지 설명드리겠습니다. 일반적 규칙 1. 버전 번호..

[Node.js] Express에 HTTPS 적용하기

최근, 프로젝트에 HTTPS를 써야하는일이 생겨서 적용을 시키게 되었습니다. 배움에는 끝이 없다... 정말... 적용법을 시작하기 앞서 각각의 개념에 대해서 정리해보았습니다. HTTPS란? HTTP에서 보안이 강화된 프로토콜로, SSL을 이용하여 암호화를 합니다. 기존의 HTTP의 경우 암호화되지 않은 방법으로 데이터를 전송하므로, 메시지를 주고 받는 과정에서 감청당할 수 있습니다. 만약 중요한 정보를 전송한다면, 메시지를 주고받는 과정이 암호화 되지않은 상태로 노출될 수 있습니다. SSL이란? SSL은 서버와 클라이언트간의 통신을 제 3자가 보증하는 전자문서로, 주로 하는 역할은 암호화입니다. SSL은 암호화된 데이터를 전송하기 위해서 공개키와 대칭키를 혼합해서 사용합니다 자세한 내용 https://o..

[Node.js] EC2에 Express APP 배포하기

안녕하세요! 최근에 사이드 프로젝트를 진행하면서, 배포를 진행했습니다! 배포과정이 참 쉽지않았지만, 처음부터 끝까지 그 과정을 다 끝내고 다니 뿌듯했습니다. 그 과정을 자세하게 서술해보겠습니다. EC2 인스턴스 생성 먼저, AWS 계정을 만들고 인스턴스를 생성해야합니다. 계정은 생성했다는 전제하로 설명드리겠습니다. 계정을 생성하고 들어가면 인스턴스 시작 버튼을 누릅니다. 인스턴스 시작을 누르고 넘어가면 많은 운영체제들을 설치 할 수 있습니다. 저는 ubuntu 20.04 LTS 버전으로 진행했습니다. 취향에 따라 다른 운영체제를 선택하셔도 좋습니다. 다음은 인스턴스의 스펙을 설정하는 부분입니다. 저는 프리티어로 설정했습니다. 그 다음으로 넘어가면, 키 페어를 생성하는 화면으로 넘어가게 됩니다. 이 키 페..

[Node.js] Passport (로컬 로그인 with session)

Passport란? Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application. A comprehensive set of strategies support authentication using a username and password, Facebook, Twitter, and more. 즉, Passport는 Node.js에서 인증을 도와주는 미들웨어이며, 여러가지 전략 (인증 방법을 전략이라고 칭한다.)을 지원함. 필자는 API서버로서 session기반의 전통적인 ID, PW..

[Node.js] Cookie 공부

프로젝트를 하면서 인증에 관련된 부분을 진행하면서 지식의 부족함을 느꼈다. 그래서 생활코딩의 강의를 참고해서 공부를 진행하였다, 추후에 더 공부를 해야할 것 같다. 예제 코드 var http = require('http'); // 서버 모듈 var cookie = require('cookie'); // cookie를 파싱하는 모듈 http.createServer(function(req, res){ var cookies = {}; // 쿠키를 담을 객체 if (req.headers.cookie !== undefined) { // 쿠키 예외처리 cookies = cookie.parse(req.headers.cookie); // 객체에 헤더안의 쿠키를 파싱 } res.writeHead(200, { 'Set-c..

[Node.js] Node.js에 MVP 패턴을 적용하기

디자인 패턴이란? 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것. 즉, 더 쉽고 편리하게 개발을 할 수 있는 특정한 방법들이다. MVP패턴이란? 어플리케이션을 3가지로 나눠서 구축하는 개발 방법론이다. MVC패턴에서 파생된 디자인 패턴중에 하나이다. Model : 데이터를 처리하고 가공하는 핵심 알고리즘 및 로직 View : 그래프, 그림 등 사용자에게 보여지는 UI Presenter : View에서 들어오는 요청을 받고 Model에 데이터를 요청후, 다시 View에 응답 Node.js에 MVP 패턴 적용. Node.js에서는 Router에서 요청을 받고 DB에 접..

[Node.js] dotenv 적용하기

dotenv란 .env라는 파일에 정보를 저장하고, 그 안의 정보를 환경변수로 등록해주는 모듈이다. 요즘 진행하는 프로젝트에 dotenv를 적용했다. dotenv를 적용한 이유 1. config폴더 밑에 db에 관련된 계정정보, 메일을 전송하기 위한 계정정보를 JSON형식으로 관리했다. 2. 나중에 더 민감한 정보를 다룰때에 환경변수로 등록해서 관리하면 보안이나 관리하는데에 용이하다고 판단하여 적용했다. dotenv 적용 방법 우선, dotenv모듈을 설치해야한다. npm i dotenv 설치를 하면 패키지가 추가된것을 확인할 수 있다. 패키지를 추가하면 .env 파일을 프로젝트 최상단에 추가한다. .env파일의 형식은 다음과 같다. # Server Port PORT=9000 # Connect DataB..