강의

멘토링

커뮤니티

NEW
개발 · 프로그래밍

/

백엔드

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

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

6명 이 수강하고 있어요.

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

이런 걸 배울 수 있어요

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

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

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

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

  • 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)에 대한 기초 지식

안녕하세요
입니다.

(현) 안랩 백엔드 개발자

커리큘럼

전체

25개 ∙ (3시간 54분)

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

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

얼리버드 할인 중

₩34,650

30%

₩49,500

비슷한 강의

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