netty
비동기 이벤트 기반 소켓 통신을 위한 프레임워크이다.
소켓 통신을 위한 다양한 객체를 제공한다
- bootstrap
- channel
- pipeline
- event handler
- eventloop
- bytebuffer
bootstrap
네티의 시작은 bootstrap으로 부터 시작한다. 서버와 클라이언트를 위한 각각의 정형화된 코드가 존재한다. 소켓 생성에 필요한 객체들을 구성한다.
channel
소켓이라고 생각하자. 2가지 채널이 존재한다.
- 서버가 listen 하는 채널
- 클라이언트와 서버가 연결된 채널
pipeline
채널에 연결되어 이벤트가 흘러가는 통로라고 생각하자. 파이프라인에 이벤트핸들러를 순서대로 삽입하여 이벤트를 처리한다.
event hadler
네티가 생성하는 이벤트를 처리하는 객체이다. 프로토콜 처리 및 비즈니스를 구현하는 부분이다. 코덱을 구현할 수 있다.
eventloop
이벤트를 처리하는 스레드이다. 내부에 queue를 가지며 이벤트 처리를 수행한다.
bytebuffer
네티가 제공하는 버퍼 객체이다. pool을 제공한다. java가 제공하는 bytebuffer와 다르다.