TIL-20210203

2021. 02. 04.
  • 오늘은 널널하게 하루를 보냈다. 알고리즘 미션이 없었기 때문인데, 그 대신 이것 저것 건드려봤다.
  • NIO에도 소켓 api가 있는걸 알게 되었는데, 테스트를 해봤다. 사용법이 어렵지는 않아 오전동안 익히고 오후부터 테스트를 해봤다. 생각과는 다르게 제대로 동작하지 않았다. 응답이 예상한 결과와 달라 패킷 확인을 해보고 싶어서 와이어 샤크를 써봤다. 처음 한 시간 정도는 가상 스위치가 선택된 것을 눈치채지 못해 머리를 싸매다가 날려버렸다. 다시 어댑터를 제대로 선택하고 찾아봤는데, 이번엔 도커와 zoom으로 추정되는 udp 연결때문에 구분할 수가 없었다. 필터를 먹이려고 해봤는데 결국 실패했다. 추가적으로, NIO에는 SSL이 지원되지 않는 것으로 보이는데 이어서 하게 되면 확인해봐야 할 것 같다.
  • 프레임워크 구성을 대강 해봤다. npm에 버그가 있는지 글로벌 패키지 삭제가 잘 되지 않아 애먹었다. npm을 쓴 이유는 git-cz를 이용해 커밋하기로 했기 때문인데, 프런트는 npm을 자주 쓰게 되니 자연스럽게 설치할 수 있지만, 그레이들이나 메이븐을 사용해야 하는 입장에서 어떻게 적용하는게 좋을지가 고민됐다.

    글로벌로 설치해서 별도의 어플리케이션처럼 사용할 수도 있지만, 일단은 프로젝트를 사용하는 사람들이 최대한 같은 환경에서 개발할 수 있도록 하는 것이 프로젝트 세팅에서 중요한 부분이라고 생각하기 때문에 패키지 안에 포함시켜보려고 했다. 하지만 위에서 말한대로 잘 동작하지 않아 애를 먹었는데, 용재님에게 설정 커맨드를 받아 적용해보니 잘 동작했다. 이런 일이 생길까봐 샌드박스 프로젝트에서 진행하긴 했는데, 시간은 그 만큼 지체되었다. 일단은 그레이들 빌드 스크립트에 적용시켜버리려고 하는데 선형이도 메이븐에 비슷한 라이브러리가 있는지 알아봐준다고 했으니 여유를 두고 생각해봐야 할 것 같다.

  • 소켓의 계층에 대해 잠깐 찾아봤는데, 일단 결론은 정확히 OSI의 어떤 계층에 끼워맞추는 것은 의미가 없다는 것이다. 소켓의 경우 어플리케이션 계층과 네트워크(혹은 전송) 계층 사이를 이어주는 인터페이스로 사용되는 것인데, 이렇게 치면 그 사이의 모든 계층을 다 사용하는 것이 될 수도 있다. 이런 이유로 이런 논의를 할 경우는 TCP/IP모델을 이야기 하는 것이 좀 더 효과적이라고 한다. 굳이 따지자면 소켓은 IP + Port의 개념이기 때문에 4계층과 5계층을 아우르는 컨셉이라고 한다. SSL은 거기에 6계층의 기능까지 더해진 프로토콜이다. 이래저래 찾아보며 OSI 7 layer는 각 계층을 추상화시켜 흐름을 파악하는 용도로 사용해야 할 것 같다는 나름의 결론을 내려봤다.

내일 할 일

  • mockito로 controller 테스트 샘플을 작성해봐야겠다. 포스트맨 쓰기 너무 번거롭다. 여유가 되면 스웨거 세팅도 살짝 알아봐야겠다.
  • 마지막 cs10 미션인데, 마무리를 잘 하면 좋겠지만 너무 무리하지는 말자. 화이팅!
정대화
DaeHwa_Jeong@outlook.com

Powered with by Gatsby 2.0