- [ backend/내가 만든 패키지 ][node] http 모듈 커스텀하기 1편2023-12-23 22:43:16예비 개발자의 http 모듈 뜯어보기 웹의 3요소는 HTTP, HTML, URL이다. 웹 개발자가 되고 싶은 사람으로서 http 모듈은 뜯어봐야 되지 않겠냐라는 마인드로 http 모듈을 모방하기로 결심했다. 패키지는 npm에 배포된 상태이며, 소스코드는 깃허브 에서 확인할 수 있다. (아직 부족한 부분이 많기에 계속해서 수정할 예정이다.) 이번 포스트에서는 HTTP가 무엇인지 알아볼 것이다. HTTP가 뭐야? HTTP : Hyper Text Transfer Protocol 클라이언트 서버 구조 무상태 프로토콜 (stateless) 비연결성 (connectionless) HTTP는 HTML 문서와 같은 데이터들을 가져올 수 있도록 해주는 프로토콜로, 위와 같은 특징을 갖는다. 해당 특징들을 하나씩 자세히 ..
- [ backend/삽질일기 ][node] 당신의 socket.io가 동작하지 않는 이유 (Feat. socket.io는 파싱을 해)2023-12-23 16:58:53소켓아이오를 소켓아이고로 부르기로 결심한 이유 😇 지금부터 말하는 트러블 슈팅은 단일 서버에서 하나의 웹소켓을 이용하는 경우엔 발생하지 않았을 것이다. 하지만 여러 path에 대해 웹소켓을 사용하고 있다면 이 문제에 부딪혔을 수도 있다. 아주 허무하지만, 상상도 못한 이슈 지금부터 시작하겠다. 삽질의 시작, 라우팅 시작에 앞서 프로젝트 구조를 간단히 설명하겠다. 백엔드는 두 개의 서버를 띄우고 있고, nginx가 가장 앞단에 위치하여 경로에 따라 다른 서버로 프록시한다. nginx 라우팅 정보 - /signal : 시그널링 서버 - / : WAS 서버 두 서버 모두 웹소켓을 사용하고 있는데 아이너리하게 오직 시그널링 서버로의 소켓 요청만 동작하지 않았다. 결론부터 말하자면, socket.io가 url에다..
- [ backend/내가 만든 패키지 ][node] Swagger 데코레이터 어디까지 커스텀 해봤니?2023-12-23 04:17:28부제 : SWAG하게 Swagger 사용하는 법 🤟 누구를 위한 Swagger인가 Swagger는 API 문서를 간편하게 작성하도록 돕지만, 너무 많은 데코레이터들은 오히려 코드의 가독성을 해친다. FE분을 위해 작성한 Swagger 데코레이터들이 막상 BE 본인의 코드를 망치는 아이러니한 상황인 것이다. 😑 : API 문서가 필요한 건 FE분들인데 왜 제 코드가 더러워져야 하죠? 그렇다고 Swagger 데코레이터를 제거하면 별도의 문서화 작업이 필요하고, FE분들과 사이도 원만하지 못하게(?) 된다. 내가 작성한 비즈니스 로직을 어지럽히지 않으면서 Swagger 데코레이터를 작성할 방법이 없을까 고민하다가 커스텀 데코레이터를 만들기로 결정했다. 코드 중복을 최소화한 데코레이터 커스텀 데코레이터는 nes..