@joyopi
수강생
83
수강평
9
강의 평점
5.0
(현) 안랩 백엔드 개발자
뽀미
·
동시성 문제는 개념은 들어봤지만 실제로 어떻게 발생하는지 체감하기 어려웠는데, 이 강의는 “가장 쉬운 동시성 문제”라는 제목에 잘 맞는 강의였습니다 ! 👍 Race Condition을 그림과 코드 예시로 설명해주셔서 이해가 잘 되었고, 왜 이런 문제가 발생하는지 흐름을 따라가며 배울 수 있었습니다. 😊 다른 주제로 강의 또 들어보고 싶어요 !
하나의묵
동시성 문제를 항상 어렵게만 느껴왔는데, 이 강의에서 개념을 차근차근 풀어 주셔서 드디어 감이 잡힌 느낌입니다. 이론만 다루는 것이 아니라 직접 실습 환경을 구성해 보면서 단일 서버와 분산 서버에서 동시성 문제가 어떻게 다르게 나타나는지 자연스럽게 이해할 수 있었습니다. 또 동시성 이슈가 실제로 어떤 과정에서 발생하는지 직접 확인할 수 있는 구조라, 단순히 개념을 암기하는 것이 아니라 왜 이런 문제가 생기는지를 체감할 수 있었던 점이 특히 좋았고, 실무에서 바로 활용할 수 있을 내용이 많아 도움이 많이 됐습니다. 낙관적 락·비관적 락·분산 락 등 개념이 헷갈리거나, 동시성 문제를 어떻게 해결해야 할지 고민되는 분들께 추천할 만한 강의라고 생각합니다.
이달팽
동시성 문제를 이론적으로만 알고 있었는데 강사님 따라 race condition을 코드 레벨에서 직접 재현하고 해결해보면서 감을 확실히 익힐 수 있었던 것 같습니다. 공유DB, 분산환경 등 다양한 환경을 가정하고 실습하는 것도 도움이 많이 됐어요. ㅎㅎ 저처럼 동시성 문제에 입문하는 분들에게 좋은 강의인 것 같습니다. 감사했습니다~
질문&답변
분산 락이 필요한 이유
정리하신 내용이 맞습니다.낙관적, 비관적 락으로 해결할 수 없는 상황은 데이터베이스가 보장하는 원자성의 범위를 벗어나는 지점에서 발생합니다.말씀하신 대로, DB 락은 특정 DB 인스턴스 내부의 데이터 정합성만 책임집니다. 외부에 존재하는 데이터(타 서비스 API, 외부 스토리지 등)에 대해서는 무력합니다.비관적 락의 한계내 DB의 특정 행을 잠궈도 외부 API가 실행되는 것 자체를 막지는 못합니다. 낙관적 락의 한계DB 반영 직전에 충돌을 감지하더라도, 이미 외부 시스템에 명령이 전달되었다면 되돌리기 어렵습니다.분산 환경에서 분산 락이 필요한 이유는 물리적으로 분리된 여러 프로세스 사이의 실행 순서를 강제할 전역적인 중재자가 필요하기 때문입니다.결론: DB가 모든 것을 통제할 수 없으니, 분산 락으로 어플리케이션 계층 위에서 질서를 잡아주는 역할을 합니다.으아 ㅠ 답변이 늦어서 너무 죄송합니다. 강의 첫 질문이라 제가 알림을 놓쳤습니다.🙇♂🙇♂질문 주셔서 감사합니다.다음에는 더 빨리 답변할 수 있도록 하겠습니다.죄송합니다.