본문 바로가기
IT/Knowledge

Netty 개념과 아키텍처

by 성준하이 2024. 8. 7.
반응형

Netty란 서버 프레임워크 중 하나로 

대규모 분산 시스템 및 클라우드 앱에서 사용되고 있다.

공식 홈페이지는 아래와 같다.

https://netty.io/

 

Netty: Home

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty is an NIO client server framework which enables quick and easy development of network applications

netty.io

 

 

정확히 Netty는 자바 기반의 네트워크 프레임워크로 HTTP, WebSocket, TCP같은 프로토콜은 안정성과 확장성, 고성능으로 작동 시키며 대규모 분산 시스템에도 자주 쓰인다.

 

위키백과에서는 아래와 같이 설명한다.

 

네티(Netty)는 프로토콜 서버, 클라이언트 등 자바 네트워크 애플리케이션 개발을 위한 
비차단 입출력 클라이언트-서버 프레임워크이다.
비동기 
사건 기반 네트워크 애플리케이션 프레임워크와 도구들은 TCP, UDP 소켓 서버 등 
네트워크 프로그래밍을 단순하게 만들기 위해 사용된다.
네티에는 프로그래밍 
반응자 패턴 구현체를 포함하고 있다.
원래 
와일드플라이에 의해 개발된 네티는 현재 네티 프로젝트 커뮤니티에 의해 개발, 유지보수되고 있다.

https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8B%B0_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)

 

네티 (소프트웨어) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 네티(Netty)는 프로토콜 서버, 클라이언트 등 자바 네트워크 애플리케이션 개발을 위한 비차단 입출력 클라이언트-서버 프레임워크이다. 비동기 사건 기반 네트

ko.wikipedia.org

 

Netty의 구조 

- 응용프로그램 레이어로서 실제 비즈니스로직이 여기 포함되며 네트워크로 넘어오는 데이터들을 처리

여기서는 받아오는 데이터를 암호화 또는 복호화시키고 메시지를 프레임으로 나누는 메시지프레이밍 등 실제 이 데이터를 가지고 응용하는 로직을 구성

 

- 전송 

레이어로 Low level의 네트워크 프로토콜을 추상화한 후 API를 제공하여 단순하게 송수신여기서 TCP, UDP, HTTP, WebSockets 등 데이터를 송수신하는 API를 마련

 

- 셋째는 네트워크 레이어로 네트워크 세부정보를 파악하여 입출력 관리를 하고 연결이 잘 되었는지 확인

이 과정을 Netty에서는 Eventloop를 확인하여 관리합니다. 업무를 효율적이고 확장 가능한 방식으로 연결을 처리

 

Netty 프레임워크 특징

- 비동기 입출력
비동기 처리를 지향한다.(참고포스팅 참고)

 

-Event Model

잘 정리된 이벤트 모델을 갖고 있다.

 

- Universal Asynchoronous I/O API

 


참고 포스팅

https://thenicesj.tistory.com/159

 

동기 / 비동기 프로그래밍

자바스크립트를 다뤄본 사람은 비동기 프로그래밍이라고 들어본적이 있을것이다. 사전적 의미를 먼저 보자면 동기적(synchronous) 어떤 일이나 행동을 일으키게 하는 계기가 되는. 또는 그런 것.

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

Embedded 란?  (22) 2024.08.09
Go 언어란?(Go Lang)  (4) 2024.08.08
Apache Thrift(쓰리프트)  (11) 2024.08.04
gRPC 에 대해  (9) 2024.08.03
Call by Value 와 Call by Reference  (14) 2024.07.27

댓글