728x90
반응형

분류 전체보기 432

Cluster

Cluster란? Cluster는 단일 쓰레드 환경인 Node.js 환경을 멀티쓰레드 처럼 동작할 수 있도록 만든 모듈이다. 기본적으로 하나의 프로세스가 32bit에서는 512MB의 메모리, 64bit에서는 1.5GB메모리를 사용하도록 제한되어 있다. V8엔진의 제한을 그대로 반영한 것인데, 설정을 더 늘릴 수는 있지만 그렇게 하기보다는 worker를 늘리는 것을 권장한다. 여러 개의 워커들이 병렬로 동작하며 효율을 극대화하는 것을 바람직한 방향으로 권하는 것. 모든 이벤트를 이벤트 큐로 넘기기 때문에 쓰레드가 하는 일은 그렇게 많지 않다. 대신 이벤트가 큐로 등록되기에 실행 시간이 예측하기 힘들다는 단점이 있다. 그래서 사용하는 것이 Cluster라는 기술이다. worker를 생성하는 두가지 방법 no..

TIL/Node.js 2021.07.21

Sass

Sass란? Sass(Syntactically Awesome StyleSheets)는 CSS pre-processor로서 CSS의 한계와 단점을 보완하여 보다 가독성이 높고 코드의 재사용에 유리한 CSS를 생성하기 위한 CSS의 확장(extension)이다. CSS의 간결한 문법은 배우기 쉬우며 명확하여 프로젝트 초기에는 문제가 없이 보이지만 프로젝트의 규모가 커지고 수정이 빈번히 발생함에 따라 쉽게 복잡해지고 유지 보수도 어려워지는 단점도 가지고 있다. 이러한 CSS의 태생적 한계를 보완하기 위해 Sass는 다음과 같은 추가 기능과 유용한 도구들을 제공한다. 변수의 사용 조건문과 반복문 Import Nesting Mixin Extend/Inheritance CSS와 비교하여 Sass는 아래와 같은 장점..

TIL/Node.js 2021.07.21

Babel

Babel이란? Babel은 자바스크립트 컴파일러로서, 최신의 자바스크립트 코드를 이전 단계의 자바스크립트 코드로 변환 가능하게 해주는 개발 도구, 즉 트랜스파일러(Transpiler)이다. 이와 같은 트랜스파일러(Transpiler)가 필요한 이유는, ES6+를 사용하여 프로젝트를 진행하려면 ES6+로 작성된 코드를 IE를 포함하여 모든 브라우저에서 문제 없이 작동할 수 있는 코드로 변환해야 하기 때문이다. 즉, Babel 패키지를 활용하면 자바스크립트 최신 문법으로 자유롭게 코딩하면, 그것과 웹브라우저간의 호환을 Babel 패키지가 책임져준다. 아래 예제는 ES6의 화살표 함수와 ES7의 지수 연산자를 사용하고 있다. // ES6 화살표 함수와 ES7 지수 연산자 [object_name].map(n ..

TIL/Node.js 2021.07.21

Tedious

Tedious란? Tedious는 Node.js에서 MSSQL을 사용하기 위해 개발된 모듈 패키지이다. 사용 방법 Database 환경 설정 var Connection = require('tedious').Connection; // Create connection to database var config = { authentication: { options: { userName: '[userName]', password: '[password]' }, type: 'default' }, server: '[Server_url]', // server 주소 options: { database: '[db_name]', encrypt: false // 암호화 여부 } }; const connection = new C..

TIL/Node.js 2021.07.21

Express

Express.js란? Express.js는 Node.js의 핵심 모듈인 http와 Connect 컴포넌트를 기반으로 하는 웹 프레임워크다. 그러한 컴포넌트를 미들웨어(middleware)라고 하며, 설정보다는 관례(convention over configuration)와 같은 프레임워크의 철학을 지탱하는 주춧돌에 해당한다. 즉, 개발자들은 특정 프로젝트에 필요한 라이브러리를 어떤 것이든 자유롭게 선택할 수 있으며, 이는 개발자들에게 유연함과 수준 높은 맞춤식 구성을 보장한다. Node.js의 핵심 모듈만 이용해서 중요 앱을 작성한다면 다음과 같은 비슷한 작업을 위해 동일한 코드를 지속적으로 작성함으로써 바퀴를 재발명할 가능성이 높다. HTTP 요청 본문 파싱 쿠키 파싱 세션 관리 URL 경로와 HTTP..

