Socket programming 을 하는데 threading 을 한다고 하면 일단 multiplexing이 먼저 떠오른다. read(sockfd, buf, size(buf)) 콜을 하는 순간 해당 sockfd 에 size(buf) 만큼 입력이 들어오지 않으면 프로세스
우리 회사 사람들은 밥에 진심이다. 식대가 꽤나 높기도 하고 회사 근처 맛집이 많기 때문이기도 하다. 그리하여 슬랙에 "그러나 이 밥봇은 여러가지로 부족한 점이 많았다. 우선 자체적으로 DB가 있는 것이 아니기 때문에 팀원들의 이름을 하드코딩해야 하는 문제가 있었다.하
api가 query(GET params)를 수행할 수 있으면 좋은 점이 많다. 프론트엔드 개발이 훨씬 편해지고, 불필요한 정보를 가져올 필요가 없어지므로 퍼포먼스가 향상된다. 사실 거의 필수적이라고 보는게 맞겠다. django의 경우는 django-filter가 있어서
HTTP 놔두고 WebSocket을 쓰는 이유가 실시간 송수신 때문이다. HTTP는 클라이언트의 요청 없이 서버가 응답을 보내지 못하기 때문에 실시간이 될 수 없다. 서버가 클라이언트의 요청없이 그 클라이언트에게 응답을 보내야 하는 상황이 왜 생길까? 많은 경우는 한
얼마전 고카톤(Korea Hacks 2021)에 참가했었다. 30시간 동안 열심히 개발했지만 코드가 상당히 개판이다.모든 참사의 원흉은 WebSocket이었다.django에서 WebSocket 통신을 구현하기 위해 삽질을 정말 많이 했다. 다음에 같은 삽질을 하지 않기
최근 며칠 간 원인 파악이 굉장히 힘들었던 이슈가 한가지 있었다. 해결한 과정이 참 기묘하고 느낀게 많아서 정리해두려고 한다.
웹 api 서버에서 사용자 입력 검증은 매우 중요하다. 사용자가 개발자의 의도를 벗어지 않도록 제한함으로써 불필요한 예외 상황을 줄일 수 있고, 무엇보다 보안을 위해 필수적이다. 이를 위해 express-validator라는 패키지가 이미
일정 시간에만 서비스 사용률이 높은 경우 시간대 별로 Fargate의 작업 개수를 조정하도록 할 수 있다. CloudWatch 규칙의 cron expression 과 Lambda를 잘 이용하면 어렵지 않게 구현할 수 있다.