본문 바로가기

Server/Node.js

(5)
<Node> M1 Mac에서 Rosetta로 노드 패키지 설치하기 * 배경 - 최근 Cypress라는 프론트엔드에서의 E2E테스트 툴을 공부하면서 발생한 문제와 그 해결과정을 공유하려 한다. 사실 Cypress 공식 문서에 해결방법이 나와있긴 하지만 왜? 라는 의문이 생길 수 있고, 다른 패키지를 설치할 경우에도 충분히 발생할 수 있는 문제이다. - 필자는 MacBook M1 Air (맥북 M1 에어) 모델을 사용하고있으나 지금까지 OS 관련 문제를 겪어본 적은 없었다. 프론트엔드의 경우 M1과 관련된 특별한 호환 이슈는 들어본 적이 없기도 했고, 비교적 최근에 (2021) 맥북을 구매해서일 수도 있다. - 하지만 Cypress를 설치하고 실행했더니 다음과 같은 Cypress failed to start 에러가 발생하였다. - Platform이라는 텍스트를 봤을 때, ..
<노드JS> http 서버 만들기 1. http 서버 만들기 * 포트 연결 - http 요청에 응답하는 노드 서버를 만들어 보자. const http = require('http'); http.createServer((req, res) => { // 응답 내용 }); - 위와 같이 http를 불러와서 createServer로 서버를 만들 수 있다. - res로 응답을 보내는데 write로 응답내용을 적고, end로 끝을 낸다. // server1.js const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'content-Type': 'text/html; charset=utf-8' }); res.write('Hell..
<노드JS> 노드 내장 모듈 1. os & path * os - 운영체제의 정보를 담고 있다. const os = require('os'); console.log(os.arch()); // x64 console.log(os.platform()); // win32 console.log(os.type()); // Windows_NT console.log(os.cpus()); // [ // { // model: 'Intel....', // speed: 9999, // // ... // }, // {//...}, // {//...}, // {//...}, // ] console.log(os.freemem()); // 123456789 console.log(os.totalmem()); // 1234567890 - os.arch() : prc..
<노드JS> 노드 내장 객체 1. 전역객체, console객체, 타이머 * global - 노드의 전역 객체를 의미하며, 브라우저의 window같은 역할이다. 그러나 document는 존재하지 않는다. - window와 같이 생략이 가능하다. (ex. console) - 최근에는 브라우저와의 호환을 위해서 globalThis로 통일되어 사용할 수 있다.(익스플로러에서는 동작X) - global 속성에 값을 대입하면 다른 파일에서도 사용이 가능하지만 관리가 힘들어지므로 권장하지 않는다. * console - 브라우저의 console과 거의 같다. - console.log : 로그 - console.time, console.timeEnd : 시간 로깅 - console.error : 에러로깅 * 타이머 메서드 - 브라우저의 시간과 관련..
<노드JS> 노드 JS란 1. 노드 JS란 * 정의 - 노드 js는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다. (Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. ) - 위 문구는 노드js 공식사이트에서 노드js를 설명하는 문장이다. 흔히 노드js를 서버라고 오해하는 경우가 많으나 노드js는 단지 js코드를 실행시켜주는 도구 중 하나이다. - 노드외의 런타임을 예시로 알아보자면 웹 브라우저(크롬, 엣지, 사파리, 파이어폭스 등)들이 있다. - js가 브라우저에 한정된 언어라는 단점을 극복하기 위해 js 런타임을 만들기 위한 다양한 시도들이 있었으나 엔진 속도 문제를 극복하지 못하였다. 그러나 크롬 V8 엔진이 엄청난 속도를 보여주..