Project : RainMind 개발일지 - 11 [1번째 최적화 수행 기록]
본 글을 최적화 수행 기록(수치화 포함)에 관한 글이다. 수치적 요약 및 스크립트/사용한 PromQL 쿼리, 정제된 데이터는 다음 포스팅에 기록할 예정이다. 1) 회원가입 기능 유저 100명이, 3분동안 계속 회원가입 로직을 수행할 때를 모니터링해서 병목 지점이 있는지 찾고자 했...
본 글을 최적화 수행 기록(수치화 포함)에 관한 글이다. 수치적 요약 및 스크립트/사용한 PromQL 쿼리, 정제된 데이터는 다음 포스팅에 기록할 예정이다. 1) 회원가입 기능 유저 100명이, 3분동안 계속 회원가입 로직을 수행할 때를 모니터링해서 병목 지점이 있는지 찾고자 했...
Actuator, prometheus를 이용하여 스프링 앱의 CPU, 메모리 등을 모니터링한다. 해당 목표를 위해 거쳐야 할 절차들을 기록한다. 1) actuator, prometheus 의존성 추가(build.gradle.kts) implementation("org.spring...
Redis의 메모리 사용량, DB 응답시간 등을 분석하기 위하여 k6를 이용한 성능 테스트를 진행해보려고 한다. 1) 일단 k6를 설치했다. https://grafana.com/docs/k6/latest/set-up/install-k6/ 에 나와있는 방법대로, Linux 명령어를...
서비스를 개발하며 WebSocket의 인증 방식과 데이터 흐름에 대해 정리하고, 왜 그러한 설계로 이루어졌는지 정리해보고자 한다. 1. WebSocket 데이터 흐름 우리 서비스 코드 기준으로, 다음과 같은 예시 상황에서 WebSocket의 데이터 흐름을 정리해보자. (상황) 웹...
기능이 대략 완성되면 배포도 한번 생각해보고 있는데, docker와 kubernetes 관련해서 정리해보겠다. Docker 개발한 애플리케이션과 이를 실행하는데 필요한 환경들을 컨테이너에 담아, 누구의 어떤 환경에서도 동일하게 실행할 수 있게 해주는 플랫폼이다. 사람마다 OS,...
현재 코드에서는, 단기예보조회를 일정 시간마다 자동으로 호출 & 알람 재시도 로직을 자동으로 호출하기 위해 Scheduling을 사용해야 한다. 그러나 pod가 여러대일 경우, 각 pod마다 똑같은 작업인 scheduling을 모두 수행하게 되면 성능이 나빠질 수 있다. ...
SNUXI 서비스에는, 채팅방에 참여한 사람들이 최근 n개의 채팅내역과, 과거의 채팅내역을 조회할 수 있는 기능을 만들어야했다. 뒤늦게라도 채팅방에 참여한 사람들이 과거의 채팅내역을 보면서 방 분위기를 파악할 수 있고 그에 따라 더욱 빠르게 택시팟이 성사되는 기대효과가 있기 때문이...
프론트 분들과 협업하다가 만난 CORS에 대해 정리를 해보고자 한다. SOP (Same-Origin Policy) 같은 origin, 즉 같은 출처에서의 요청만 접근할 수 있도록 하는 원칙이다. 여기서 origin이란, Protocol + domain(IP) + Port Numb...
최근 동아리 프로젝트로 학내 택시팟 서비스를 제공하는 서버를 만들고 있다.
Spring과 FastAPI의 아키텍처 관리 방법이 또 다른것 같아 정리하면 좋을 것 같다. Spring Spring 프레임워크의 경우, 철학이 “객체의 생명주기를 개발자가 아니라 프레임워크가 관리한다”의 방식이다. 이른 제어권이 거꾸로 되었다고 해서 Ioc(Inversion o...