Austin
취소

실시간 채팅방 구현(19) - (현재까지의 일정관리 Notion)

프로젝트 전체 일정 현재 진행중인 스프린트

실시간 채팅방 구현(18) - (성능개선 사안들 및 적용된 값)

성능개선사안들 및 적용된 값들 batch <– 성능을 가장 많이 개선시킨 부분(네트워크 로드 감소) before : 1 after : 100 chatting_id 내부 자동 생성(네트워크 로드 감소) before : from db sequence after : r...

실시간 채팅방 구현(17) - (프론트 서버 개발 완료 및 성능이슈 발생)

INDEX Batch JPA batch JDBC batch 일반적인 성능비교 그래서 Chatting을 insert할 때는 어떤 방식이 좋을까? 이슈비교 그 외 종합 성능비교 그래프 결론 기능 설명 및 시연영상 https://w...

실시간 채팅방 구현(16) - (프론트 서버의 예상 UI + 시퀀스 다이어그램 + HTTP 송/수신 방법 정의)

INDEX(프론트 서버 설계) 예상 UI 시퀀스 다이어그램 프론트 HTTP request/response 비동기 or Non-blocking? 예상 UI 앞서 우리는 API Gateway까지 백엔드 전체를 생성했다. 이제 실제 body와 uri를 게이트웨이에 전송하는 프론트 서버를 만들어 볼 것이다. 먼저 Protopie 툴을 통해서...

실시간 채팅방 구현(15) - (대량 Rest api test 시 속도문제 해결과정-2)

이전 테스트에서 발생한 성능이슈를 (1)Server 수평확장 및 (2)Docker 할당 리소스 추가로 10K HTTP request 테스트의 response까지 걸리는 시간을 110초에서 49초로 감소시켰다. 이번에는 Spring Jpa Batch를 통해 49초에서 23초로 감소시킨다. NOTICE 쿼리튜닝이 아직 생소하기때문에 내용이 ...

실시간 채팅방 구현(14) - (대량 Rest api test 자동화)

실시간 채팅방 backend에 직접 대량의 Rest api test를 진행했었다. 그런데 이 rest api test가 매번 직접 설정해주기 힘들어서 이를 Docker-compose 와 Viper 로 자동화 할 것이다. 아래는 자동화 시키고 실행한 결과를 먼저 보인다. 사용법과 코드는 https://github.com/ghkdqhrbals/multip...

실시간 채팅방 구현(13) - (대량 Rest api test 시 속도문제 해결과정-1)

이전 포스팅에서 10000개의 rest api를 직접 test해보았다. 로직에는 문제가 없지만 성능이슈가 너무 나버렸다. 10000개 테스트 하는데 110초가 걸린것이다. 의심가는 부분이 한두군데가 아니다. 오늘의 포스팅은 의심가는 부분을 한번 찾아보고 정리하려한다. 본 과정의 결과로 10K개의 request test 시, 10K개의 response까...

실시간 채팅방 구현(12) - (대량 Rest api test 한계 돌파)

INDEX 랜덤값으로 test하는 code 10000개 rest api 트래픽 실행(110초 소요) 이제 동시 연결가능한 TCP 소켓을 필자의 맥북이 버틸 수 있는만큼 열어서 다량의 http request를 서버로 전송해볼려고 한다. t := http.DefaultTransport.(*http.Transport).Clone() t.M...

실시간 채팅방 구현(11) - (대량 Rest api test 코드)

현재까지 auth/chat Server 및 여러 장애대응과 모니터링 서비스를 구축했다. 서비스관련 테스트 코드는 이미 생성하였으며, 이제는 다량의 Rest api 트래픽을 테스트를 위한 클라이언트를 제작해 볼 차례이다. 아래의 코드는 Golang으로 제작하였다. 예상되는 아래의 질문에 대한 답변을 준비해봤다. Question : 왜 Java...

실시간 채팅방 구현(10) - (양방향 DB Sync 구현의 어려움 + 비용)

서론 단방향까지는 구현이 가능했었는데, 양방향(BDR)은 아래의 이유로 굉장히 까다로웠다. 컨셉만 존재할 뿐, 코드 레퍼런스가 없다. 현업자분들께 방향성을 여쭙고싶다. 두 개의 마스터 노드일 때는 그래도 할 순 있겠지만, 그 이상일 때는 각각을 전부다 설정해줘야하기때문에 상당히 까다롭다. ...