Skip to main content Link Menu Expand (external link) Document Search Copy Copied
  • 2024-02-04 46. SQL OrderBy 에 여러가지 인덱스 적용해보기 - 46배 빨라진 쿼리! 서론 본 포스팅에서 테스트할 쿼리는 아래와 같습니다. 이 메소드는 roomId 에 기반하여 최대 1000개의 row 를 createdAt ascending 순서로 가져오는 쿼리입니다. 해당 쿼리는 findAllByRoomId 메소드로 수행이 되는데요.
  • 2024-01-29 45. CI/CD 자동화 구축 - 3 지금까지 자동화한 부분에 대해 정리가 필요해서 본 포스팅을 작성합니다. 결론부터 말씀드리면, git main 브랜치에 병합되면 자동으로 신버전 태깅되어 여러 워커노드에 deploy 됩니다. 그리고 여러 Job 들의 결과를 slack 채널로 반환받게 됩니다.
  • 2024-01-27 44. 현재까지 프로젝트에 사용된 기술 정리 지금까지 채팅서비스에는 정말 여러가지 기술들이 사용되었습니다. 이러한 기술들을 왜 사용했는지, 그리고 각각의 개념들에 대한 이해가 중요할 텐데요. 본 포스팅에서 자문자답 형식으로 이를 기술해보겠습니다! Q1. Kafka 는 어떤 이유로 쓴건가요? A1.
  • 2024-01-22 (PostgreSQL) Index 에 따른 성능측정 Postgresql vs Mysql 인덱스 최적화 방법을 말씀드리기 전에 데이터 저장에 있어 Mysql 와 Postgresql 의 인덱싱 차이점을 먼저 말씀드리겠습니다. Mysql 의 PK 인덱스는 클러스터링 인덱스로 되어있습니다.
  • 2024-01-07 43. 서버성능 개선기록 - 🔴MTTFB 평균차이 - 31% 성능감소 저는 채팅서버의 Interceptor 에서 Redis Session 에 저장된 refreshToken 을 find 하도록 설정했습니다. 그리고 이러한 Interceptor 메소드와 Redis 지연시간을 io.micrometer 로 측정해보았는데요.
  • 2024-01-03 42. 서버성능 개선기록 - 🟢MTTFB 변동량 평균 30.46% 개선 성능개선 이전에 기존 서비스의 성능측정 10분간 POST /api-chat/chat 의 퍼포먼스를 ramp-up VUSER 300 으로 측정하였습니다. 아래의 테이블은 Thread warm up 이전과 이후 차이를 관찰합니다. 그리고 그래프는 웜업 이후의 그래프입니다.
  • 2023-12-29 41. 서버성능 개선기록 - 🟢TPS AVG 31%, MTTFB p99 39% 개선 개선 이전(Ingress 파드 1개) thread 300 으로 요청 전송 시 위와같이 많은 cpu 로드가 걸리네요. cpu limit 설정은 적용되어 있지 않아 보이지만 일반적으로 Ingress 파드 하나로 돌리기에는 많은 부하를 혼자 감당하고 있는것을 확인할 수 있었습니다.
  • 2023-12-21 40. 서버성능 개선기록 - 🟢TPS p99 4556%, MTTFB p95 94.47% 개선 서론 저는 여러 페이즈를 진행하며 성능 개선을 진행하였고, 각 페이즈 별 성능수치들을 먼저 보여드리겠습니다.
  • 2023-12-10 39. CI/CD 자동화 성공 - 2 {: .important-title } 1.CI/CD 자동화 성공 그리고 실패 기존에 CI/CD 플로우는 하나의 머신에 자동으로 업로드하는 플로우를 가지고 있습니다(기존의 CI/CD 방법).
  • 2023-11-03 Transactional 와 Async 예제 및 탐구 JPA 영속성 유지기간을 관찰하기 위한 여러 예제를 설명합니다 @Transaction 코드 밖에서는 영속성 유지가 되지 않는 것을 확인 @Transaction 코드 내부에서 영속성 유지가 되는 것을 확인 이를 통해 바뀐 생각은 아래와 같아요.
  • 2023-10-07 38. CI/CD 자동화 성공 그리고 실패 - 1 본 포스팅은 제가 아래의 이슈에서 이야기한 내용을 정리한 글이에요. {: .important-title } CI/CD 자동화 성공 그리고 실패 기존에 CI/CD 플로우는 하나의 머신에 자동으로 업로드하는 플로우를 가지고 있습니다(기존의 CI/CD 방법).
  • 2023-09-12 쿠버네티스 요약본 kind:Service 와 kind:Deployment 의 차이 Service와 Deployment는 Kubernetes(K8s)의 핵심 구성요소이지만, 그들의 목적과 기능이 크게 다릅니다.
  • 2023-09-10 JPQL JOIN 의 4가지 방식과 예제 설명 JPQL JOIN 들이 헷갈리는 부분이 있어서 정리해보았습니다. JPQL 에는 총 4 가지 JOIN 방식이 존재합니다. 그리고 이 JOIN 방식에 따라 영속성 컨텍스트로의 로딩 전략이 달라집니다. JPQL 에서 JOIN 을 사용하려면 연관관계를 엔티티에 설정해주어야만 합니다.
  • 2023-09-10 Spring Security 데이터 플로우 Spring Security 데이터 플로우에 대해 정리한 글입니다.
  • 2023-08-08 JPA 양방향 전파 설정 3 가지 경우 테스트 JPA 양방향 전파 설정 3 가지 경우 테스트에 대해 정리한 글입니다.
  • 2023-08-01 JPA IdClass 중복저장 시 기존 엔티티 업데이트 이슈 1. Issue Description 현재 LicenseCategory 는 licenseType 과 analyzeType 을 CombinedKey 로 사용합니다. 그리고 이 두 개의 키는 LicenseCategoryId 라는 IdClass 로 선언되어 있어요.
  • 2023-06-26 📌 쿼리 최적화 방법 저는 JPA, Data-JPA, JPQL를 사용해서 채팅 프로젝트에서 사용합니다. 하지만 성능이 생각보다 낮았습니다. 따라서 NativeQuery(=SQL query)를 사용하여 좀 더 최적화시키려 합니다. 그러기 위해서 다양한 최적화 방식들을 정리해보려고 하는데요.
  • 2023-06-18 37. Spring Cloud 기반 MSA 변환 시작-11(RDB 트래픽 분산) 문제인식 현재 채팅서버 MSA 프로젝트로 확장성을 다양한 방법으로 증가하고 있습니다. 채팅서버 프로젝트에서 확장성 증가를 위한 구현 및 사용된 기술은 아래와 같아요.
  • 2023-06-18 Spring-Cloud-Gateway 지원 로드밸런싱 기술 Gateway 지원 로드밸런싱 기술 : Default로 ReactiveLoadBalancer 을 사용하고, 이는 Round-Robin(default) 과 Random 이 두 가지를 지원합니다.
  • 2023-06-17 Spring-Java 에서의 Sync/Async Blocking/Non-Blocking 구현 방법 다들 동기/비동기와 Blocking/Non-blocking 을 한번씩 들어보셨을거에요. 하지만 Spring-Java 에서 이를 섞은 조합에 대한 실제 구현 방식을 설명하는 글이 별로 없더라구요. 그래서! 오늘의 포스팅은 해당 구현 방식에 대해 자세히 설명하려고 합니다. 1.