인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

wnsqud70님의 프로필 이미지

작성한 질문수

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

좋아요 수 설계 - 동시성 문제

락 처리

해결된 질문

작성

·

110

·

수정됨

0

안녕하세요 선생님

동시성 처리 방법에는 redisson을 활용한 방법도 있는데요 혹시 이 방법은 언제 써야할까요?

감사합니다

답변 2

0

쿠케님의 프로필 이미지
쿠케
지식공유자

wnsqud70님, 안녕하세요!

 

redisson은 레디스 클라이언트 라이브러리일 뿐이고, 결국 레디스를 이용한 분산락을 말씀하신 것 같습니다.

분산 시스템에서 락을 잡고자 한다면 언제든 사용해도 됩니다!

다만, 강의에서 진행하는 좋아요 수 데이터는 메인 데이터베이스로 MySQL을 사용하고,

MySQL의 트랜잭션과 로우락을 이용하여 문제를 해결하고 있습니다.

이미 MySQL에서 해결책을 제시하고 있는 상황인데, 타 DB를 도입하는 것은 시스템 복잡성과 운영 비용을 높일 수 있습니다.

하지만 로우락 잡는 것 자체도 DB에 더 큰 부담을 주는 것이고, 메인 DB의 리소스는 가장 중요할 수 있으므로,

락에 대한 처리를 레디스와 같은 타 DB로 이관하는 것도 가능한 선택지 중에 하나입니다.

인메모리 기반이라 더욱 빠르고, 메인 DB 부담을 줄여준다는 장점이 있겠네요.

문제 없는 범위에서는 복잡성/운영 비용/성능 등 고려하여 다양한 도구를 활용할 수 있을 것 같습니다.

타 DB 연동할때 고려할만한 부분은,

트랜잭션이 시작됨에 따라 MySQL 커넥션을 물고 있을텐데, Redis 장애로 인해 지연이 발생하면, MySQL 리소스가 낭비될 수 있는 등 여러 문제 사항에 대해서 검토가 필요할 것 같습니다. 관련해서 개발 비용이 높아질 수 있다는 점도 같이 고려 대상이 될 수 있겠네요.

그리고 분산락은 이후 강의 진행하다보면 사용하게 됩니다!

 

혹시 더 궁금한 점 있으시면 편히 문의 주세요!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. wnsqud70님.

스프링부트 프로젝트에서 동시성 문제를 해결하기 위해 다양한 방법이 존재하며, 그중 Redisson을 활용한 방법도 있습니다. Redisson은 자바에서 Redis와 결합해 분산 환경에서의 다양한 기능을 제공하는 라이브러리입니다.

Redisson의 활용 시점

  1. 분산 락: Redisson은 Redis의 기능을 사용하여 분산된 환경에서도 락을 관리할 수 있는 메커니즘을 제공합니다. 여러 노드가 동시에 자원에 접근하는 상황에서는 Redisson을 활용한 분산 락이 유용할 수 있습니다.

  2. 고가용성: 시스템이 여러 인스턴스로 구성되어 있고, 어디서든 동일한 자원 관리가 필요할 때 Redisson을 통해 락을 관리할 수 있습니다. 이는 노드의 증가에도 동일한 자원에 대한 락을 유지할 수 있게 해줍니다.

  3. 가벼운 운용: Redisson은 Redis 클러스터링과 같은 고급 기능을 통해 다중 노드에 대해 관리할 수 있으며, 네이티브 Redis에 비해 좀 더 고급 기능들을 제공합니다.

활용 경우 고려사항

  • 성능 요구: Redis에 의존하는 만큼 네트워크 지연에 따른 성능 이슈가 발생할 수 있어 사전 테스트가 필요합니다.

  • 복잡성: 레거시 코드에 새로운 기술을 도입할 때 발생하는 복잡성을 고려해야 하며, 개발자의 경험과 능력에 따라 적용 여부를 결정할 수 있습니다.

관련된 심도 있는 토론과 구체적인 사례는 다음 링크에서 도움을 받을 수 있습니다:
- 백엔드 시스템에서의 Redisson 활용 사례

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

woo님의 프로필 이미지

활용 사례 링크가 404가 떠요

wnsqud70님의 프로필 이미지

작성한 질문수

질문하기