JavaScript/Node.js
-
자바스크립트 런타임JavaScript/Node.js 2019. 2. 24. 21:57
자바스크립트 런타임노드는 자바스크립트 런타임이다.런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 이야기한다. 이전에는 자바스크립트라는 언어를 브라우저에서만 사용할 수 있었다.그러나 2008년 구글에서 V8 엔진을 발표하기 시작하고난 후 자바스크립트를 독립적으로 사용할 수 있게 되었다. 라이언 달(Ryan Dahl)은 2009년 V8 엔진을 기반으로한 노드 프로젝트를 진행하며 지금의 노드가 탄생되었다. 노드는 V8과 libuv라는 라이브러리를 사용한다. V8과 libuv는 C와 C++로 구현되어 있는데, 우리가 작성하는 자바스크립트 코드를 노드가 V8과 libuv 라이브러리로 연결해준다. libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한다. 이 글은 다음과 같..
-
모듈화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..