최근 포스트

Project : RainMind 개발일지 - 11 [1번째 최적화 수행 기록]

6 분 소요

본 글을 최적화 수행 기록(수치화 포함)에 관한 글이다. 수치적 요약 및 스크립트/사용한 PromQL 쿼리, 정제된 데이터는 다음 포스팅에 기록할 예정이다. 1) 회원가입 기능 유저 100명이, 3분동안 계속 회원가입 로직을 수행할 때를 모니터링해서 병목 지점이 있는지 찾고자 했...

SNUXI 개발일지 - 4 [WebSocket 인증과 메시지 흐름]

2 분 소요

서비스를 개발하며 WebSocket의 인증 방식과 데이터 흐름에 대해 정리하고, 왜 그러한 설계로 이루어졌는지 정리해보고자 한다. 1. WebSocket 데이터 흐름 우리 서비스 코드 기준으로, 다음과 같은 예시 상황에서 WebSocket의 데이터 흐름을 정리해보자. (상황) 웹...

Project : RainMind 개발일지 - 8 [docker, kubernetes 배포 환경, 클라우드]

3 분 소요

기능이 대략 완성되면 배포도 한번 생각해보고 있는데, docker와 kubernetes 관련해서 정리해보겠다. Docker 개발한 애플리케이션과 이를 실행하는데 필요한 환경들을 컨테이너에 담아, 누구의 어떤 환경에서도 동일하게 실행할 수 있게 해주는 플랫폼이다. 사람마다 OS,...

Project : RainMind 개발일지 - 7 [서비스 운영과 scheduling, 그리고 lock]

5 분 소요

현재 코드에서는, 단기예보조회를 일정 시간마다 자동으로 호출 & 알람 재시도 로직을 자동으로 호출하기 위해 Scheduling을 사용해야 한다. 그러나 pod가 여러대일 경우, 각 pod마다 똑같은 작업인 scheduling을 모두 수행하게 되면 성능이 나빠질 수 있다. ...

SNUXI 개발일지 - 3 [페이지네이션과 인터페이스 상속관계]

5 분 소요

SNUXI 서비스에는, 채팅방에 참여한 사람들이 최근 n개의 채팅내역과, 과거의 채팅내역을 조회할 수 있는 기능을 만들어야했다. 뒤늦게라도 채팅방에 참여한 사람들이 과거의 채팅내역을 보면서 방 분위기를 파악할 수 있고 그에 따라 더욱 빠르게 택시팟이 성사되는 기대효과가 있기 때문이...

SNUXI 개발일지 - 2 [CORS와 보안]

4 분 소요

프론트 분들과 협업하다가 만난 CORS에 대해 정리를 해보고자 한다. SOP (Same-Origin Policy) 같은 origin, 즉 같은 출처에서의 요청만 접근할 수 있도록 하는 원칙이다. 여기서 origin이란, Protocol + domain(IP) + Port Numb...

Project : RainMind 개발일지 - 6 [DI(의존성 주입)]

2 분 소요

Spring과 FastAPI의 아키텍처 관리 방법이 또 다른것 같아 정리하면 좋을 것 같다. Spring Spring 프레임워크의 경우, 철학이 “객체의 생명주기를 개발자가 아니라 프레임워크가 관리한다”의 방식이다. 이른 제어권이 거꾸로 되었다고 해서 Ioc(Inversion o...