
여긴 어디... 나는 누구...
1 ~ 5주차는 6주차 이후의 과정을 위해 토대를 쌓는 과정이었다면, 6주차부터는 동시성 문제와 트래픽 제어를 위한 과정이다.
즉, 완전 새로운 주제로의 전환이다.
마치 1주차로 돌아간 기분...
무슨 말이냐면, 하나도 모르겠다^^
우선 레디스를 하나도 몰라서 강의를 구매해서 들었다.
완전 기초 강의여서 일수도 있고, 코치님 말씀대로 레디스 자체가 어려운 건 아니라서 그럴 수도 있고, 여튼 이틀동안은 스무스하게 공부했다.
락은 콘서트 대기열의 유즈케이스별로 좌석예약, 포인트 충전/결제에 구현하기로 했다.
코치님과의 멘토링을 통해 하기대로 락을 적용했다.
좌석 예약 시도 후 좌석 선택이 불가능할 경우 빠르게 응답 처리하기 위해 낙관적락을 적용했고,
포인트 충전은 여러 번 충전 시도 시 해당 시도를 모두 처리시켜준다는 가정 하에 비관적락을 적용했다.
포인트 결제는 여러 번 시도 하더라도 최초의 한 번에 대해서만 처리시켜주기 위해 낙관적락을 적용했다.
사실 구현하면서도 이 유즈케이스에 이 락을 사용하는 것이 맞나에 대한 의문이 들었다.
하지만 락을 사용하는 것에 정답은 없고, 비관적락을 구현하더라도 무조건 대기시키는 게아니라 다른 방법을 적용해서 처리 할 수도 있다는 얘기를 들으면서, 많이 공부해야겠다는 생각을 했다.
알맞은 락이나 락이 아닌 다른 방법(메세지큐?라든가?)을 적용하기 위해서는 내가 그 방법들에 대해 잘 알고 또 내 유즈케이스에 대해 잘 파악하고 있어야 할 테니까.

락에 대해 더 공부하고 싶은데 어떻게 해야할까?
티스토리, 블로그 등의 글은 불확실한 정보가 너무 많다
회고로 돌아와서...
어디선가 계속 낙관적락이 걸려 풀리지 않는 둥 에러가 많이 발생해서 에러 해결에 시간이 많이 걸렸고,
유즈케이스별로 다른 락도 적용해서 비교해보려던 계획과 레디스의 분산락을 적용해보려는 계획이 망가졌다.
겨우 좌석예약에만 비관적락과 낙관적락을 적용해서 테스트를 통해 비교해봤는데,
풀이 적어선지 시간 차이가 많이 나지 않았다.
또 테스트 시간도 300ms가 넘게 걸렸는데 테스트 풀이 10개 밖에 없었다는 것을 고려하면 어딘가 로직이 잘못되어 있거나 테스트가 잘못된 게 아닐까 하는 생각이 든다.
여기서 말하자면 이번 주차의 가장 어려웠던 점은 락이나 레디스에 대한 공부보다 테스트였다.
내가 하는 테스트가 맞는 것인지에 대한 불확실함이 너무 컸다........

지난주 받은 따봉 반납합니다.
일단 주말에 조금 더 고쳐보고...
화이팅.........
멘탈이 약간 터져있어서 회고록 양식에 맞춰서 못 쓰겠다^0^
'항해99 플러스' 카테고리의 다른 글
항해플러스99 10주차 마무리하며(콘서트 티켓팅 서비스 정리) (2) | 2024.08.31 |
---|---|
1년차 주니어 개발자의 항해 플러스 백엔드 5주차 회고록 (0) | 2024.07.20 |
3주차 회고록 (0) | 2024.07.06 |
2주차 회고록 (0) | 2024.06.29 |
1주차 회고록 (0) | 2024.06.22 |