OOP
Java
- 도움이 될수도 있는 JVM memory leak 이야기
- RestTemplate, Zuul, neflix.servo metrics가 url pattern을 고유한 키로 판단하면서 발생하는 memory leak, ngrinder
- Java의 미래, Virtual Thread
- JDK21, 함수의 색 문제, Coroutine, CPU bound 작업엔 비효율적, 수시로 생성 및 소멸하기 때문에 thread local은 작게 유지
Spring
- Spring Boot에서 S3에 파일을 업로드하는 세 가지 방법
- Stream, MultipartFile, Aws Multipart Upload
- 정산지기를 향한 첫걸음 (feat. 파일럿 프로젝트)
@Where(clause = "delete = 0")
, totalCount 캐싱, 권한 관리, chunkSize, 코드 리뷰
- 멀티모듈 설계 이야기 with Spring, Gradle
- 우아한 feign 적용기
- OpenAPI Specification을 이용한 더욱 효과적인 API 문서화
- 스프링 배치(Spring Batch) 전환기
- 풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson
- Validation 어디까지 해봤니?
Kotlin
- Kotlin으로 Spring AOP 극복하기!
- Trailing Lambdas, Reverse Argument, Self Invocation
JPA
- 응? 이게 왜 롤백되는거지?
- Propagation, Transaction, Rollback, Try-Catch
DB
- 캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁
- Cache Stampede, Jitter, Cahce Penetration, Null Object Pattern, Failover, Hotkey, Distributed Lock for cache hit
- 인덱스로 성능 개선하기 (feat. B-Tree 인덱스)
- NOT IN 대신 JOIN을 통한 쿼리 최적화 방법 (쿼리 시간 96% 절감 후기)
Log
- 토스ㅣSLASH 23 - 분산 추적 체계 & 로그 중심으로 Observability 확보하기
- L7 Load Balancer, X-Forwarded-For, Proxy Protocol, Global Trace Id, MDC, Istio
DevOps
- 좌충우돌 Terraform 입문기
- cycle error, aws_sqs_queue_policy
- Datadog - “저는 모니터링 요정입니다. ✋🏻”
Architecture
Culture
- 공통시스템개발팀 코드 리뷰 문화 개선 이야기
- D-n 규칙, Pn 규칙, pre-commit
- 우린 Git-flow를 사용하고 있어요
Fuction
Performance
- 채널톡 실시간 채팅 서버 개선 여정 - 1편 : 레디스의 ‘Pub/Sub’
- Redis, Socket.io, broadcast - O(NM)
- WMS 재고 이관을 위한 분산 락 사용기
- 대량의 트래픽이 몰려올 때 나는 어떻게 해야하나? - (feat. Cache, 대기열 구현)
Chat
- 라이브채팅 플랫폼 구현기 1탄 : 개발 언어 및 기반기술 조사
- HTTP Polling, Webscoket, MongoDB, Kafka, Trie, Aho-Corasick
- 라이브채팅 플랫폼 구현기 2탄 : 아키텍처 및 성능 테스트
- 테스트 플랫폼 비교 및 분석, Consistent Hashing