본문 바로가기
728x90

전체 글24

logback설정 방법!! 여러분들은 로그백 설정을 어떻게 해놓으시나요 원래 저는 메인 로그만 있었어요. 모든 로그를 한번에 볼수 있는 그저 콘솔창에 나오는 모든 로그를 저장하는 메인로그백이 있었는데요. 처음에는 아무문제가 없다고 생각했는데, 여러 종류의 다양한 패킷을 받고 여러가지의 문제점이 생기면서 다양한 종류의 로그백을 만드는게 중요하다고 생각하게 되었습니다. 첫번째, 메인은 한번에 볼수있어 좋지만, 너무많은 데이터를 한번에 받을때 그리고 병렬처리가 되어있을때는 에러가 났을때 어 떤 이유에서 에러가났는지 확인하거나 찾을수가 없습니다. 두번째, 에러가 아니라 그저 잘못들어온 데이터가 있을때 패킷을 하나하나 까볼때도 그 패킷을 찾거나 확인할때 매우 애먹을수 있습니다. 이러한 여러가지 이유상으로 로그백은 다양한 방식으로 남겨두는 .. 2021. 5. 7.
서버 네트워크 어플리케이션을 네티로 작성 서버 네트워크 어플리케이션을 네티로 작성 부트스트랩으로 네트워크 애플리케이션의 필요한 설정들을 지정해줄수있다. 부트스트랩에 이벤트 핸들러를 사용하여 채널 파이프라인을 구성한다 이벤트 핸들러의 데이터 수신 이벤트 메서드에서 데이터를 읽어들인다. 이벤트 핸들러의 네트워크 끊김 이벤트 메서드에서 에러 처리를 한다. 네티는 소켓 채널에 채널 파이프 라인을 등록하고 이벤트 핸들러의 설정을 완료하기 위한 프로세스이다. - 네티는 클라이언트 연결에 대응하는 소켓 채널 객체를 생성하고 빈 채널 파이프 라인 객체를 생성하여 소켓 채널에 할 당한다. - 네티는 소켓 채널에 등록된 channelinitializer인터페이스의 구현체를 가져와서 initchannel메서드를 호출한다. - 네티는 소켓 채널 참조로부터 처음에 등.. 2021. 5. 7.
netty bootstrap 옵션 netty bootstrap에는 여러가지 옵션들이 있다. 나는 이것들이 어떤옵션들인지도 모르고 그때그떄 개발할떄 필요에 의해서 주먹구구식으로 개발을 하였다. 이런식으로 개발을 하면, 결국 최상의 결과가 아닌 그저 완성만 된 결과물이 나오기 마련이다. 그러니 일단 여기에 나온 옵션들을 최대한 참고하길 바란다. "io.netty.channel.ChannelOption.TCP_NODELAY"이 옵션은 Nagel 알고리즘을 꺼버리는 방법을 써야 합니다. 끄려면 setsockopt와 TCP_NODELAY 옵션을 함께 사용하면 됩니다. Nagel 알고리즘은 한번쯤 찾아보시길 바랍니다. 다음으로 2021. 5. 7.
netty tcp 통신시 패킷 검증 netty를 사용해서 tcp통신을 할때 다들 패킷을 받아본적이 있을 것이다. 이때 패킷이, 한개씩만 오면 너무나 좋고, 평화롭겠지만 현실은 그렇게 아름답지만은 않다. 실제로 내가 받은 패킷은 몇십개의 패킷이 이어져있었고, 심지어 끝에있는 패킷은 끊어져 있는 패킷이었다. 이러한 패킷을 받을때는 어떠한 방식으로 패킷을 검증해야 할까? 사실 처음에는 그저 while문 하나와 header 인 h 하나로 검증을 완료할려고했다. 이 패킷에는 헤더에 데이터의 길이가 들어있는 패킷이었기 때문이었는데, 이 방법이 안된 이유는 while문이 끝날때 이전에 검증했던 패킷이 그대로 들어오기 때문에 제대로된 검증이 되지가 않는다는 것이다. 그래서 만든 방법이 while문 끝에서 h값을 바꿔주는 방식이었는데 이 방식은 중간에 h.. 2021. 5. 7.
728x90