JavaScript 언어로 서버어플리케이션 로직을 구현할 수 있는 프레임워크이다.비동기구현(non-blocking)에 유리하며, 메모리 할당량이 Spring에 비해 적다.TypeScript의 특성이 없어, IDE의 정적환경에서 에러를 미리 잡아내지 못하고 실행전 오류를
node.js는 확장자명에서 볼 수 있듯이 JavaScript 언어를 사용한다.Python / C++과 같은 객체지향언어지만, 프로토타입 기반의 언어이다.(\*Python, C++은 class 기반의 언어)class 기반언어의 경우 객체를 생성하기전에 클래스를 정의하고
함수인자중 전달자가 함수형태로 전달받는 경우를 callback.함수인자중 return(반환자)가 함수형태(익명)로 전달되는 경우를 closer.세 인자중 마지막 인자가 callback 함수로 전달되어, 해당 함수가 실행된다.JavaScript에서 순차실행을 보장할 수
node.js의 가장 핵심인 웹페이지 구성을 위해 사용하는 JavaScirpt 문법, 라이브러리웹페이지에 대한 다양한 효과와 인터페이스를 구성할 수 있다.JQuery의 핵심은 JavaScript 문법을 통해 html/template 요소를 구현하는 것과, MySQL과
node.js는 웹페이지 서버가 사용자의 요청을 받고 이에 대해 응답하도록 로직을 구현하는 것이 핵심이다.Routing 사용자 request인 get/post 등에 대해 웹어플리케이션(웹페이지)가 응답하는 방식, (response)을 정의하는 과정을 일컫는다. 넓게 말
node.js는 웹페이지 서버가 사용자의 요청을 받고 이에 대해 응답하도록 로직을 구현하는 것이 핵심이다.Express이때 사용하는 app의 인스턴스는 Express prototype을 참조한다. 즉 Express 라이브러리를 사용하여 해당 속성을 넘겨받는데, 서버요청
node.js는 기본적으로 백엔드 프레임워크이다.즉 data 네트워크를 위한 포트, DB 등 데이터 전달 과정이 원활하게 이루어지도록 관리가 필요하다.프로젝트 수준의 환경변수 사용이 가능하다.dotenv는 DB 관련 정보를 소스내 오픈하지 않고, 별도 외부 환경변수파일
우리가 보는 웹페이지 화면은 Server에 Request를 보낸 후 받은 Response이다.기본적으로 사용자가 Server로부터 받는 Response는 html형식으로 구현된 template이다. 이는 http 프로토콜을 통해 이루어지는 통신 과정이기도 하며, 사용자
npm : node package managernvm : node version managernpm은 노드 패키지 매니저, nvm은 노드 버전 매니저로 말 그대로 각각 패키지(노드 주요 명령어 라이브러리를 제공)와 노드 버전을 관리를 지원해준다.node.js는 크게 보
Routing을 하기 위한 핵심 라이브러리기본적으로 웹페이지 접속은 사용자 대역과 Server 대역간의 데이터 송수신, 즉 Routing을 통해 이루어진다.이때 송수신되는 데이터는 node.js 에서 하나의 객체, 인스턴스로 다루어지며 이 인스턴스는 Express Pr
https://engineering.linecorp.com/ko/blog/pm2-nodejs/https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=buskerlic&logNo=2213
특정 프레임워크 및 application에 맞게 설계된 언어우리가 특정한 프로그램을 설계하기위해 사용하는 개발언어들은 각각 구현체계 및 환경과 맞는 IDLE 및 설계툴이 존재한다.각 IDLE 및 설계툴에 맞게 활용할 수 있는 언어들을 Script언어라 일컫는다. Scr
문자열내 변수화한 문자 및 상수를 사용하기 위해선 백틱을 사용한다.이때 변수화한 문자 및 상수를 template stirng이라 한다.
반복자를 사용할 수 있는 객체, 혹은 그 객체를 사용할 수 있는 함수이다.우리가 보통 사용하는 함수는 로직을 실행한 후 return을 통해 반환한 후, 재호출이 발생하기 전까지는 완전히 종료된다.그러나 generator는 종료의 개념이 아닌, 보류의 개념이다.yield
'use strict' const dns = require('dns') //dns 문자주소를 탐색 dns.lookup('google.com')(err, address, family) =>{ console.log(address :${address}, ${fami
메모리 누수는 두가지 형태가 있다.메모리를 사용할 수 있음에도 불구하고 가용한 자원으로 인식되지 않는 상태메모리 참조후 해제를 하지 않아 실수로 메모리를 사용하지 못하는 상태메모리 누수는 시스템 자원 활용 관점에서 봐야할 문제로, 코드상에서 메모리 누수 양상을 파악하는
Promise 객체들이 모두 실행완료될 때까지 대기결과 : promise 변수 모두 출력(객체처럼 출력됨)Promise 객체들 중 하나라도 실행이 완료되면 즉시 종료결과 : 가장 빨리 실행되는 promise 변수 출력(문자열 출력)
Javscript의 동작기초를 이해하기 위해선 비동기처리 및 non-blocking 개념을 먼저 이해해야 한다.비동기처리비동기처리는 순차실행과 상반되는 개념으로, 앞선 코드의 온전한 실행 및 종료를 기다리지 않고 다음 코드를 실행하는 것을 일컫는다.물론 javscrip
비동기 처리를 보장받기 위해 사용하는 Promise 객체, 혹은 이를 생성하여 사용하는 함수callback이나 closure를 통해 Promise logic을 실행하여, resolve를 선언하여 해당 Promise 함수의 이행 logic을 구현할 수 있다.해당 Prom
## 1-1. callback > 함수의 인자를 전달받을 때 변수가 아닌, 함수를 전달받는 경우를 말한다. ```javascript function Reference(id, log){ const user = { id : id, name : "Use
함수에 전달되는 인자를 통해 또다른 함수를 호출하는 구조비동기처리 관점에서기존 return을 통해 구현하기 힘들었던 비동기처리 체계를 callback 구조를 통해 구현할 수 있다.쉽게 말하면 함수의 return이 또 다른 함수형태로 되어있는 구조이다.Closure의 중
## 1-1. Binding > 정의되어 있지 않은 객체를 의미있는 객체로 만드는 과정으로, 함수나 객체로 접근하기 위해 연관이 되도록 묶는 작업을 말한다. ```javascript "use strict"; function ref() { console.lo
## 1. Singleton pattern >node.js 프로그래밍에서 class의 instance는 최초 선언 및 초기화할 때 **단 한번만 선언되는 구조**를 말한다. node.js를 뿐만 아니라 javascript 환경에서 class를 사용할 때 유의해야
## 1. microservice 아키텍쳐 > application의 모든 기능들을 하나의 container에 담는 것이 아닌, 독립적인 기능을 수행하는 각각의 module들을 interconnect하여 구현한다. > 각각의 독립적인 기능을 수행하는 module들을
## 1-1. 정적처리 javascript에서의 정적처리는 두가지 상황이 존재한다. > .png, .jpg 등 배경화면 구성 및 인터페이스 구성을 위해 이미지 파일 등을 사용하는 경우 > **class 및 객체에서 별도의 new 선언없이 바로 접근하여 사용할 수
## 1-1. pattern을 통한 서버작업 처리 > node.js 에서 활용하고자 하는 Pattern들은 각각 고유한 특징과 장점을 가진다. 단순히 싱글스레드, singleton pattern이 서버작업처리에 부합하기 때문에 node.js를 사용하는 관점보다는,
- 기본적인 lifecycle이나 구축방법을 생각하면서 코드를 바라보자. > 코드와 문제를 그 자체로 보지말고, 본질적으로 접근하고 방안을 구상한다. - 어떤 함수나 코드를 사용해서 구현해야 하는가는 나중의 일이다. - 이 상황, 문제에서 어떤 로직이 필요할 지를
## 1. 왜 callback을 사용하는가 - 일반 함수의 return logic은 javascript의 실행구조상 undefined 문제가 발생할 수 있다. - 이 undefined 문제를 방지하기위해 logic의 순차처리를 보장받기 위해 사용한다. ## 2.
class나 객체의 instance를 생성하는 인자로, 최초 생성자 실행시에 instance가 생성된다.super() 이용하면 생성자를 상속받을 수 있다.super의 인자에는 상속받는 생성자의 인자를 모두 포함하고 있어야 하며,생성자를 상속받았기 때문에 다른 객체라도
javascript 뿐만 아니라, 다른 프로그래밍을 할 때 객체의 속성은 다음과 같은 종류들이 존재한다.value : 값속성, 값 자체get / set : 확보/접근속성, 객체의 인스턴스를 확보하거나 접근가능여부(True or False) writable : 수정속성,
message queue 경로를 통해 서로 종속적인 관계에 있는 module을 분리하는 과정Publisher는 data를 전달하는 주체, Subscriber는 data를 전달받는 대상이다.서로 직접적으로 data를 주고받는 과정을, Publisher가 evenet를 발
요청한 엔드포인트를 응답할 때 활용하는 명령어로, 엔드포인트로부터 data를 얻기위해 필요한 호출함수 및 언어이다.client와 server간 data 및 웹페이지(template)을 송수신하는 과정의 핵심은, 엔드포인트에서 data를 확보하는 시점이다.우리(=clie
GraphQL과 마찬가지로 Query문을 통해 data 및 여러 정보를 얻을 수 있는 UI이다.다만 GraphQL과 Query문 작성구조나 문법이 약간 다르다.또한 GraphQL은 요구하는 module이 상대적으로 적은데, apollo server의 경우 Query 작
1. Redis 개념 / Event-Driven Programming > 비관계형으로 데이터베이스를 관리하는 시스템 > Redis는 javascript와 같은 Event Driven 형식의 실행구조로 되어 있다. 즉 Redis server는 Cache memory