Node.js 는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.브라우저의 렌더링 엔진으로 해석되는 HTML, CSS 와 달리JavaScript 는 브라우저 내의 JavaScript 엔진을 통해 해석된다. \- 그중 크롬에서
Node Package Manager 의 약자로 Node.js 에서 사용할 수 있는 여러가지 모듈을 공유하는 곳이다.어플리케이션으로 들어오는 HTTP 요청 위에서 동작하는 기능을 캡슐화하는 방법이다.express 앱에서는 app.use() 를 호출하는 것으로 파이프라인
filglet 은 Text 를 아스키 아트로 만들어주는 NPM 모듈이다.liberary호출
개발자와 서버 사이에 최소한의 다리만 놓아줘 아이디어를 최대한 펼칠 수 있게 하면서도 유용한 기능을 제공하자프레임워크를 사용하다 보면 코드 한줄 작성하기도 전에 복잡한 코드들을 잔뜩 늘어놔야 할 때가 많지만,가장 먼저 불필요한 기능을 떼어내 필요한 것만 추가 해 접근성
NPM 에서 제공하는 미들웨어를 사용해 CORS 관련 출처를 다룰 수 있다.app.use(cors()) 를 선언해 모든 출처를 허용할 수 있다.app.use(cors()) 의 파라미터에 url 을 입력해주면 해당 url 만 허용시킬 수 있다.allowed 배열에 복수의
MVC 는 Model View Controller 의 약자로 서버 개발에 대한 디자인 패턴을 의미한다.RestAPI 서버를 구현할 때도 MVC 패턴을 사용하지만 사실상 View 는 사용되지 않는다는 특징이 있다.실제로 api 를 구현하는 모듈이다.controller
ECMAScript Modules 의 약자인 ESM 은 기존의 CommonJS 방식 대신 도입된 모듈시스템이다.import , export 문을 사용해 정적으로 모듈을 정의하고 가져올 수 있는 방식이다.npm 의 package.json 파일에 "type": "modul
파일은 항상 최상위 디랙토리내에 생성해줘야 한다.🔗 gitignore 생성기위 사이트에서 사용중인 환경을 입력 후 생성해주면된다.macOS, WebStorm, Node 를 입력해줬다.생성된 내용을 복사해 로컬 파일에 붙여넣어주면 된다.
npm 으로 jest 설치하기\--save-dev 는 해당 모듈이 개발 단계에서만 사용된다는 의미로 애플리케이션 작동과는 관련없다는 의미이다.이렇게 설치하면 package 의 devDependencies 에 기록되게 된다.그리고 scripts 의 test 도 아래와 같
puppeteer 를 설치한다.puppeteer 는 헤드리스 크롬 브라우저를 제어하기 위한 모듈이다.헤드리스 브라우저는 UI 가 없다는 특징을 갖고있다.지정한 포트에서 앱을 시작할 수 없을 때 발생하는 오류를 막기 위해 사용할 수 있는 포트를 찾아주는 유틸리티 모듈도
javaScript, JSX 에서 코드 문제를 식별하고 코드 스타일을 검사하는 정적 분석 도구코드베이스를 유지하고 품질을 향상시키기 위해 사용된다.global 로 설치할 경우 업데이트 시 오래된 프로젝트들이 린트 규칙에 걸리는 일이 발생할 수 있어 단위로 설치하는 것이
🔗 PUG 문법 정리HTML 의 중복되는 부분을 제거하기 위한 모듈views 디랙토리를 생성 후 원하는 pug 파일을 생성한다.파일은 아래와 같이 작성해줬다.이제 응답을 pug 파일로 할 수 있다.include 파일명 을 사용해 템플릿 조각을 사용할 수 있다.bloc
handlebars 는 균형이 잘 잡힌 템플릿 엔진에 속한다고 한다.프론트엔드와 백엔드 양쪽에서 자바스크립트와 쉽게 통합이 가능하다.개인적으로 html 의 괄호 방식이 너무 불편해서 나한테는 pug 가 더 잘 맞는 것 같지만 프론트 개발자의 접근성이 쉬워 더 범용성이
섹션은 View 에서 Layout 의 태그에 부족한 것을 추가해주는 기능을 한다.섹션을 사용하기위해 express engine 에 handlebars 를 설정할 때 헬퍼를 설정하면 쉽게 사용할 수 있다.섹션을 사용하기 위해선 layout 에 어느 부분에 섹션이 추가될건
여러 페이지에서 똑같은 구성요소를 재사용할 때 사용하는 기능이다.프론트엔드에서는 이 기능을 위젯이라고 부른다.특정 도시의 날씨를 조회할 수 있는 파셜을 만들었다./views/partials/weather.hbsdiv 태그가 파셜이라는 것만 이해하면 되고 내의 each
SSR 방식으로 웹앱을 개발하면 form 태그에 action 속성을 사용해 post 요청을 주고받는다.이 방식의 단점은 서버와 왕복 요청을 해야되기 때문에 페이지가 반드시 새로고침 되어야 한다는 점이다.fetch API 를 사용해 브라우저와 통신하면 왕복 요청할 필요가
javaScript 를 사용해 submit 을 가로채 fetch 방식의 rest api 로 요청을 보내는 방식으로 구현했다.form 태그의 enctype 속성엔 파일 업로드를 할 수 있는 컨텐츠 타입인 multipart/form-data 을 입력해주면 된다.아래는 ap
Express 어플리케이션으로 세션을 사용할 수 있게 도와주는 모듈이다.session id 는 쿠키를 사용해 전달되므로 쿠키를 사용하는 모듈도 필요하다.쿠키 미들웨어를 세션 미들웨어보다 먼저 연결 해줘야 한다.credentails 는 자격 증명을 저장하는 json 파일
미들웨어는 애플리케이션으로 들어오는 HTTP 요청 위에서 동작하는 기능을 캡슐화 하는 개념이다.get, post 는 라우트 핸들러라고 부르며,특정 HTTP 동사만 처리하는 미들웨어이다.next 는 파이프라인을 유지시키는 매개변수로 호출하지 않는다면 파이프라인이 종료되고
node express 는 대표적으로 개발, 배포, 테스트 3가지 실행환경을 표준 환경으로 한다.아래와 같이 실행중인 환경을 log 로 남길 수 있다.app.get('env') 기본값은 development 이다.서버 작동시 환경변수를 추가하면 실행 환경을 변경시킬
개발환경에서는 log 를 콘솔에 바로 출력하지만,배포환경에서는 log 를 파일로 저장하는 것이 좋다.로그 미들웨어를 사용해 파일로 저장시킬 수 있다.루트 디렉토리에서 조립해도 되지만 캡슐화를 해줬다.morgan 은 매개변수로 format 과 option 을 요구한다.개
node 는 자체적으로 앱 클러스터 라는 수평적 확장 방법을 지원 하고있다.app cluster 는 CPU 하나당 독립적인 서버를 운영할 수 있게 해준다.이 방법으로 서버성능을 최대한 끌어내고, 병렬서버를 최소한의 비용으로 테스트할 수 있게된다.루트 파일의 listen
mongodb://유저:비밀번호@호스트:포트/디비명?authSource=adminAuthentication 이 있다면 ?authSource=admin\` 을 추가해줘야 연결이 가능하다.위 방식으로 적용해도 작동은 되지만 몇가지 문제점이 발생한다.원격 저장소에 저장할경우
객체 모델이 매우 유연한 자바스크립트는 DB 를 파편화하고 최적화하기 어렵다는 단점이 있다.Mongoose 는 스키마와 모델을 도입해 균형을 찾고있다.models 라는 별도의 디렉토리를 생성해 관리하는 것이 좋다.mongoose 를 import 해 스키마와 모델을 정의
스키마와 모델을 생성해 export 한 모듈을 import 해서 사용하는 것이 편리하다.java 의 객체 생성과 흡사하다.생성한 객체에서 save 함수를 호출해면 된다.exec() 를 사용하면 프로미스 객체를 반환해준다.Spring WebFlux 의 Operation