강의

멘토링

커뮤니티

개발 · 프로그래밍

/

백엔드

가장 쉬운 동시성 문제 - Race Condition

대표적인 동시성 문제인 경쟁 상태(Race Condition)를 주제로 학습합니다. 동시성 문제를 발생시키는 단일 서버 환경과 분산 환경을 비교하면서 실습합니다. 트랜잭션 경계와 격리수준을 이해할 수 있습니다. 낙관적 락, 비관적 락, 분산 락의 차이를 배울 수 있습니다.

(5.0) 수강평 4개

수강생 41명

난이도 초급

수강기한 무제한

  • 조요피
실습 중심
실습 중심
낙관적락
낙관적락
비관적락
비관적락
분산락
분산락
동시성문제
동시성문제
실습 중심
실습 중심
낙관적락
낙관적락
비관적락
비관적락
분산락
분산락
동시성문제
동시성문제

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • 동시성 문제에 대한 근본적인 원인과 해결 방법

  • 단일 서버 환경과 분산 서버 환경에서 동시성 문제를 해결하는 방법

  • 낙관적 락, 비관적 락, 분산 락 제대로 알고 사용하기

  • 트랜잭션 경계와 격리 수준의 이해

  • IntelliJ IDEA, Docker, k6 활용 방법

동시성 문제 아직도 헷갈리시나요?

이 강의로 낙관적 락, 비관적 락, 분산 락 등 동시성 문제의 개념과 해결 방법을 정확하게 이해하세요.

  • 동시성 문제를 발생시키는 환경을 만들어서 실제로 동시성 문제를 경험합니다.

  • 단일 서버 환경과 분산 서버 환경에서 동시성 문제의 차이를 확인하세요.

  • 정확히 모르고 사용했던 @Transactional 애노테이션의 사용 방법을 이해할 수 있습니다.

  • 동시성 문제는 하나인데 왜 해결 방법은 여러가지일까요? 이유를 확인해 보세요.

이런 분들께 추천해요

이 강의를 들어야 하는 분 (1)

동시성 문제 사실 아직도 잘 모르겠어요. 😅

이 강의를 들어야 하는 분 (2)

낙관적 락, 비관적 락, 분산 락의 차이를 정확하게 이해하지 못하고 있어요. 🌧️

이 강의를 들어야 하는 분 (3)

동시성 문제는 어떻게 테스트해야 하나요? 📜

수강 후에는

  • 실무에서 가장 많이 발생하는 동시성 문제인 경쟁 상태(Race Condition)에 대해서 이해할 수 있습니다.

  • 잘 모르고 사용했 던 @Transcational 애노테이션을 제대로 사용할 수 있습니다.

  • 단일 서버 환경과 분산 서버 환경에 대한 동시성 문제를 이해하고 정확하게 해결할 수 있습니다.

  • 트랜잭션 격리 수준과 경계에 대해서 이해하고 실무에 적용할 수 있습니다.

이 강의의 특징

편리한 실습을 위한 IntelliJ IDEA의 활용과 Notion, Github를 활용한 강의 자료 제공

이 강의의 핵심 강점 (1)

IntelliJ에 이런 기능이 있었구나. 😲

실행된 API 애플리케이션에 테스트 요청을 보내고 DB에 접속해서 데이터를 관리하고 Redis에 저장된 데이터를 보는 작업을 IntelliJ에서 모두 한번에 진행합니다.

이 강의의 핵심 강점 (2)

업데이트가 실시간으로 반영되는 Notion 강의 자료를 제공합니다.

실습을 잘 따라오실 수 있도록 프로젝트 코드를 GitHub 링크로 제공합니다.

이런 내용을 배워요

동시성 문제의 근본적인 이유와 해결 방법

동시성 문제의 근본적인 이유를 알고 계시나요?

근본적인 원인부터 이해하고 해결 방법을 배우면 더 정확하게 문제를 이해하고 해결할 수 있습니다.

강의에서는 동시성 문제의 개념부터 잡고 시작합니다.

분산 환경에서 실습하는 다양한 해결 방법

동시성 문제는 단일 서버 환경과 분산 서버 환경에서 서로 다르게 발생합니다. 같은 해결 방법을 적용하더라도 환경에 따라 문제가 해결되지 않을 수 있습니다.

어떤 환경에서 어떻게 사용해야할 지 알고있어야 실무에 바로 적용할 수 있습니다.

2개의 애플리케이션을 동시에 실행하여 분산 환경을 구성합니다.

이 강의를 만든 사람

  • (현) 안랩 백엔드 개발자


궁금한 점이 있나요?

Q. 동시성 문제라는 주제가 너무 어렵게 느껴져요. 🫥

동시성 문제가 어렵게 느껴지는 이유는 개념이 복잡해서가 아니라, 실무에서 직접 경험하기 전까지 감이 잡히지 않기 때문입니다.
강의에서는 핵심 개념만 추려 실습 중심으로 설명합니다.
코드로 바로 확인할 수 있어 빠르게 이해하실 수 있습니다.

Q. 스프링 부트나 JPA에 대해서 아직 잘 모르는 상태입니다. 🤦‍♀️

스프링 부트와 JPA를 깊이 알 필요는 없습니다.
동시성 개념은 프레임워크와 별개로 이해할 수 있습니다.
강의에서는 필요한 부분만 최소한으로 설명하고 바로 실습에 적용합니다.
실습에서 사용한 프로젝트 코드도 깃허브로 제공하고 있으니 바로 따라오실 수 있습니다.

