본문 바로가기
반응형

JavaScript/node.js8

React serve 명령어로 배포하기 (+포트변경) VM 을 이용해서 배포를 해야할 일이 생겨서 공부해봤다. 전에 프로젝트를 배포할 때 사용했던 AWS EC2에 접속 후 했던 과정과 비슷했다. 배포과정 VM 접속, node.js 설치 git 레포 clone 리액트 프로젝트 빌드 빌드된 파일을 serve 이용해서 배포 1. VM 접속, node.js 설치 접속은 리눅스에서 ssh 명령어를 이용해서 한다. wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash node.js 를 설치하기 전에 nvm을 설치하기 위해 위 명령어를 실행한다. 설치가 끝나면 잘 설치되었는지 확인하기 위해 nvm --version 위 명령어를 실행한다. nvm의 설치버전이 출력된다면 잘 설치된 .. 2021. 4. 24.
export로 환경변수 만들고 process.env로 사용하기 export 환경변수명 = 값터미널에서 export 키워드로 환경변수를 추가해줄 수 있다. 보통 DB 접속시 사용하는 패스워드를 프로젝트 파일에 하드코딩해서 남기는 경우 패스워드가 유출될 수 있기 때문에 작성하지 않고, 환경변수를 이용해서 작성하곤 한다. 추가한 환경변수는 프로젝트에서 process.env.환경변수명으로 사용할 수 있는데, 환경변수를 터미널에서 추가하고, 환경변수 목록을 출력해도 저장되어있는데 process.env로 불러오면 undefined 가 출력되는 경우가 있다. 이는 프로젝트가 실행되고 있는 터미널에서 환경변수를 추가하지 않았을 경우 발생한다. 해결하기 위해선 DB에 패스워드로 접속하는 프로젝트의 터미널에서 export 키워드로 환경변수를 추가해주어야 한다. 내 경우엔 VS COD.. 2020. 12. 8.
TIL1208 [MVC 패턴] ORM Sequelize 사용 Sequelize와 Sequelize-cli 를 모두 사용했습니다 MVC (Model, View, Controller) 역할 Model - 뷰에 표현되는 데이터 View - 모델에서 데이터를 받아 사용자에게 보이는 페이지 Controller - 사용자와 상호작용하며 사용자의 명령을 받아 Model을 변경시키고 변경된 사항을 View에 전달 ORM (Object Relation Mapping)을 사용하는 이유 ORM을 사용하면 객체(데이터)를 DB에 넣을 때 SQL문을 직접 사용하지 않아도 된다. 개발자가 ORM을 통해 명령을 전달하면 ORM은 명령에 맞는 SQL문을 DB에 전달해서 DB에 변경사항을 만든다. ORM은 일종의 SQL 번역기라고 생각할 수 있다. 모델 작성 npx sequelize-cli i.. 2020. 12. 8.
늦은 node.js basic-server 만들기... 기본설정 expressjs.com/ko/starter/hello-world.html const http = require('http'); const { report } = require('process'); const PORT = 5000; const ip = 'localhost'; 서버설정 ( 라우팅, CORS, 에러 ) request.on()에서 'data', 'end' 처럼 이벤트에 콜백함수가 붙은것은 모두 비동기로 처리된다. const server = http.createServer((request, response) => { console.log( `http request method is ${request.method}, url is ${request.url}` ); //request 객체의 .. 2020. 11. 18.
express 웹 애플리케이션 프레임워크 과제 프로젝트에서 작성한 내용 기준으로 작성함 설치 npm install express --save express 설치는 --save 옵션을 붙여서 해당 프로젝트에만(로컬) 설치 되도록 한다. 기본설정 const express = require('express'); const app = express(); const port = 3000; app.listen(port, () => { // console.log(`Example app listening at http://localhost:${port}`) }) 위 코드가 기본 설정이다. express객체를 생성해서 사용한다. listen(port, ()=>{})메서드를 사용해서 localhost의 해당 포트로 오는 요청을 받을 수 있도록 설정한다. ----.. 2020. 11. 18.
TIL 1109 Promise async&await JSON.parse Promise 객체 Promise.. 그것은 약속이다. 어떤약속이냐 웹에서 데이터를 얻어서 보내주거나 얻지 못한다면 (에러발생시) 이유와 함께 에러를 발생시키도록한 약속! .then() 은 Promise 객체 내에서 resolve()에 전달된 데이터를 받는다. .catch() 는 Promise 객체 내에서 에러 발생시 reject()에 전달된 데이터를 받는다. Promise의 3가지 상태 Pending (대기) Fulfilled (완료) Rejected (거부) 순서도 pending 1-1 -resolve-> 2. fulfilled (settled) 1-2 -rejec-> 2. pending (settled) Promise 객체는 이벤트 루프에서 대기상태를 유지하다가 실행순서가 되면 비동기적으로 실행되고.. 2020. 11. 10.
npm package.json NPM NPM은 Node Package Manager로 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어다. 앞으로 필요한 모듈은 대부분 NPM에서 다운로드해서 사용한다. node 모듈을 사용하는 프로젝트에서 npm이라는 키워드는 하나의 명령어처럼 사용된다. npm start처럼, 프로젝트를 실행시킬 때 npm 키워드를 사용하기도 한다. package.json 프로젝트에 대해 필요한 모듈이 무엇인지 알려주는 역할을 하는 것이 바로 *_package.json *_이다. package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있다. 프로그램을 실행시키기 위해 필요한 실제 모듈은 node_modu.. 2020. 10. 25.
this call() apply() bind() this 패턴바인딩되는 객체 (브라우저)바인딩되는 객체 (node.js)Globalwindow (strict mode - undefined)module.exportsFunction 호출window (strict mode - undefined)global 화살표함수의 this const foo = () => { return this } foo() === module.exports //true 메서드 안에서 this를 호출하면 global이 바인딩되는 것이 맞지만, 화살표 함수 내에서 this를 호출하면 메서드 내부에서 호출한 것이 아닌 해당 함수가 선언된 위치를 기준으로 this 가 바인딩 되게 된다. (*좋은 설명 있으면 추가할 것.) call() call은 항상 함수를 "실행"한다. 첫 번째 인자가 항.. 2020. 10. 20.
반응형