느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
네티에서 제공하는 웹소켓관련 기능을 이용한 웹 채팅 구현
IT/Netty 2020. 12. 5. 22:33

책에 있는 네티 예제를 그대로 사용하는데, 계속해서 버그가 나는 현상이 일어났다.. 확인해 보니 내가 윈도우를 사용하는데, home 디렉터리가 내 이름인 "주현태"로 되어있어서, 한글을 제대로 처리하지 못해 파일 경로상에 문제가 생기었다. 그외에도 문제가 산재해있었는데 그에대한 해결을 하고 github에 올린다. 예전부터 웹상에서 게임을 만들거나 채팅을 만드는 것에 대해 궁금했었는데, 아파치 주키퍼에 대한 이해도를 높일수 있을까 하고 공부한 네티에서 구현방법(?)을 익혀간다. 일단, 일반 http 연결이 connection less 한데에 비해 webSocket은 단일 tcp연결을 이용하여 전송 및 응답을 받는다. 그로인해 연결이 끊이지 않고 브라우저와 즉각적인 데이터 교환이 이루어질 수 있는 것이다. ..

네티 단위테스트를 위한 EmbeddedChannel
IT/Netty 2020. 12. 3. 22:06

네티의 경우 비동기 네트워크 프레임워크이므로, 이를 테스트 하기 위해선 Channel간 연결을 하여 테스트를 해야할 것이다. 그런데, 이러한 채널 연결 없이 embedded로 channel이 연결된 것처럼 사용할 수 있어 단위테스트에 유용한 클래스가 있는데, 이게 EmbeddedChannel이다. 이에대한 설명을 이 포스트에서 주저리 대는 것은 시간낭비로 사료되어 책에서 받아적고 테스트한 git주소를 여기다 적어놓겠다. github.com/jabel123/netty-study/tree/master jabel123/netty-study :octocat: netty공부중. Contribute to jabel123/netty-study development by creating an account on Git..

article thumbnail
네티의 전송
IT/Netty 2020. 11. 29. 20:32

네트워크를 통해 전송되는 데이터는 모두 동일한 형식(바이트)이다. 바이트가 전송되는 구체적인 방법은 데이터 전송의 기본 메커니즘을 추상화하도록 도와주는 개념인 네트워크 전송에 의해 좌우된다. 사용자는 이러한 세부 사항에 신경 쓸 필요가 없고, 바이트를 안정적으로 전송 및 수신하는 방법만 알면 된다. 예제에 나온 기존 Socket 및 Selector를 이용한 응답 서버를 만드는 예제를 따라쳤었다. github.com/jabel123/netty-study/tree/master jabel123/netty-study :octocat: netty공부중. Contribute to jabel123/netty-study development by creating an account on GitHub. github.co..

article thumbnail
네티 컴포넌트
IT/Netty 2020. 11. 25. 15:33

솔직히, 3Chapter 밖에 공부를 하지 않았지만, 이번챕터에서 가장 넓은 Insight(통찰력)을 얻은듯 하다. 네티는 우리가 기술과 아키텍처라고 광범위하게 이야기하는 두 관심 영역의 문제를 모두 해결한다. 자바 NIO 기반의 비동기식 이벤트 기반 구현을 이용해 고부하 조건에서도 애플리케이션 성능과 확장성을 보장한다. 네티는 애플리케이션 논리를 네트워크 레이어로부터 분리하는 다양한 설계 패턴을 활용해 코드의 테스트 용이성, 모듈성, 재사용성을 극대화해 개발을 간소화 한다. 1. Channel, EventLoop, ChannelFuture Channel : 소켓 (왜 굳이 소켓을 Channel로 한번 감싼걸까..? 사용하기 편하게 하기 위해서인가.. 공부를 지속하다보면 알게되겠지..) EventLoop..

article thumbnail
Netty로 echo서버 만들기
IT/Netty 2020. 11. 23. 09:39

이번에 공부한 챕터에서는 Netty로 Echo서버를 만드는 예제를 실습하였다. 예제의 경우 메이븐 프로젝트로 다중모듈프로젝틀르 구현하였지만, 나는 gradle로 프로젝트를 구현하였다. 딱히, 블로그에 정리해서 올릴 만한 챕터는 아니었지만, 틈틈이 블로그에 올리는 습관을 들이지 않으니 요즘들어 도통 이런 정리글을 쓰지 않는듯 하여 이러한 뻘글(?) 이라도 계속 업로드 하고자 한다. 예제 애플리케이션의 기능 클라이언트가 메시지를 전송하면 서버가 이 메시지를 반향 출력하는 아주 간단한 예제이지만, 다음 두 가지 이유로 아주 중요한 연습 과정이다. 개발 툴과 환경을 설정하고 확인하는 시험대를 마련할 수 있다. 네티의 핵심 요소인 ChannelHandler를 이용해 애플리케이션의 논리를 구축하는 과정을 체험할 수..