JavaScript는 Single Thread 기반이기 때문에 기본 동기 방식으로 동작한다. 이는 높은 동시성을 요구하는 애플리케이션의 성능 저하를 일으키는 요인으로 작용한다. Node.JS는 이와 같은 JavaScript의 Single Thread 방식을 개선하고 비동기 처리 방식을 지원하기 위해 Event Loop & Callback Function을 활용한다. Event Loop Event Loop는 JavaScript가 비동기 Thread를 실현하도록 하기 위한 중요한 개념 중 하나이다. 즉 이벤트 루프의 동작 방식을 이해하면 Node.JS를 기반으로 개발 시 높은 퍼포먼스를 나타낼 수 있다. Node.JS는 JavaScript의 사상을 그대로 적용하여 이벤트 기반 서비스라고 한다. Event L..
NodeJS의 필요성에 대해 살펴본 다음 포스팅에서 우리는 NodeJS가 MSA 환경에 적합한 Runtime 구조 중 하나임을 알게 되었다. WASPRO : NodeJS 어떻게 사용할래? 결국 MSA를 설명하는 기조는 바로 클라우드와 귀결되기 때문에 결국 NodeJS가 MSA 환경에 적합하게 동작하기 위해서는 Cloud 기반 Dockerizing이 반드시 함께 수행되어야 할 일이다. 이번 포스팅에서는 바로 NodeJS의 Dockerizing 과정에 대해 살펴보도록 하자. package-lock.json 앞서 다양한 NodeJS 관련 포스팅이 진행되며, Node Module을 설치하기 위해 package.json을 작성하고 npm install을 활용하는 방법에 대해 다루었다. WASPRO : NodeJS..
다음으로 NodeJS 기반 Database 연동 방법에 대해 알아보자. MySQL 연동 NodeJS는 Database와 연동을 위한 Connector를 Node Module로 제공한다. 대부분의 알려진 Database 연동 모듈을 제공하지만, 국내 티맥스소프트 사의 Tibero DB는 아직 Node Module에 공식으로 등록되어 있지는 않다. NODE MODULE 설치 이번 가이드에서는 MySQL과의 연동과정을 살펴보도록 하겠으며, 다음과 같이 먼저 mysql node module을 설치한다. D:\NodeJS>npm install mysql2 --save npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules\fseve..
앞서 package.json을 통해 node module이 관리되어진다는 것은 이미 확인하였다. 그렇다면, package.json으로 관리되는 node module은 어떠한 방식으로 dependency를 관리하고 module을 설치하는지 살펴보도록 하자. NPM NPM은 Node Package Manager로써 다음과 같은 기능을 담당한다. NodeJS로 만들어진 모듈을 웹에서 다운로드 받아 설치하고 관리하는 기능 NodeJS 모듈의 버전을 관리하고 호환성을 관리하는 기능 즉 NodeJS Module을 설치하고, 관리하고, Dependency를 유지해 주는 말 그대로의 관리 매니저라 할 수 있다. NPM 활용 그렇다면 NPM은 어떻게 활용할 수 있는지 살펴보도록 하자. 1) npm version (npm..
앞서 살펴본 봐와 같이 Express EJS Sample Package를 생성하면 이미 3000 port 기반으로 Express Sample이 구성되어 있다. 이를 기반으로 NodeJS Sample Application을 구성해 보도록 하자. Express Sample Application 구성 파악 본 Sample을 구성하는데 활용한 환경은 다음과 같다. OS : Windows 10 IDE : VSCode Express Mode : EJS Express Sample Application을 기동하면 다음과 같은 화면을 볼 수 있다. 실제 구조를 살펴보기전 디렉토리 구조를 확인해 보고자 할 경우 다음을 참고한다. WASPRO : NodeJS Express EJS Application 생성 그럼 본격적으로 ..
NodeJS 동적 반영 환경 구성 개발환경에서 매번 JavaScript 가 반영될때 마다 node를 재기동하는 것은 매우 번거로운 작업이 될 것이다. 이를 편리하게 적용하고 반영하기 위해 2가지 모듈을 가이드하고자 한다. - nodemon npm install --save nodemon - pm2 npm install --save pm2 --save option은 추가한 두 node module을 package.json에 저장할 것인지를 지정하는 옵션이다. Node 기동 방법 Node를 기동하는 방법은 크게 2가지가 있다. 1) node 명령어를 직접 입력하는 방법 node 명령어를 직접 입력하여 기동하는 방법은 다음과 같다. 앞서 설치한 nodmon 또는 pm2를 통해 기동할 수 있다. [nodemon..
앞서 NodeJS 개발환경을 구성하기 위한 Project 환경 설정 및 GitHub 연동 방법에 대해 살펴보았다. 이와 같은 방법으로 프로젝트를 구성하게 될 경우 초기 환경 부터 프로젝트에 적합한 노드 모듈과 코딩 스타일에 맞는 환경 변수, 디렉토리 등을 구성하여 커스터마이징이 유연한 프로젝트 개발환경을 가져갈 수 있다. 다만, 개발환경을 구성하는데 경험이 있고, 프로젝트를 수행해 본 경험이 있는 아키텍처에게는 유연한 구성이 좋을 수 있으나, 처음 NodeJS 프로젝트를 진행하거나, 경험이 없는 경우 초기 Template 환경을 제공해 주는 방식으로 진행하는 것이 좋을 수 있다. 본 포스팅에서는 이러한 기반 환경을 제공해 주는 EJS Application 개발 방식에 대해 알아보자. NodeJS는 Fro..
VSCode GitHub 연동 다음으로 VSCode와 GitHub를 연동하는 과정에 대해 살펴보도록 하자. 현재 GitHub 다음 URL에는 Node JS 기반 Template Code를 업로드 해 두었다. https://github.com/sonnaraon/Nodejs_Template sonnaraon/Nodejs_Template Node JS Project. Contribute to sonnaraon/Nodejs_Template development by creating an account on GitHub. github.com 해당 Repository는 계속 업데이트 해 나갈 예정이며, 본 가이드에서는 GiHub와의 연동에 초점을 맞춰 진행해 보자. 먼저 VSCode 왼쪽 메뉴 바 중 세번째 Sou..
VSCode는 Node.js를 개발하는 대표적인 에디터이다. Node.js뿐만 아니라, 대부분의 언어를 개발하는데 효과적으로 사용할 수 있는 소스 코드 편집기이지만, IDE가 아니기 때문에 컴파일 및 실행을 위한 별도의 컴포넌트를 요구한다. Node.js는 현재 대표적인 JavaScript Front End & Back End 통합 기술이라고 할 수 있다. 기존 Back-end라 불리우는 서버사이드 구현체를 Node.js에서 JavaScript로 직접 컨트롤 할 수 있도록 구현할 수 있다. 특히 Node.js는 특유의 가볍고 효과적인 처리 프로세스로 인해 빠른 성능을 보장하며, 수많은 생태계를 통해 원하는 대부분의 소스코드와 라이브러리를 적용할 수 있다. 대표적으로 express, router 등 nod..
NodeJS 등장 NodeJS 는 구글 크롬의 V8 (자바스크립트 엔진)으로 빌드 된 이벤트 기반 자바스크립트 런타임이다. 웹 서버와 같이 확장성 있는 네트워크 프로그램 제작을 위해 고안되었다. 파이썬으로 만든 트위스티드, 펄로 만든 펄 객체 환경, 루비로 만든 이벤트머신과 그 용도가 비슷하다. 대부분의 자바스크립트가 웹 브라우저에서 실행되는 것과는 달리, NodeJS는 서버 측에서 실행된다. 일부 CommonJS 명세를 구현하고 있으며, 쌍방향 테스트를 위해 REPL 환경을 포함하고 있다. - 위키백과 V8 엔진 : 구글 크롬의 V8 엔진은 웹 브라우저를 만드는데 그 기반을 제공하는 오픈소스 자바스크립트 엔진이다. 속도향상을 위해 인라인 캐싱(inline caching)과 같은 최적화 기법을 적용하였다..
- Total
- Today
- Yesterday
- webtob
- wildfly
- k8s
- 마이크로서비스 아키텍처
- apache
- kubernetes
- SA
- nodejs
- OpenStack
- JEUS7
- API Gateway
- aws
- 쿠버네티스
- 마이크로서비스
- jeus
- aa
- JEUS6
- git
- Da
- 아키텍처
- openstack tenant
- openstack token issue
- MSA
- TA
- node.js
- Architecture
- 오픈스택
- SWA
- JBoss
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |