🔔[항해99]/WIL

[항해플러스 백엔드후기] 6주차 회고 - 하루하루가 고비

디카페인라떼 2025. 2. 3. 01:40

[개요]

절반이 넘어가면서 앞으로가 힘들지는 않을거라는 생각은 하지 않았지만

그래도 이렇게까지 일이 겹치면 힘들수 있겠구나 하고 느낄 수 있었던 한주였다


[과제]

6주차의 과제는 다음과 같았다 

- 시나리오에서 발생할 수 있는 동시성 이슈에 대해 파악 후 가능한 동시성 제어 방식들을 도입 및 
	각각의 장단점을 파악 후 내용을 정리 제출 
- DB Lock 을 활용한 동시성 제어 방식에서 해당 비즈니스 로직에서 적합하다고 판단하여 차용한 동시성 제어 방식을 구현하여 비즈니스 로직에 적용
	통합테스트 등으로 이를 검증하는 코드 작성 및 제출

 

지난 주차에 이어서 좀더 다양한 동시성 제어 방식들에 대해서 배우고, 그 중에 DB 락에 좀더 초점을 맞추어서 비교하여 보고서를 작성하고 기존 로직을 개선하는 것에 초점이 맞춰졌다.

 

이번 주 과제하면서 배우게 된 동시성 제어 방식에는 다음과 같은 방식들이 있었다

 

1. DB락

2. Redis 분산락

3. Kafka Message Queue 기능

 

그러나 모든 동시성 제어 방식들을 구현하고 비교해보기보다는 ( 앞으로도 차차 구현해볼 예정이므로 ) 이번 주에는 DB 락에 초점을 맞추어서 구현해보아야 한다고 하여서 DB락에 대해서 좀더 자세히 공부하고 개념을 다잡을 수 있었다 


[과제 해결 과정]

 일단 동시성 제어 방식에 대한 보고서는 다음과 같이 작성하였다 

 

이번 보고서 작성에서 제일 어려웠던 점은 나의 시나리오에서 동시성 제어가 필요한 상황을 고민해보고 해당 상황에서 어떤 동시성 제거 방식이 제일 적합할지 고민해 보는 과정이었다. 이를 위해서는 동시성 제어 방식에 대한 이해와 실제로 이 방법이 적합했는지 비교 분석도 필요했기때문에 결과적으로 모두 구현을 해보아야 했기 때문이다. 

 

일단은 개념을 제대로 잡고나서 발생할 수 있는 동시성 문제는 다음과 같이 생각했다

1. 주문 시 상품 재고 차감 시나리오
2. 결제 시 사용자 잔액 차감 시나리오
3. 사용자 잔액 충전 시나리오
4. 선착순 쿠폰 발급 시나리오

 

1번은 데이터베이스에서 재고를 직접 관리하므로 정확한 트랜잭션 보장이 필요하다고 생각하여 비관적 락으로 선택하였다. 

2,3 번과 같이 주문 결제에 관련된 문제는 강력한 데이터 무결성을 보장해야 하므로 비관적락으로 선택해주었다

4번 쿠폰 발급 또한 데이터베이스에서 쿠폰 재고를 관리하므로 정확한 트랜잭션 보장이 필요하다고 판단하였다. 

 

과제를 진행하면서 회사일도 겹치게 되면서 시간적으로 여유가 없어 Redis 분산락과 kafka MQ 는 구현해 보지 못하여서 배제하였다.

 

DB락은 모두 JPA를 활용하여 구현할 수 있었기에 구현 자체에는 어려움을 느끼진 못했다. 그러나 기존 동시성 제어 테스트 코드에서 에러가 나서 이를 해결하기 위해서 시간을 많이 들였고 결국 보고서를 완성할 수 있었다.

 

지난주에 이미 동시성 문제에 관해 비관적 락을 구현하였어서 그때 미처 생각해보지 못했었던 시나리오에 추가로 비관적 락을 적용해주고 동시성 통합테스트 코드를 추가하고 제출 마감일 당일에 제출할 수 있었다 

 

[알게된 점]

동시성 제어란 무엇인지 근본적으로 다시 톺아보고 DB락에 대해서 개념을 정확히 잡을 수 있는 계기가 되어 좋았다.

앞으로는 Redis와 Kafka 도 해볼 생각에 설렌다..!


이번주 KPT 회고


Keep : [유지해야 할 좋은 점]

- 굳이 기본개념부터 짚고 넘어갔어야 했었던 보고서였는데 다행히 피드백에서 보고서가 훌륭하다는 평가를 받았다. 일단 남에게 보이는 것에 급급하지 않고 내가 이해하기 위해서 필요했던 개념들을 정리해서 넣은 게 잘한 것 같다

 

Problem : [개선이 필요한 점]

- 회사와 과제 사이에 균형을 맞추지 못해서 몸을 제대로 돌보지 못하고 있는 점. 한번으로 끝날 게 아니고 길게 봐야할 문제인데 단기성으로만 몸을 혹사시키고 있는 것 같다. 


Try : [새롭게 시도할 점]

- 시간 배분을 잘해서 일과 과제를 모두 밸런스 있게 하고 싶다. 특히 이번주는 막판에 몰아치는 것도 있었고 야근 후에 과제를 진행하느라 하루에 수면시간이 5시간을 채 넘기지 못하는 때가 많았는데 이래서인지 보상심리로 실제로 시간이 여유로운 주말에는 아무것도 하기가 싫어지곤 한다.. 

- 건강 챙기고, 밸런스를 잘 맞추는 게 필요한 것 같다 

 

 


 




🎉 수료생 추천 할인 혜택 안내 🎉

항해 플러스에 합류하고 싶은데 수강료가 부담되시나요? 🤔
수료생 추천 할인 혜택으로 20만 원 할인을 받을 수 있다는 사실, 알고 계셨나요? 💡

💳 할인 적용 방법
1️⃣ 결제 페이지로 이동
2️⃣ 할인 코드 입력란에 zzy6ui 입력
3️⃣ 추가 할인 20만 원 바로 적용!

놓치지 말고 특별한 혜택 꼭 챙겨가세요! 🚀🌟