Java/Netty

[Netwok/Netty]04. 사전에 파악할 용어

양승길 2017. 10. 19. 13:40

[Netwok/Netty]04. 사전에 파악할 용어

(출처 : https://shortstories.gitbooks.io/studybook/content/c8fc_c694_d2b9_c9d5.html
           
http://clairdelunes.tistory.com/62
           
http://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/)
대체적인 뜻만 파악하고 차후 하나씩 분석한다.


1. Sync 통신
    
특정 서비스를 요청하면 응답이 올 때 까지 기다리는 통신. 
    혹은 응답을 받아서 작업 완료 여부까지 요청하는 작업까지 진행한다.
    직관적 흐름을 추적할 수 있다.

2. Async 통신
    
특정 서비스를 요청하면 응답이 올 때 까지 기다리지 않고 다른 작업을 하고 있으면서, 완료여부에는 관심없는 통신.
    
메모리 자원의 효율적 활용이 가능. Future, Callback과 같은 패턴이 있음.

3. Blocking Socket
    
특정 서비스를 요청하면 요청받은 자가 작업이 모두 종료될 때까지 요청자에게 작업 제어권을 넘겨주지 않고 대기하는 상태.

4. Non-Blocking Sokect
    
특정 서비스를 요청한 직후 바로 응답을 받아서 남아있는 작업을 진행할 수 있는 제어권이 있는 Socket.
    
Sync/Async 는 '요청하는 자가 작업 완료에 대하여 신경을 쓰는가' 가 주 관심사이면
    
Blocking/Non-Blocking은 '요청하는 자가 요청 직후 바로 제어권을 바로 잡을 수 있는가' 가 주 관심사다.

5. Event Driven Network Programming
    
소켓을 이벤트의 주체로 하는 네트워크 프로그래밍. 데이터들을 소켓에 전달하는 핸들러를 이용한다.
    
기능별로 분리된 논리에 의하여 명확성이 있고 재사용성이 증가되며 오류의 부담이 완화되어있다.

6. Channel
    
일종의 소켓으로서 기존 Java의 Socket의 복잡함을 단순하게 작업하는 API들을 제공한다.

7. EventLoop
    
데이터가 교환하는 이벤트가 발생되어, 이를 처리하는 일련의 작업 순서를 생명주기라 부르겠다.
    EventLoop는 이러한 생명주기를 관리한다. 
이러한 EventLoop들이의 집합을 EventLoopGroup라 부른다.
    
EventLoop는 데이터 환이 진행되는동안 (생명주기가 돌고 있는동안) 에는 하나의 작업(Thread) 만을 담당한다.
    
EventLoop에서 처리되는 모든 입출력 동작은 해당 Thread에서 처리된다.
    
Channel은 EventLoop에 등록할 수 있다.

8. ChannelFuture
    Async 통신방식 특성에 따라 요청에 대한 응답이 바로 오지 않을 수 있다.
    따라서 그 결과를 확인하는 방법이 요구되는데, ChannelFuture는 이러한 실행에 대한 결과를 파악할 수 있도록 해준다.

9. OutBound, 당발
    
상대방이 아닌 본 Channel이 상대방에게 보낸다는 형용사.

10. InBound, 타발
    
상대방으로부터 본 Channel에게 보낸다는 형용사.

11. Handler
    당발, 타발 전송 할 때의 데이터를 관리한다.

12. PipleLine
    
Handler들의 Chainning하는 컨테이너를 제공하고 당발, 타발 이벤트를 전달한다.

13. Decoder
    
전문을 수신할 때 데이터를 변환한다.
    
당발 전문이 올 때, Byte에서 개발자가 지정한 다른 형태로 변환하는 작업을 한다.

14. Encoder
    
전문을 송신할 때 데이터를 변환한다.
    
타발 전문을 보낼 때, 해당 형태에서 Byte로 변환하는 작업을 한다.

15. Bootstrap
    
서버, 클라이언트를 구축한다. 사전적 의미는 한 번 시작하면 알아서 진행되는 일련의 과정이다.
    이 뜻에 따라  method chaning이 가능하다. 
일종의 기동을 하기위한 전체적인 틀 혹은 컨테이너.