1. 요청과 응답 이해하기 이벤트 리스너를 가진 노드 서버를 만들어보자!! ex) const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }); res.write('Hello Node!'); res.end('Hello Server!'); }); server.listen(8080); server.on('listening', () => { console.log('8080번 포트에서 서버 대기 중입니다!'); }); server.on('error', (error) => { console.error(error); ..

1. REPL 사용하기 자바스크립트는 스크립트 언어이므로 미리 컴파일을 하지 않아도 즉석에서 코드를 실행할 수 있다. 브라우저 콘솔 탭에서도 가능하고 노드에서도 가능하다. 노드에서는 입력한 코드를 읽고(READ), 해석하고(EVAL), 결과물을 반환하고(PRINT), 종료할 때까지 반복한다(LOOP)고 해서 REPL(Read Eval Print Loop)이라고 부른다. cmd에서 node를 입력하면 실행된다. 2. js 파일 실행하기 REPL에 긴 코드를 입력하는 것은 불편하기 때문에 파일로 실행한다. node ex.js(js는 생략가능) 3. 모듈로 만들기 모듈 : 특정한 기능을 하는 함수나 변수들의 집합 모듈 만들기 const odd = '홀수입니다'; const even = '짝수입니다'; modu..
ES2015(ES6) 등장 최신 문법 몇가지 1. const, let 2. 템플릿 문자열 3. 객체 리터럴 4. 화살표 함수 5. 구조분해 할당 6. 클래스 7. 프로미스 1 프로미스 예제1 const condition = true; // true면 resolve, false면 reject const promise = new Promise((resolve, reject) => { if (condition) { resolve('성공'); } else { reject('실패'); } }); // 다른 코드가 들어갈 수 있음 promise .then((message) => { console.log(message); // 성공(resolve)한 경우 실행 }) .catch((error) => { console...

nodejs는 Chorme V8 Javascript 엔진으로 빌드된 Javascript 런타임입니다. (런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경) 이벤트 기반(event-driven) : 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식 이벤트 루프 : 이벤트 발생 시 호출할 콜백 함수들을 관리하고, 호출된 콜백 함수의 실행 순서를 결정하는 역할을 담당합니다. 노드가 종료될 때까지 이벤트 처리를 위한 작업을 반복하므로 루프라고 부릅니다. 백그라운드 : setTimeout 같은 타이머나 이벤트 리스너들이 대기하는 곳입니다. 자바스크립트가 아닌 다른 언어로 작성된 프로그램이라고 봐도 됩니다. 여러 작업이 동시에 실행될 수 있습니다. 태스크 큐 : 이벤트 발생 후, 백그라운드에서는 ..
거스름돈 처음 코드, 그냥 dfs를 사용하니 효율성 0이 떴다. dp로 풀어보자 function solution(n, money) { money.sort((a,b)=>a-b); let answer=0; for(let i=0;iacc+cur,0); } return ans(money.length,n) } 수정2 function solution(n, money) { let dp=[1].concat(Array(n).fill(0)); money.forEach(v=>{ dp[v]+=1; for(let i=v+1;ii.sort()); result=result.map(i=>i.toString()); return [...new Set(result)].length; } 안될줄 알았는데 그냥 됬다.... 모지 dfs로 그냥..
git rm .env --cached 한 후에 .gitinore에 추가하면 된다.

yarn create react-app blog-fronted 아래 방법으로 두 프로젝트 한꺼번에 관리(blog폴더로 관리하는 것 보다 자동 import 더욱 완벽) yarn add react-router-dom yarn add redux react-redux redux-actions immer redux-devtools-extension snippet-generator.app/ snippet generator Snippet generator for Visual Studio Code, Sublime Text and Atom. Enjoy :-) snippet-generator.app snippet을 만드는 법 원하는 코드를 입력하고 바뀌는 내용을 ${TM_FILENAME_BASE}으로 입력한다. ${1}을..
JWT(JSON Web Token) : 데이터가 JSON으로 이루어져 있는 토큰 로그인을 서버에서 처리하는 데 사용할 수 있는 대표적인 두 가지 인증 방식 1. 세션을 기반으로 인증 2. 토큰을 기반으로 인증 User 스키마/모델 만들기 yarn add bcrypt src/models/user.js import mongoose, { Schema } from 'mongoose'; import bcrypt from 'bcrypt'; const UserSchema = new Schema({ username: String, hashedPassword: String, }); UserSchema.methods.setPassword = async function (password) { const hash = awai..