이번 한 주 동안 동시성 문제(Race Condition)을 해결하기 위한 방법들을 분석해보고 직접 구현해보았다.
분석과정에서 추상적으로 이해했던 DB 락에 대한 이해도를 높힐 수 있었다. 덕분에 앞으로 DB락을 필요한 시점에 더 잘 활용할 수 있을 것이란 자신감이 생겼다.
1. 문제
비관적락과 낙관적락의 경우 지속적으로 접해서 괜찮았으나 Redis와 Kafka는 처음 접했기 때문에 개념을 이해하기 어려웠다.
2. 시도
Reds와 Kafka를 다루는 유튜브 영상과 블로그들을 살펴보았다.
3. 해결
기술적 러닝커브때문에 Kafka에 대한 분석과 구현은 다음기회로 미루고 이번에는 DB락과 Redis 를 다루었다.
4. 알게된 것
'분산 서버', 'NoSQL', 'in-memory' 등의 키워드 때문에 어렵게만 생각했지만 단순 구현의 경우 추측했던 것보다는 꽤나 해볼만 했다. redis의 구현은 lettuce와 redisson으로 나누어지고 구현체별로 어떤 기능을 제공하는지 간략히 확인할 수 있었다.
* lettuce : '기본 락'과 '스핀 락' 제공 / redisson : 'pub/sub 방식의 락' 제공
5. Keep
어렵지만 논리적으로 글을 구성하기 위해 노력하고 있는데, 작성된 보고서를 보니 도움이 된 것 같다.
시각적으로 보이는 발전과정이 동기부여가 된다.
* 지금처럼 앞으로도 열심히 하자!!
6. Problem
어려운 작업을 피하지 말자. 어떻게 접근해야할 지 해결책이 한눈에 보이지 않으면 해결 방법을 찾는다는 이유로 뒤로 미루게 된다. 미루는 행동은 시간 분배에 실패하는 직접적인 요인이 된다.
7. Try
처음부터 완벽한 해결책을 세울 수 없으니깐 단계적 방식을 사용한다.
떠오르는 접근방식을 사용하고 이를 고도화 해보자.
'학습 로그' 카테고리의 다른 글
[항해 플러스 백엔드] 4주차 회고 (WIL) (0) | 2024.10.21 |
---|---|
[항해 플러스 백엔드] 3주차 회고 (WIL) (0) | 2024.10.13 |
[항해 플러스 백엔드] 2주간을 되돌아 보며 (2) | 2024.10.05 |