본문 바로가기

전체 글

Node.js - 웹 서버 구축 (Express 미들웨어) Node.js는 메모리상에서 실행되기 때문에 속도가 빠르다 Node.js 를 이용하여 웹 서버를 만들어 보자 Middleware 함수 클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려는 거쳐가는 중간다리 함수들이다 미들웨어 함수는 req 객체, res 객체, 어플리케이션 요청-응답 사이클 도중 그 다음의 미들웨어 함수에 대한 액세스 권한을 갖는 함수이다 next 함수를 이용해서 다음 미들웨어로 현재 요청을 넘길 수 있다 app.use 안에 있는 모든 함수들은 모두 미들웨어이며 요청이 올때마다 이 미들웨어를 거치며 클라이언트에게 응답하게 된다. IP를 지정 안했으면 http://127.0.0.1:3000/ 또는 http://localhost:3000/ 로 접속 Router를 정의하지 않았어도 서버.. 더보기
Github 사용법, 주요 개념, 소스트리 사용법 깃을 사용하려면 깃헙계정과 소스트리계정 총 2개가 필요합니다. (다른 방법도 있지만 여기서는 GUI 환경에서 Git을 이용하는 방법을 설명하겠습니다) 1. Github 사용법 설명 전 필수 설치되어야 할 것들 (1) 깃헙 회원가입 및 repository 생성 - 인터넷에 잘 정리되어 있는 내용이 많으니 참고하시길.. 생성한 저장소의 Clone or download 버튼을 클릭해 해당 url을 복사해둔다 (혹은 메모장에 기록) (2) Sourcetree 다운로드 ① 설치 Git를 사용한다면 커맨드에서 하는 방법을 가장 추천하지만 터미널 명령어를 사용하는데 꽤나 어렵다 그래서 Git을 컨트롤하는 프로그램인 소스트리를 이용한다 (일종의 사용자를 위한 UI) https://www.sourcetreeapp.com.. 더보기
Node.js - winston 모듈 (미완) 로그를 콘솔창에 실시간으로 출력할 수도 있지만 향후 참고할만한 기록으로서 log.txt와 같이 파일로 남길 수도 있다. 여기서는 NodeJS의 대표적인 모듈 중 하나인 winston 모듈을 통해 로그를 남기는 방법을 알아보겠다 winston 모듈 (1) 설치법 npm install winston // 딱 설치만 됨 npm install winston --save // package.json에 기록됨 npm install winston-daily-rotate-file --save // 매일매일 로그를 파일에 기록됨 아래 두 명령어를 주자 winston 모듈을 import하면 winston을 쓰기 위해 필요한 기본 라이브러리들까지도 같이 설치된다 * 외부 모듈을 설치할 때는 항상 해당 프로젝트의 경로에서 명.. 더보기
Node.js - 이벤트처리, 파일다루기, 버퍼객체 Node.js는 웹에서 많이 사용하는 내용은 아니지만 회사에선 알아야하므로 흐름은 반드시 알고 있기 이벤트 리스너란? 게임을 예로 들면, 캐릭터가 레벨업을 했다 라는 이벤트에 대해서 캐릭터의 체력과 공격력을 증가시켜주는 로직이 들어있는 이벤트리스너가 등록되어 있을 것이다. Node.js가 제공하는 이벤트 처리 클래스 - EventEmitter, events EventEmitter EventEmitter을 이용하면 직접 이벤트를 만들어 처리할 수 있다 이벤트를 처리하는 방법은 EventEmitter를 상속받은 객체를 만들어 EventEmitter의 메소드를 사용한다 메서드 설명 on(event, listener) 지정한 event에 대한 listener를 추가합니다. once(event, listener).. 더보기
Node.js - express 모듈을 이용한 서버 구축 NodeJS의 웹프레임워크를 사용하면 간편하게 웹서버를 구축 할 수 있다. 웹프레임워크 종류는 대표적으로 Express, Koa, Hapi 등이 있다. 여기선 express를 사용해보겠다 1. 프로젝트 생성 - Node.js Express Project (프로젝트명: ExpressExe) 2. 모듈 설치 기본적인 모듈 설치해주는 명령어 끝까지 엔터치면 완료. 그 후 package.json 파일을 열어보면 서버의 이름이 생성된 걸 알 수 있다. 여기에는 불러온 외부모듈들이 쭉 기록돼있다 ("express": "^4.17.1" -> express 4.17.1 버전이 설치됨) 설치한 모듈들은 package.json 의 dependencies 에서 확인 가능 express 설치하기 --save까지 입력해줌으로써.. 더보기
Node.js - 콜백함수, 클로저(Closure) 1. 콜백함수 Node.js의 가장 핵심적인 부분 - 콜백함수 (비동기 방식의 함수, Non-Block) 왜 중요한가? 콜백인 함수에서 콜백을 사용하지 않게 된다면, 콜백 함수의 과정이 끝나기 전에 다음 프로세스를 진행하게 되는 경우가 있다. (ex. db에서 값을 읽어들일 때 값을 읽기 전에 출력을 해버리는 경우) 내용이 복잡해질수록 여러개의 callback이 계속된다. - 함수를 호출했을 때 또 다른 함수를 파라미터로 전달 - 함수안에 콜백함수가 들어가있는 상태 function add(a,b,callback) { var result = a + b; callback(result); } add(10,20,function(result) { console.log("더하기 결과: " + result); });.. 더보기
Node.js - 배열 배열에 값 추가 및 삭제 배열에는 다음과 같은 메소드가 포함되어 있어 그 요소 값을 확인하거나 추가 또는 삭제할 수 있다. 속성 / 메소드 이름 설명 push(object) 배열의 끝에 요소를 추가 pop() 배열의 끝에 있는 요소를 삭제 unshift() 배열의 앞에 요소를 추가 shift() 배열의 앞에 있는 요소를 삭제 splice(index, removeCount, [Object] ) 여러 데이터 추가/삭제 slice(index, copyCount) 여러 데이터 잘라내어 새로운 배열 객체로 만듦 배열 예제 push(Object) var Users = [ {name:"수지",age:25}, {name:"안젤리나",age:22} ]; Users.push({name:"신혜",age:28}); conso.. 더보기
Node.js - 내장 모듈(os,path,url), 객체와 함수 내장모듈은 api를 참조하여 필요할때마다 찾아쓰는게 좋다 https://nodejs.org/api/ Index | Node.js v13.0.1 Documentation nodejs.org 1. os 내장모듈 var os = require("os"); // 현재 시스템에 대한 정보를 가지고 오는 애 console.log("시스템의 HostName: " + os.hostname); console.log("시스템의 메모리: " + os.freemem() + "/" + os.totalmem()); // 전체 메모리 중에 현재 사용할 수 있는 메모리 (8기가 중 4기가 사용중) console.log("시스템의 CPU 정보 \n"); console.log(os.cpus()); console.log("네트워크 정보\.. 더보기