Javascript와 Node.js를 활용한 마이크로 서비스 개발

2021-03-05
조회수 2229




"MicroService 개발이란?"



대규모 소프트웨어 개발에 적용하기 위한 것으로 단독으로 실행 가능하고 독립적으로 배치될 수 있는

작은 단위(모듈)로 기능을 분해하여 서비스하는 아키텍처입니다.


작은 단위로 기능을 분할할 때 수평 방향의 계층별 절단이 아니라, 수직 방향의 기능별로 절단합니다.

이때 절단된 독립적인 작은 모듈을 마이크로 서비스라고 합니다.


마이크로 서비스 아키텍처는 레고 블록을 조립하여 원하는 모양을 만드는 것에 비유할 수 있는데요.

단일 서비스로 개발하는 기존 모놀리식(monolithic) 방식과는 반대되며,

서비스 지향 아키텍처 (SOA : Service-Oriented Architecture) 방식보다 더 세분화되어 있습니다.






"마이크로 서비스의 장점"


- 각 마이크로 서비스는 공유나 서비스 간 통신 없이 독립적으로 실행 운영 관리

- 마이크로서비스 아키텍처 사용으로 개발자들이 클라우드 망을 통해 서로 공유, 협업

- 협업을 통해 자유로운 소프트웨어 개발 가능

- 개발 및 유지보수에 시간 비용 절감






"JavaScript 와 Node.js"



JavaScript


- 웹 페이지에서 사용자로부터 특정 이벤트나 입력 값을 받아 동적인 처리를 목적으로

고안된 객체 기반의 스크립트 프로그래밍 언어입니다.

사용자 경험을 향상시키기 위한 방법으로 주로 사용되며, 일반적으로 HTML 문서에 내재되고 브라우저에서 실행됩니다.

자바스크립트는 주로 웹 브라우저 내에서 사용되는 언어였으나,

자바스크립트 기반의 런타임 플랫폼(예: Node.js)들이 개발되면서

서버 측 프로그램 개발에도 사용이 크게 확대되었습니다.




Node.js


웹 개발은 크게 둘로 나누어집니다. "프런트엔드(Front-end)와 백엔드(Back-end)" 프런트엔드는

웹페이지 디자인이나 버튼 기능처럼 사용자가 바로 볼 수 있는 부분이고 백엔드는 사용자가 눈으로 볼 수 없는 뒷단 기술입니다.

HTML, CSS 등이 대표적인 프런트엔드 기술이며, DB나 서버를 다루는 부분이 백엔드 기술이라고 합니다.

노드 JS의 장점은 비동기 프로그래밍입니다.

비동기 프로그래밍은 무엇인가 요청하면 결과를 즉시 받는 것을 의미합니다.

비동기는 이벤트를 요청하고 바로 결과를 받지 않아도 되고 따라서 결괏값을 기다리지 않고 보다 다양한 요청을 처리할 수 있습니다.

또한 노드 JS로 비동기 프로그래밍을 비교적 쉽게 할 수 있게 되었습니다.

프런트엔드와 백엔드를 자바스크립트라는 같은 언어로 다 같이 관리할 수 있는 것도 노드 JS의 큰 장점이며, 

덕분에 웹 개발자들은 새로운 언어를 배우지 않고 기존 언어를 활용해 서버 기술을 빨리 응용하게 되었습니다.






"Express 프레임워크, Koa를 이용해 마이크로 서비스 개발"


마이크로 서비스가 최신 개발에 사용되는 구조를 살펴보며 Express or Koa Framework를

이용한 나만의 웹 서버(마이크로 서비스) 개발을 해보는 것은 어떨까요?




▒교육모듈▒


- 마이크로 서비스의 정의

- Node.js의 문법

- npm & 모듈 기반 개발방식

- Express or Koa

- 실습




▒교육대상▒


- 사내 웹(Web) 개발자

- 웹 서버와 클라이언트 모두 개발을 희망하는 기업/단체/기관

- 현재 희망하는 웹 서비스 개발을 희망하는 기업/단체/기관



   








자세한 문의 사항은  아래 문의하기를 통해 연락 주시길 바랍니다.