Langauge (4) 썸네일형 리스트형 for문은 되는데 map은 안됩니다? 최근에 특정 테이블을 정규화 시키면서 데이터를 모두 컬럼값에 맞게 마이그레이션 할 일이 생겨서 마이그레이션 코드를 만들었다. map으로 컬럼값을 순차적으로 넣으려고 했는데 too many connections 에러를 뱉으며 중간에 멈춰버렸다. node js로 개발하면서 비동기성으로 인한 오류를 만날때가 많은데, 이도 같은 문제였다. map안에서 async-await문을 실행하면서 생긴문제였다. 이는 promise와 비동기를 정리하면서 계속) response validator joi 사용하기 node js는 매우 자유롭다. 자바스크립트 특성상 타입을 엄격하게 구분하지않는다. 이런 점은 장점이 되기도 하지만 실수의 여지가 될 가능성이 높다. 그래서 자체적인 코드로 API의 response값을 체크해주게 되는데, 이는 코드의 중복을 늘리게 된다. 이런 불편함에 node는 response value에 대해 validation check를 위한 joi라는 모듈을 제공한다. 조이 모듈은 스키마로 데이터의 조건을 설정한다.(나는 스키마만 모아두는 schema.js 파일에 모두 넣어 쓰기로 했다.) 예를 들어, name과 birthyear을 body의 값으로 받아온다고 하면(post방식) name, unit 은 스트링일 것, 파라미터에 꼭 포함될 것을 조건으로 가지고 있다. (조건은 훨씬 다양하다.) 이.. Javascript는 왜 single thread 일까? 현재 회사에서는 javascript 기반의 node js를 서버 언어로 쓰고있다. 자바스크립트는 기본적으로 비동기적인 작업방식을 가진다. 그래서 자바스크립트로 로직을 구현하다보면 작업을 동기적으로(순서대로) 처리하기위해 async/await나 promise를 써서 처리할때가 많다. js가 비동기적으로 작업을 처리하도록 만들어져 있는 이유는 싱글스레드 기반의 언어이기 때문이다. 싱글스레드는 순차적으로는 한번에 하나의 일밖에 처리를 하지 못하는데, 그렇게 되면 한번에 여러 일이 들어왔을때 선행하는 일이 끝날때까지 다른 요구사항은 멈춰있게 된다. 이를 blocking이라고 한다. 그래서 자바스크립트는 비동기 방식을 적용하여 한번에 여러 일이 들어오더라도 서비스가 멈추는것처럼 보이는(blocking)일이 없도록.. node.js - createstrategy 사용하기 프로젝트를 시작하면서 로그인과 회원가입에 인증기능을 넣어야 할때가 왔다. 그래서 passport.js 의 인증기능을 사용하기로 했는데.... 이전 1 다음