- 의존성패키지 : 해당 프로젝트를 실행하는 데 꼭 필요한 라이브러리 ex) express 라이브러리로 서버를 동작하게 만든 node프로젝트는 express에 의존성이 있다고 할 수 있다. - 패키지 : Node.js에서의 패키지는 package.json으로 정의한 파일 또는 디렉터리를 의미한다. 패키지에는 package.json이 포함된다. 즉 package.json으로 정의한 코드 뭉치가 패키지이다. - 모듈 : npm install명령으로 설치한 패키지들. 이는 node_modules 에 저장된다. 즉 모든 패키지는 모듈이다. require(Common JS)나 import(ESmodule)문으로 읽을 수 있다. - package.json은 수동으로 만들 수도 있으나 npm init 명령어로 자동으..
동기 vs 비동기 프로세스의 수행 순서 보장에 대한 매커니즘 두 가지 이상의 작업의 리턴을 확인하고 다음 작업이 이루어지는지, 아닌지로 구분 동기 : 대상의 리턴시간과 결과를 반환하는 시간이 일치하는 경우. A의 종료시간과 B의 시작시간이 같다동기(synchronous)는 사전적인 의미로 '동시 발생[존재]하는' 라는 의미비동기 :리턴 값을 신경쓰지 않고 각각 동작 동기는 끝날 때까지 기다리고, 그 시간에 맞춰서 다른 작업을 수행하는 방식이고, 비동기는 작업을 해달라는 요청만 해놓고 더이상 신경쓰지 않고 있다가, 상대방이 끝나면 끝났다고 말해주는 방식이다. 블로킹 vs 논블로킹두 가지 이상의 작업의 제어권을 넘기느냐 , 넘기지 않느냐로 구분 요청받은 함수가 제어권을 언제 돌려주는지 가 핵심블로킹 (blo..
싱글스레드 자바스크립트 는 싱글스레드 언어이다 싱글스레드== 콜스택이 하나만 있다 == 한 번에 하나의 작업만 가능하다 V8엔진 자바스크립트와 *웹어셈블리 엔진 중 하나 , 자바스크립트를 바이트코드로 컴파일하고 실행하는 방식 V8엔진은 두 가지로 이루어져있다. 메모리 힙 (Memory Heap) : 메모리 할당이 이루어지는 곳 콜 스택 (call Stack) : 코드가 실행되면서 스택 프레임이 쌓이는곳 런타임 환경 런타임, 프로그램 언어가 구동되는 환경. 자바스크립트 엔진보다 더 큰 범위의 개념. 브라우저에서 자바스크립트가 실행된다면 브라우저가 런타임 환경일 것이고, node.js에서 실행된다면 런타임 환경은 Node.js 이다. 모든 브라우저는 자바스크립트 엔진 뿐 아니라 webAPI도 제공되는 자바스..
generic 함수 여러 타입을 처리할 수 있는 generic 함수를 구현 두 개의 인자를 받아 값을 반환하는 함수를 구현 지시사항 generic T의 타입으로 number와 string, boolean만 가능하도록 제약조건을 추가하세요. T가 number라면 두 수를 더한 값을 반환하세요. T가 string이라면 두 문자열을 이어붙인 값을 반환하세요. T가 boolean이라면 두 값을 or 연산을 한 값을 반환하세요. 실행 결과 28 hello true 정답 코드 function add(a: T, b: T): T { if(typeof(a)==="boolean"){ return a||b; } return a + b; } console.log(add(13, 15)); console.log(add("hell..
문제상황 : Node.js + express로 개발된 웹 서버 환경 재구축 vm 폴더에 backend/backend/app.js 처럼 폴더 중첩 문제가 있어 하위 폴더 제거 후 git clone으로 상위에 하나 더 가져왔다. 그런데 세팅 전에는 불러와지던 이미지 파일들이 불러와지지 않았다. 어제의 영향으로 혹시 서버가 두 개 켜진걸까 하고 foreverlist , pm2list 등 확인해보았는데 하나만 제대로 동작하고있었다. 그리고 오류가 난 시점이 위(clone 이후)와 같다고 생각해서 그 시점에서 어떤 것을 빼뜨렸을까 고민했다. - express.static 반영 확인 - monit 으로 확인했을 때 연결 확인 - forever list , pm2 list 로 서버 떠있는 목록 확인했고 express..