본문 바로가기

Node.js

Promise 활용 - 2. (Sequelize Transaction) Promise 활용에 대한 두번째 기록. 이번에는 Insert, Update에 대한 기록이다. 이를 위해서 Sequelize의 Transaction 기능도 추가로 사용하기로 한다. 1. 시작전 상태. - 두개의 테이블이 있고, 현재 상태를 확인하고 진행한다. 2. 코드 작성. - 메인에서 호출되는 함수.- ProcessTransaction 함수를 호출하고 그 결과를 받아서 출력한다. - 트랜젝션을 만들고- 받은 트랜젝션을 개별 함수로 전달한다.- 각각의 함수가 진행된 결과를 받는다. - Insert 함수와 Update 함수를 확인할 수 있다. - 본문에서 앞서 테스트1을 주석 처리하고 새로운 테스트 함수를 추가하고 실행한다. 3. 결과- 콘솔에서 성공 로그를 확인하고 - 워크벤치에서 변경 내용을 확인한다.. 더보기
Promise 활용 - 1. Node.js 에서 Promise 활용에 대한 기록. 더 많은 내용이 있지만, 우선 간단한 사용법에 대하여 기록해 두도록 한다. 여기의 내용은 앞서 작성된 '유용한 모듈 5 - Sequelize'(http://mongyang.tistory.com/146)의 예제를 변형해서 사용하도록 하고, 이는 그 기록에서 언급한 적 없지만, Node.js의 고질적인 문제인 '콜백 헬'에 대한 대안으로 활용된다. 1. 테스트를 위한 Database의 모습. - TEST_USER, TEST_CHAR 이라는 두개의 테이블과 각 테이블에 존재하는 데이터를 확인 할 수 있다. 2. 코드 작성. - 기본적으로 Sequelize에서 작성한 코드를 기반으로 변경하였다. - Select 관련 함수를 수정하였고 PromiseTest라는.. 더보기
유용한 모듈 5 - sequelize Node.js 에서 Sequelize 사용에 대한 기록. Sequelize는 대표적인 ORM(Object-Relational Mappings) 기술 중 하나로 Node.js에서 활용할 시 상당히 편하게 Database를 컨트롤 할 수 있게 해준다. 1. npm 설치.- npm 설치 완료 후 예제 코드를 작성하고 테스트를 실행해 보았다. - 어... 안된다.. 설치 가이드에 나와있듯이 추가 요소가 필요한가 보다. - 그래서 우선 mysql2를 더 설치해 주었다. 2. 테스트 준비. - 테스트용 database를 하나 만들었다. - 테스트 진행 전 상태. 3. Database 연결.- 연결 코드 작성. - main.js에 호출 코드를 작성해 주고 실행하면. - TEST_CHAR 테이블이 생성됨을 확인 할 수.. 더보기
유용한 모듈 4 - mysql node.js 에서 mysql 사용에 대한 기록. 1. 우선 테스트를 위한 데이터베이스를 하나 만든다. - Mysql 접속 후 Database 확인. - 현재 아무것도 없다. - test 라는 DataBase를 하나 만든다. - 만들어 진거 확인 완료. - test DataBase 사용하기위해... - Workbench에서도 만들어 진거 확인. 2. 예제 작성. - 기본적으로 접속, 테이블 생성, 데이터 삽입, 데이터 읽기를 진행. - 예제 실행을 위한 Main 파일. - 위의 내용에는 모두 활성화 되어 있지만, 예를 위해서 연결을 제외한 나머지 함수는 하나씩 주석을 하고 테스트를 진행. 3. 테스트 시작. - 안되네??? 4. Mysql 모듈 설치. - Mysql과 별도로 Node.js에서 Mysql을.. 더보기
유용한 모듈 3 - nodemailer node.js 에서 메일을 발송할 수 있는 모듈이다. 여기서는 에러 상황에 리포팅을 한다고 가정하고 예제를 작성한다. 준비는 npm install nodemailer 로 모듈을 설치하고 예제를 작성한다. 1. 테스트 예제. - 에러를 발생시키는 예제. 2. 메일 보내기. - Gmail을 사용하여 자동 메일 보내기. 3. 결과 확인. - 온 것을 확인. 4. 메일 내용 확인. 6. 권한 오류가 발생했을때. 구글에 메일을 보내는 계정으로 접속한 후(받는이 아닌 보내는 - 예제의 transporter의 계정.) https://www.google.com/settings/security/lesssecureapps 이동하면. 다음과 같은 화면이 보인다. 본디 앱 허용이 꺼져 있는 것을 사용으로 변경하면 된다. 더보기
유용한 모듈 2 - winston node.js 를 사용하면서 로그를 남겨야 할 상황이 많이 생기는데. console.log() 함수로는 화면에서 지나가 버린 로그를 확인 할 수 없다. 해서 이를 위한 유용한 모듈이 있어 기록을 남긴다. 준비물은 우선 시간을 남기기 위한 moment (이 모듈은 앞서 기록했음.) npm install winston npm install winston-daily-rotate-file 을 설치해 준다. 1. 로그 테스트를 위한 코드. 2. 로그 설정을 위한 코드. - 콘솔에 대한 설정과 파일에 대한 설정으로 나눠져 있다. 3. 기본 화면. - 위의 파일이 main.js 와 winston_test.js 파일로 나눠져 있다. 4. 로그 저장을 위한 logs 폴더를 생성. 5. 실행 화면. 6. logs 폴더로 .. 더보기
유용한 모듈 1 - moment node.js 를 사용하면서 유용한 모듈에 대한 기록. - time 관련된 기능을 가진 모듈이다. 기본적인 기능에 대한 내용을 아래에서 정리한다. 1. 테스트 기능에 대한 본문. 2. 현재 시간 알아보기. 3. 월요일 체크(특정시간에 대한 확인) 4. 다음주에 대한 시간 확인. 5. 년,월,일 정보 얻기. - Month는 0부터 11까지로 표기 되므로 +1을 해주어야 현재 달이 나온다. - 요일은 0~6으로 표기되며, 0을 일요일 6은 토요일이다. 6. 유닉스 타임. 이 테스트의 결과는 다음과 같다. 게시물 작성일과 테스트 결과가 다른것은 미리 준비해 둔 스크리샷이기 때문. 더보기
Socket.io 영문 위키백과에는 ... --------------------------------------------------------------------------------------------------Socket.IO is a JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and servers. It has two parts: a client-side library that runs in the browser, and a server-side library for Node.js. Both components have a nearly ide.. 더보기
Express 기본 설명은 http://expressjs.com/ko/ 에 나와 있는 내용을 정리. Express는 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크로, 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공한다. 기본적인 웹 애플리케이션 기능으로 구성된 얇은 계층을 제공하며, 자유롭게 활용할 수 있는 수많은 HTTP 유틸리티 메소드 및 미들웨어를 통해 쉽고 빠르게 강력한 API를 작성할 수 있다. 설치는 Node.js가 설치되어 있다는 가정하에, - 이 같은 명령어로 설치한다. 프레임워크이기 때문에 기본적으로 제공하는 형태가 존재하며, 이를 이용해 가장 간단한 예제 "Hello World"를 작성. 작성된 예를 실행하고 웹에서 실행하면다음과 같은 결과를 확인 할 수 있다. [프레임워크].. 더보기
echo Server-Client Test Echo Server와 Client를 만들었으니 결과를 정리한다. 1. 서버 실행. - 순탄하게 올라가지 않았다.- node를 실행하기 위해서 작업 폴더로 이동. : cd testServer- 서버 실행.: node main.js- 이미 포트가 사용중이라며 실패.- 사용중인 포트확인: netstat -tnlp- 확인 후 종료.: kill -15 16609- 다시 서버 실행: node main.js- 실행 완료. 2. 클라이언트 실행. - 서버에서 접속 확인. - 클라이언트에서 접속 확인. 3. 메시지 전송. - 메시지를 입력 후 버튼 클릭. - 서버에서 'asdf' 전달받음 확인 후 돌려줌. - 클라이언트에서 서버로 부터 받은 메시지 화면에 출력. - 받은 내용 로그에서 확인 완료. 간단한 Echo 프로.. 더보기
echo Client 앞서 Echo Server에 상응하는 Client를 만들어 본다. 준비물로 우선 Scoket.io를 사용할 것이기 때문에 https://github.com/NetEase/UnitySocketIO 에서 유니티용 socket.io를 다운 받는다. 또한, 유니티에서 Echo Client를 위한 빈 프로젝트를 하나 생성하였으며, 이 과정은 생략한다. 1. 화면 구성.: Canvas를 추가하고 필요한 기본 화면을 구성한다. - 입력을 받을 Input Field - 메시지를 전달할 Button - 받은 메시지를 보여줄 Text - Text를 더 잘보여주기 위한 배경 Image 2. Plugin 등록과 Script 작성. - 앞서 받은 UnitySocketIO를 Plugin 폴더를 만들고 bin 폴더에 있는 파일들을.. 더보기
echo server 기본적인 형태의 Echo Server를 만들어 본다. 1. 현재 폴더 구조를 확인한다.: ls -al 2. echo server를 위한 디렉터리 생성.: mkdir testServer 3. 서브라임 텍스트를 사용하여 기본 적인 형태의 서버를 생성. 4. 작업 디렉터리로 이동: cd testServer - 미리 작성된 파일을 서브라임 텍스트의 sftp-config.json 파일을 수정하여, 저장시 자동 업데이트를 하도록 설정하여, main.js 파일이 디렉터리에 들어와 있는 것을 확인. 5. 서버 실행.: node main.js 명령어로 서버를 실행. 이것으로 기본적인 에코 서버를 만들었다. 해당 서버는 ReqEchoMsg 커맨드로 들어온 메시지를 AckEchoMsg라는 커맨드로 다시 클라이언트에 돌려줄 .. 더보기
자주 쓰는 명령어 앞으로 ubuntu에 node.js를 사용할때 기본적으로 자주 사용하게 될 명령어를 여기에 기록하고자 한다. [디렉토리]mkdir : 디렉토리 생성.rmdir : 디렉토리 삭제. [이동]cd [디렉토리명] : 해당 디렉토리로 이동.cd .. : 상위 디렉토리로 이동. [리스트 보기]ls - 파일 리스트 보기 (ls -al) [프로세스]ps : 프로세스 확인.kill -15 [프로세스 ID] : 정상적인 종료 시그널을 통한 프로세스 종료.kill -9 [프로세스 ID] : 강제 종료 시그널을 통한 프로세스 종료. [포트확인]netstat -tnlp lsofnmap [버전확인]npm -vnode -vexpress -V : express의 경우 V가 대문자이다. npm list : 설치된 모듈의 버전을 확인 .. 더보기
node.js 설치 및 최신버전으로 업데이트. 앞서 VM에 ubuntu를 설치 했고, npm까지 설치 했으니 node.js를 설치 할 차례이다. 1. node 설치 확인. - node 명령어를 입력해 보니 설치가 되어 있지 않다고 나온다. - 안내 메시지로 sudo apt install nodejs-legacy 를 입력해 설치 하라고 나온다. 2. 안내에 따라 입력해 node.js를 설치 한다. 3. 설치 후 버전 확인. node.js 설치가 완료되어 버전이 확인 됨을 확인 할 수 있다. 4. 최신 버전으로 업데이트 방법. - 1. sudo npm cache clean -f 로 캐쉬 삭제. - 2. sudo npm install -g n 으로 n 모듈 설치. - 3. 버전 설치.: sudo n stable 로 안정화 버전 설치.: sudo n 8.4.. 더보기
ubuntu 설치에 대한 기록 3 - npm 1. VM과 ubuntu를 설치 하고 나면 기본 형태의 ubuntu 서버를 확인 할 수 있다. 2. 아이디와 패스워드를 입력하면 로그인이 되고 기본적으로 사용할 준비가 끝이 난다. 3. npm 설치 확인: npm -v 명령어로 버전을 확인한다. - 설치가 되어 있지 않다고 나오고 안내 메시지로 sudo apt install npm 으로 설치를 하라고 나온다. 4. 안내에 따라 명력어를 입력하여 npm을 설치한다. 5. 설치 후 버전 확인. - 현재 나와 있는 버전 보다 낮다. 6. npm 최신 버전을 사용하기 위해서는 ubuntu를 업데이트 해야 한다. - 아래 명령어로 ubuntu를 최신화 한다. : sudo apt-get update: sudo apt-get upgrade 7. npm 최신화를 위해 .. 더보기
ubuntu 설치에 대한 기록 2 - ubuntu 16.04 앞서 만든 VM에 ubuntu를 설치한다. 설치하는 ubuntu는 16.04 LTS 이다. 1. 만들어진 VM을 클릭하면 시동 디스크 선택화면이 뜬다. 대부분 자동으로 이미지를 자동으로 선택하나 여러버전의 이미지를 가지고 있다면 옆에 폴더 모양의 아이콘을 선택하여 원하는 이미지를 선택한다. 2. 기본 언어 선택을 한다. 일단은 '한국어' 선택. 3. 선택하고 나면 설치 화면이 나오고 설치를 선택하여 진행. 4. 번역이 온전하지 않다고 하지만, 그냥 진행한다. 5. 국가 또는 영역 선택인데 여기서 선택하는 위치에 따라 표준시가 설정 된다. 대한민국 선택. 6. 키보드 설정은 패스. 7. 기본 키보드는 영문으로 선택 8. 호스트 이름 입력 9. 사용자 이름 입력. 10. 암호 입력 11. 표준시 확인. 12.. 더보기
ubuntu 설치에 대한 기록 1 - VirtualBox ubuntu 설치에 대한 기록. 설치는 VirtualBox에 하도록 한다. 설치를 위해서 VirtualBox를 다운 받아 설치한다. ( https://www.virtualbox.org/ ) 1. 새로 만들기 선택 후 이름에 'ubuntu'를 입력하면 종류와 버전이 Linux로 자동 선택 된다. 안된다면 수동으로 선택. 2. 가상 머신에 할당할 메모리 크기를 선택. 현재 PC의 상황을 고려해서 적절하게 선택. 3. 가상 머신에서 사용할 저장공간을 만들어 주고 4. 저장 공간의 타입은 VirtualBox 디스크 이미지로 만들어 준다. 5. 가상 머신의 저장공간 형태를 지정해 준다. 처음부터 정해진 공간을 할당할 것인 최대 값을 설정하고 필요시마다 점점 늘려 갈 것인지를 선택한다. 6. 저장 공간의 크기를 설.. 더보기