TIL/Node.js 2021.07.21

Module

1. 모듈이란? 모듈이란 "독립된 기능을 갖는 것(함수, 파일)들의 모임" 이다. 옛날 방식인 절차 지향으로 모든 기능을 써내려 가는 것보다, 기능 별로 함수를 만들어 함수를 호출하는 방식으로 프로그래밍을 하면 유지 보수가 훨씬 편해진다. 이러한 모듈 개념을 Node.js에서 사용하고 있다. 모듈은 Node.js에서 제공하는 것이 있고, 또는 누군가가 만들어 놓은 모듈이 있으며, 직접 만들 수도 있다. 모듈을 라이브러리화 시켜서 깃헙에 올릴 수도 있고, 비즈니스 로직에 따라 모듈을 만들어 사용할 수도 있고 굉장히 자유롭다. 모듈은 2가지로 나눌 수 있다. 외장 모듈 내장 모듈 2. 직접 모듈 만들고 불러오기 모듈을 생성하기 위해서는 exports 전역 객체를 사용하고, 모듈을 불러오기 위해서는 requi..

TIL/Node.js 2021.07.21

Event

노드에서 Event란? 노드에서는 대부분의 이벤트를 비동기 방식으로 처리한다. 또한, 비동기 방식으로 이벤트를 전달한다. 이벤트는 한쪽에서 다른 쪽으로 알림 메시지를 보내는 것과 비슷하다. 노드에는 이런 이벤트를 보내고 받을 수 있도록 EventEmitter라는 것이 만들어져 있다. 노드의 객체는 EventEmitter를 상속 받을 수 있으며, 상속 받은 후에는 EventEmitter 객체의 on()과 emit() 메소드를 사용할 수 있다. on() 메소드는 이벤트가 전달될 객체에 이벤트 리스너를 설정하는 역할을 하는데 이 리스너 함수는 객체로 전달된 이벤트를 받아 처리할 수 있다. emitter.addListener(event, listener) : on() 와 동일하다. 이벤트를 생성하는 메소드이다...

TIL/Node.js 2021.07.21

Nodemon

Nodemon이란? Nodemon은 node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉터리를 감시하고 있다가 파일이 수정되면 자동으로 노드 애플리케이션을 재시작하는 확장 모듈이다. 이 확장 모듈을 이용하면 개발 중인 노드 애플리케이션의 소스 코드를 수정할 때마다 매번 노드 명령어를 통해 새로 시작할 필요가 없으므로 매우 편리하다. 설치 nodemon 모듈은 npm 명령으로 쉽게 설치할 수 있다. 노드 애플리케이션을 개발할 때마다 사용되기 때문에 글로벌로 설치한다. # npm install nodemon -g 사용 방법 실행 터미널에서 실행하고자 하는 애플리케이션을 node 명령어 대신 nodemon으로 실행하면 된다. # nodemon app.js [nodemon] 2.0.7 [nodem..

TIL/Node.js 2021.07.20

Metro Server 연결 명령어

React-Native 를 이용하여 안드로이드 앱을 개발할 때 메트로 서버와의 연결이 끊기는 경우가 종종 있다. 그럴때마다 매번 앱을 종료하거나 메트로서버를 종료하고 다시 켜다보면 시간이 매우 지체되곤 한다. 간단한 cmd 명령어로 안드로이드 예뮬레이터(혹은 기기)와 연결할 수 있다. 메트로서버는 기본적으로 연결 포트번호가 8081로 설정되어있다. 다수의 예뮬레이터를 실행시켜서 개발해야 하는 경우, 예뮬레이터에서 각각의 포트번호를 다르게 설정해주면 메트로 서버를 2개 이상 켜서 사용할 수 있고, 각각의 예뮬레이터와 독립적으로 연결하여 사용할 수 있다. 포트번호를 설정하지 않고 메트로서버를 1개만 사용하는 경우, 예뮬레이터의 포트번호가 기본값으로 모두 8081로 설정되기 때문에, 충돌이 생긴다. 다음의 명..

TIL/React-Native 2021.07.20
728x90
반응형