JavaScript
-
모듈화JavaScript/Node.js 2018. 12. 10. 17:10
모듈화모듈화란 다양한 기능을 하는 함수들 중 연관된 기능을 하는 함수들을 따로 한 곳에 묶어 파일로 관리하는 것이다.예를 들어 애플리케이션에 아래의 함수들을 사용하고 있다고 치자.'더하기를 하는 함수'와 '나누기를 하는 함수', '합계의 평균을 구하는 함수'가 있다고 칠 때 이 함수들의 공통점은 산술을 처리하는 기능을 한다는 것이다.이렇게 하나의 카테고리로 묶을 수 있는 함수들을 모아서 따로 파일로 관리하는 것을 모듈화라고 한다. 모듈 만들기프로젝트 폴더에 lib 폴더를 생성하고 하위에 수학관련 함수를 작성할 calculator.js파일을 생성하자. calculator.js 파일 내에 아래의 코드를 작성하자.2 ~ 9번 줄 - 7번줄에서 _sum()이라는 인자를 두개 받아 덧셈을 처리하는 함수를 작성했다..
-
Federation AuthenticationJavaScript/Node.js 2018. 12. 9. 22:12
Federation AuthenticationPassport는 로컬 인증과 타사 인증을 비슷한 로직 작성 방법으로 처리할 수 있다는 것이 가장 큰 장점이다.지난 시간에는 로컬 인증을 해보았으니 이번 시간에는 Facebook 타사 인증을 처리해보자. Facebook API 발급타사 인증을 처리하기 위해서는 가장먼저 해야할 일은 해당 회사의 API를 발급받아야 한다.발급받은 API 정보를 우리의 웹 애플리케이션에 등록하게되면 Facebook에서 전달하는 사용자 정보를 판단할 수 있고 데이터를 가공할 수 있게 된다.이번 시간에는 사용자의 Facebook 계정 정보를 우리 웹 애플리케이션에서 인증처리를 하는데 사용할 것이기 때문에 Facebook의 API를 발급받도록 하자.Facebook API는 Faceboo..
-
Authentication - PassportJavaScript/Node.js 2018. 12. 7. 03:02
Authentication - PassportAuthentication(인증)이란 회원을 확인하는 절차이다.예를 들어 A라는 사용자가 Jamong이라는 닉네임을 사용하는 회원이라고 가정해보자.만약 이 A라는 사람이 Jamong인지 주장한다고 했을 때 과연 서버에서는 그 주장을 어떻게 판단할 수 있을까?그건 지금까지 우리가 해왔던 데이터 베이스를 통해 사용자 정보를 저장하고, A가 Jamong이라는 것을 주장할 때 그것을 판단하기 위해 데이터 베이스에 저장된 사용자 정보를 확인하고 인증시켜주는 작업을 통해 알 수가 있었다.즉 우리가 지금껏 해왔던 회원가입과 그 정보로 로그인하는 것이 인증 절차 과정인 것이다. 현대에는 다양한 인증 절차 과정 기술이 존재한다.회원이 정보를 우리의 데이터 베이스에 저장하여 관..
-
Process Management - PM2JavaScript/Node.js 2018. 12. 6. 19:55
Process Management - PM2이번 시간에는 Process Management 툴인 PM2를 알아보자.기존에는 node app.js 혹은 supervisor 패키지를 통해 애플리케이션을 실행시키고 관리했었다.그러나 프로세스가 돌아가는 상황이나 모니터링을 할 수 없다는 것이 단점이었는데, PM2 패키지는 모니터링을 할 수 있고 프로세스를 여러개를 실행시킬 수 있다는 장점을 가지고 있다.더욱 강력한 툴이라 할 수 있겠다. PM2 설치하기http://pm2.keymetrics.io/위의 경로로 들어가면 설치 방법부터 프로세스 실행 방법을 비롯 다양한 설명들을 시각화하여 쉽게 알 수 있도록 제공하고 있다.npm install pm2 -g 구문을 통해 패키지를 글로벌 옵션으로 설치한다. 애플리케이션 ..
-
암호화 - MD5, SHA256, PBKFD2JavaScript/Node.js 2018. 12. 6. 02:29
암호화 - MD5, SHA256, PBKFD2사용자로부터 전달받은 사용자의 정보 중 패스워드 정보를 그대로 데이터 베이스나 다른 저장 공간에 저장하는 경우 그것이 유출된다면 매우 심각한 문제가 발생하게 된다.이는 소송이 발생할 수 있는 문제로 이어지게 된다.그러므로 사용자 정보를 저장하게 될 때에는 항상 보안을 염두해야한다.이번 시간에는 사용자 정보 중 패스워드를 해커들이 알 수 없도록 암호화하는 방법을 알아볼 것이다. MD5MD5는 1991년에 보안을 위해 만들어진 기능이다. 그러나 현재에 와서는 다양한 결함들이 발생되었고 이 결함들을 통해 SSL 인증서를 변조할 수 있게 되었다는 것이 발표된 지금은 보안을 위해서는 사용되지 않는 기술이다.MD5가 어떻게 데이터를 암호화하는지, 어떠한 기술인지를 알아보..
-
Express - MySQL SessionJavaScript/Node.js 2018. 12. 4. 20:07
Express - MySQL Session지난 시간에 세션에 대해서 알아보았다.세션 정보는 클라이언트와 서버간 통신이 끊길 경우 사라진다는 특징이 있다.이것을 방지하기 위해서 세션에 대한 정보를 데이터 베이스에 저장하고 키 정보를 클라이언트 PC에 저장하여 접속 시 데이터 조회를 통해 세션을 유지하는 방법이 있다.이번 시간에는 MySQL에 세션 데이터를 저장하는 방법을 알아보자. Express-MySQL-Sessionnpm사이트에서 express-mysql-session을 검색하자.이 패키지는 세션 정보를 mysql 데이터베이스에 저장하기 위한 패키지다. 설치 구문을 이용해 패키지를 설치하도록 하자. Express-Mysql-Session API사용 방법을 보고 사용해보자."express-mysql-se..
-
Express - Session 1JavaScript/Node.js 2018. 12. 4. 18:07
Express - Session 1지난 시간에 쿠키에 대해서 알아보았으니 이번 시간에는 세션에 대해서 알아보자.세션은 웹 서버에 접근한 사용자를 식별하기 위해 만들어진 기술이다.기존 HTTP 프로토콜은 사용자의 상태를 유지하는 능력이 없기 때문에 애플리케이션을 이용하는 사용자를 구별할 수 있는 방법이 없었다.그래서 세션이라는 기술을 이용해 브라우저의 연결이 지속되는 기간동안 사용자를 식별할 수 있도록 데이터를 보관하고 요청이 발생할 때 식별 데이터를 이용하여 어떠한 사용자인지 구분을 할 수 있다. Express-SessionExpress API 문서 페이지를 들어가보면 Request객체와 Response객체에서 Session속성을 지원하지 않는 것을 알 수 있다.그래서 외부 npm 패키지 모듈을 설치하여..
-
Cookie 서명JavaScript/Node.js 2018. 12. 1. 23:56
Cookie 서명이번 시간에는 쿠키 데이터를 서명하는 방법을 알아보자.쿠키는 클라이언트 PC에 간단한 데이터들을 저장하기위한 기능이라고 설명했었다.웹 프로그램을 이용하는데 필요한 데이터이니만큼 보안 또한 적지않게 중요하다 할 수 있다. Cookie 데이터의 취약한 보안성이전 시간에 우리가 쿠키 데이터가 클라이언트 PC에 저장되는지를 확인하기 위해서 개발자도구(F12)를 열어 Network탭에서 서버와 클라이언트간에 전달되는 데이터를 확인했었다.그 결과 count라는 쿠키에 서버에서 값을 설정하는 "Set-Cookie" 헤더정보를 통해 쿠키에 저장되는 값을 확인할 수가 있었다. 이러한 직접적인 데이터 공개는 보안상 취약점이 되기 때문에 권장하는 작업이 아니다. 클라이언트 PC에 값을 저장해야한다면 최소한의..