2023
- 20 Dec 도커와 VM
- 26 Oct 더블 클릭 요청 방지하기 - RateLimiter
- 24 Oct 내가 생각하는 지속 성장 가능한 코드
- 04 Oct 핵심 로직이 부가 로직에 영향을 받는 강결합 문제 트러블 슈팅
- 27 Sep Redis를 사용한 분산락의 주의점과 보완 전략
- 04 Sep 동시성 문제를 해결하기 위한 캐시 미스와 데이터베이스 부하 관리 전략
- 27 Aug 테스트시 ControllerAdvice에 의해 예외가 잡히지 않는 경우
- 23 Aug 잃어버린 SRP를 찾아서 - 퍼사드 패턴 적용기
- 21 Aug Real MySQL 8.0 - 트랜잭션과 잠금
- 19 Aug OpenFeign을 활용한 외부 API 호출
- 07 Aug Cache Stampede 문제를 해결하기 위한 캐시 성능 개선 전략
- 05 Aug 레디스에서 트랜잭션을 보장하는 방법
- 31 Jul 캐시 적용에 따른 트레이드 오프
- 30 Jul 서비스 원자성 보장하기 - 카프카 트랜잭션 아웃 박스 패턴
- 21 Jul AOP를 활용한 토큰 체크 로직 분리하기
- 19 Jul @GeneratedValue를 사용하지 않고, id를 직접 할당할 때의 주의점
- 18 Jul 다형성을 활용해 OCP를 지키면서 새로운 컴포넌트 추가하기
- 09 Jul 쿠버네티스 로드밸런싱 적용기입니다. 그런데 이제 Istio를 곁들인
- 07 Jul 서킷 브레이커 패턴을 적용한 쿠버네티스 트래픽 대응 전략
- 05 Jul 카프카 모니터링
- 04 Jul MSA의 트랜잭션 패턴
- 29 Jun 멀티 브로커 카프카, 주키퍼가 없는 KRaft 모드 적용기
- 28 Jun 이벤트 기반의 비동기 처리로 사용성 개선하기
- 28 Jun 헥사고날 아키텍처 적용기
- 23 Jun Spring Kafka 예제
- 21 Jun 쿠버네티스 배포 전략 - Deployment
- 19 Jun DB 리플리케이션 적용기(with AWS RDS)
- 19 Jun new 연산자로 String 객체를 생성하면 안되는 이유
- 15 Jun 효과적인 비즈니스 로직 모니터링(with AOP)
- 14 Jun 로그 수집을 위한 AWS CloudWatch 적용기
- 13 Jun TDD에 대해서 구체적으로 알아보기
- 10 Jun 객체 지향적으로 리팩토링해보기
- 09 Jun Redis Cluster vs Sentinel
- 09 Jun Effective Kotlin - Item 3. 최대한 플랫폼 타입을 사용하지 말라
- 09 Jun 코틀린스럽게 작성해보기 with 컬렉션 함수
- 08 Jun Effective Kotlin - Item 2. 변수의 스코프를 최소화하라
- 08 Jun Effective Kotlin - Item 1. 가변성을 제한하라
- 06 Jun 네이버 클라우드 플랫폼 사용 회고
- 06 Jun TDD, 클린 코드 with Kotlin - 1주차
- 05 Jun 도커 컴포즈로 그라파나+프로메테우스 실행시키기(2/2)
- 05 Jun 도커 컴포즈로 그라파나+프로메테우스 실행시키기(1/2)
- 04 Jun [LeetCode] valid-palindrome
- 02 Jun 레디스를 사용해 선착순 요청 처리하기
- 02 Jun 여러 요청에 대해 비동기적으로 처리해보기
- 02 Jun 도메인 설계에 대한 고민
- 01 Jun 스프링 부트에서 챗 GPT를 사용해보자
- 18 May url 변수 동적으로 받을 수 있도록 개선하기
- 15 May 연관 관계를 고려한 N+1 문제 해결하기