NETTY] 02 예제 들어가기 전 설명

념념개발자·2022년 11월 7일
0

JAVA

목록 보기
3/4

나처럼 초보자고 질문이 많다면.. 소스에 대한 기본 구조와 이해가 필요하다고 생각해 정리해봤다.

이벤트 핸들러 == 데이터 핸들러
채널 == 소켓
Client,Server채널

흐름

 클라이언트(+클라이언트 핸들러) -------요청-------> 서버(+서버 핸들러) -------응답-------> 클라이언트

예제 EchoServer, EchoClient 통신

1. 서버클래스(EchoServer, EchoClient)는 각각의 Handler를 갖는다.

  • EchoServer - EchoServerHandler
  • EchoClient - EchoClientHandler

2.서버클래스는 Bootstrap, 핸들러클래스는 ChannelHandler.

  • BootStrap: 프로그램에 대한 설정 및 수행할 동작 지정.

    • 해당클래스: EchoServer, EchoClient

    • 설정

      • 이벤트루프: 스레드 모델 구현- 소캣채널에서 발생한 이벤트 처리
      • 채널전송모드: 블로킹/논블로킹/epoll 설정
      • 채널파이프라인: Handler 지정. 핸들러로 연결해주는 통로 함수(pipleline()).

      ** Server쪽에 접속 port 지정해야 하는 이유로 2개로 나눠짐

      • ServerBootstrap: Server 부트스트랩
      • Bootstrap: Client 부트스트랩
  • ChannelHandler: 데이터 처리 로직.
    - 다양한 이벤트들이 있다
    - 해당클래스: EchoServerHandler, EchoClientHandler

      > - Inbound Event: 연결 상대방이 어떤 동작을 취했을 때 발생.
      > - Outbound Event: 프로그래머가 요청한 동작에 해당하는 이벤트
      > - ChannelHandlerContext: 채널에 대한 입출력 처리, 채널 파이프라인에 대한 상호작용을 도와주는 인터페이스.

    클라이언트와 핸들러를 연결해주는 통로==pipeline();

    참고

profile
념바리뚜

0개의 댓글