Reddison Vs Lettuce 우선 시작하기 전에 Spring Boot에서 Redis를 사용하기 위해서는 Redisson과 Lettuce 둘 중 하나를 사용할 수 있습니다. 해당 글에서는 Redisson을 사용하였으며, 왜 Redisson을 사용했는지 두개의 라이브러리가 어떤 차이점을 가지고 있는지 살펴보고 넘어가겠습니다. 💡 Redisson Redisson은 우선 Publisher와 Subscriber 기반으로 Lock을 획득 및 제공하고 있습니다. Lettuce와 다르게 SpinLock 방식이 아닙니다. SpinLock의 경우 순회를 하면서 Lock의 획득 여부를 계속하여 물어보게 됩니다. 이는 Busy Waiting이 발생하게 되며 많은 CPU 자원을 낭비하게 됩니다. 💡 Lettuce Let..
왜 Redis Sorted Set으로 대기열을 구현했는가? 여러 아티클을 통해 redis의 sorted set은 하나의 key에 중복되지 않는 meber를 가질 수 있다는 것을 알게되었다. 이는 카카오 선물하기 구조에서 안성맞춤이라고 생각한다. 그 이유는 하나의 선물(key)에 다수의 memer(참여자) 구조로 갈 수 있다는 것을 의미한다. N개의 요청이 발생했을 때 score를 통해 접근 순위를 파악할 수 있다. 런닝 커브가 낮다 카카오 선물하기 대기열의 구조 💡 게임 주최자의 입장 게임 주최자는 특정 오픈 채팅방에 선물하기 게임을 시작합니다. 선물의 정보와 redis에 저장할 키를 발급하고 데이터 베이스에 함께 정보를 저장합니다. 발급 받은 키를 사용하여 redis에 선물 갯수를 저장합니다. 오픈 채..
다시 엑셀 다운로드를 만들어보자 엑셀 다운로드 1편 에서는 기본적인 엑셀 다운로드를 살펴보았습니다. 지금부터는 1편의 문제점을 어떻게 해결할 수 있을까? 라는 주제입니다. 해당 글은 개인적인 경험이니 피드백을 주시면 감사하겠습니다. 기존 엑셀 다운로드 API에 부하 테스트를 진행하는 도중 서버가 잠시동안 멈춰버리는 현상이 겪어 heap dump를 하여 구글링을 통해 알게된 내용을 공유합니다. 🤔 문제점을 어떻게 해결할 수 있을까? heap dump를 통해 구글링을 하던 중 비슷한 경험을 했던 블로그를 찾았는데 해당 글에서 애플리케이션의 메모리에 한꺼번에 많은 양을 가져오게 된다면 문제가 발생한다라는 내용을 알게되었습니다. 이 해결방안을 토대로 페이징을 적용하고 주기적으로 내용을 flush 해주면 괜찮아지..
엑셀 다운로드를 만들어보자. 구글링에 Spring Boot 엑셀 다운로드를 검색하면 무수히 많은 글이 나옵니다. 하지만 이 글에서는 엑셀 다운로드 중 어떤 것들을 조심해야 하는지, 그리고 엑셀 유틸 클래스를 만들어서 하나의 유틸 클래스로 어떻게 관리할 수 있는지 살펴보도록 하겠습니다. 우선 엑셀 다운로드 중 조심해야 할 것들은 2편에서 소개할 예정이므로 우선 기본적인 엑셀 다운로드를 만들어보겠습니다. 💡 상황예시 지금부터 다룰 예시는 회원들의 엑셀 다운로드와 회원들이 작성한 게시글을 다운로드입니다. 💡 의존성 설정 Spring Boot에서 가장 많이 사용하는 apache poi 라이브러리를 추가합니다. implementation 'org.apache.poi:poi-ooxml:5.2.2' implement..
- Total
- Today
- Yesterday
- redis 대기열 구현
- spring boot redisson 분산락 구현
- redis sorted set
- spring boot excel download paging
- 공간 기반 아키텍처
- 서비스 기반 아키텍처
- spring boot excel download oom
- 람다 표현식
- spring boot redisson sorted set
- spring boot 엑셀 다운로드
- 레이어드 아키텍처란
- pipeline architecture
- java userThread와 DaemonThread
- 자바 백엔드 개발자 추천 도서
- transactional outbox pattern spring boot
- transactional outbox pattern
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- java ThreadLocal
- spring boot poi excel download
- spring boot redis 대기열 구현
- spring boot redisson destributed lock
- microkernel architecture
- space based architecture
- @ControllerAdvice
- pipe and filter architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
- redis sorted set으로 대기열 구현
- polling publisher spring boot
- service based architecture
- JDK Dynamic Proxy와 CGLIB의 차이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |