3.3 Node.js로 서버와 클라이언트 만들기
Node.js는 기본적으로 고성능 네트워크를 손쉽게 처리할 수 있는 네트워크 프레임워크입니다. 고성능 I/O 서버를 구현하는 것은 많은 학습과 경험이 필요한 영역이었습니다. Node.js는 이러한 복잡한 영역을 효과적으로 은닉화(encapsulation)해 손쉽게 고성능 I/O 시스템을 구현할 수 있게 합니다.
네트워크 시스템에서 데이터를 요청하는 쪽을 클라이언트, 응답하는 쪽을 서버라고 합니다. 일반적으로 사용자 영역에 가까울수록 클라이언트라고 생각하며, 서비스를 제공하는 시스템 영역에 가까울수록 서버라고 생각합니다. 그러나 사용자 영역 안에서도 서버와 클라이언트가 존재할 수 있고, 시스템 영역 안에서도 서버와 클라이언트 역할이 구분될 수 있습니다.
▲ 그림 3-3 위치에 따라 구분되는 서버와 클라이언트 역할
마이크로서비스는 기본적으로 서버이지만 다른 마이크로서비스에 정보를 요청해야 하는 클라이언트가 되기도 합니다. Node.js를 이용해 HTTP, TCP의 서버와 클라이언트를 간단히 만들어 봅시다.