Q. 동시성 문제가 실무에서 자주 발생하는 건가요❓

네, 실제 서비스에서는 자주 발생합니다.
트래픽이 많거나 공유 자원 접근이 있는 구조에서는 거의 필연적으로 나타납니다.
특히 재고 감소, 결제, 예약처럼 상태 변경 로직에서 빈번합니다.
그래서 초기 설계 단계부터 동시성 제어 전략을 고려하는 것이 실무에서 권장됩니다.

수강 전 참고 사항

강사의 실습 환경

  • 운영 체제 및 버전: Windows 11

  • 사용 도구: IntelliJ IDEA Ultimate Edition, Docker, k6, Spring Boot, DBMS/RDBMS, Redis


선수 지식 및 유의사항

  • Spring Boot, JPA, RDBMS

  • 이 강의는 동시성 문제를 실습하기 위하여 순간적으로 많은 요청을 만드는 환경에서 실습하고 있지만 대량의 요청을 문제없이 처리하는 방법에 대한 강의는 아닙니다.

  • 대량의 요청을 처리하는 방법과 동시성 문제를 처리하는 방법은 서로 다른 주제라는 점을 알려드립니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 계속해서 헷갈리는 동시성 문제와 해결 방법이 고민인 개발자

  • 동시성 문제와 관련된 트랜잭션을 이해하고 싶은 개발자

  • 낙관적 락, 비관적 락, 분산 락의 차이를 이해하고 적용하고 싶은 개발자

선수 지식,
필요할까요?

  • 간단한 API 백엔드 서버 개발 경험 (Spring Boot)

  • 데이터 베이스(RDBMS, NoSQL)에 대한 기초 지식

안녕하세요
입니다.

41

수강생

4

수강평

5.0

강의 평점

1

강의

(현) 안랩 백엔드 개발자

커리큘럼

전체

25개 ∙ (3시간 54분)

강의 게시일: 
마지막 업데이트일: 

수강평

전체

4개

5.0

4개의 수강평

  • 이달팽님의 프로필 이미지
    이달팽

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    동시성 문제를 이론적으로만 알고 있었는데 강사님 따라 race condition을 코드 레벨에서 직접 재현하고 해결해보면서 감을 확실히 익힐 수 있었던 것 같습니다. 공유DB, 분산환경 등 다양한 환경을 가정하고 실습하는 것도 도움이 많이 됐어요. ㅎㅎ 저처럼 동시성 문제에 입문하는 분들에게 좋은 강의인 것 같습니다. 감사했습니다~

    • 조요피
      지식공유자

      이론으로만 알던 동시성 문제를 직접 코드로 재현하고 해결하시면서 확실히 감을 잡으셨다는 피드백이 저에겐 너무 중요한 부분인 것 같습니다. 실제로 강의를 기획할 때 이 부분이 가장 큰 목표였거든요. 공유 DB나 분산 환경 같은 실무적인 환경을 가정하고 연습하신 것이 실무에서 많은 도움이 되셨으면 좋겠습니다. 동시성 입문자분들에게 좋은 강의가 될 것 같다는 말씀도 저에게 큰 힘이 됩니다. 좋은 리뷰 남겨주셔서 감사합니다! 🙇

  • 하나의묵님의 프로필 이미지
    하나의묵

    수강평 1

    평균 평점 5.0

    수정됨

    5

    100% 수강 후 작성

    동시성 문제를 항상 어렵게만 느껴왔는데, 이 강의에서 개념을 차근차근 풀어 주셔서 드디어 감이 잡힌 느낌입니다. 이론만 다루는 것이 아니라 직접 실습 환경을 구성해 보면서 단일 서버와 분산 서버에서 동시성 문제가 어떻게 다르게 나타나는지 자연스럽게 이해할 수 있었습니다. 또 동시성 이슈가 실제로 어떤 과정에서 발생하는지 직접 확인할 수 있는 구조라, 단순히 개념을 암기하는 것이 아니라 왜 이런 문제가 생기는지를 체감할 수 있었던 점이 특히 좋았고, 실무에서 바로 활용할 수 있을 내용이 많아 도움이 많이 됐습니다. 낙관적 락·비관적 락·분산 락 등 개념이 헷갈리거나, 동시성 문제를 어떻게 해결해야 할지 고민되는 분들께 추천할 만한 강의라고 생각합니다.

    • 조요피
      지식공유자

      정성 가득한 수강평 남겨주셔서 정말 감사합니다. 사실 동시성이라는 게 눈에 보이지 않아서 막상 이해하려면 어렵게 느껴지는 주제인데 강의를 통해 감을 잡으셨다니 강사로서 뿌듯하고, 제가 의도했던 '이론보다 실습으로 직접 체감하기'를 잘 알아봐 주신 것 같아서 기분이 좋습니다. 완강하시느라 고생 많으셨습니다. 감사합니다! 🙇‍♀️

  • ADK123님의 프로필 이미지
    ADK123

    수강평 327

    평균 평점 5.0

    5

    100% 수강 후 작성

    • 스프링님의 프로필 이미지
      스프링

      수강평 111

      평균 평점 4.9

      5

      20% 수강 후 작성

      ₩49,500

      비슷한 강의

      같은 분야의 다른 강의를 만나보세요!