강의

멘토링

로드맵

BEST
개발 · 프로그래밍

/

백엔드

재고시스템으로 알아보는 동시성이슈 해결방법

동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다.

(4.8) 수강평 314개

수강생 3,498명

  • 최상용

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

이런 걸 배울 수 있어요

  • 동시성 이슈가 무엇인지 알 수 있게 됩니다.

  • 동시성 이슈를 처리하는 방법들을 알게 됩니다.

동시성 이슈 처리도 자신있게! 
간단한 재고 시스템으로 차근차근 배워보세요.

백엔드 개발자라면 
꼭 알아야 할 동시성 이슈 🚩

동시성 이슈를 아시나요? 백엔드 개발자라면 동시성을 고려한 프로그래밍을 반드시 할 줄 알아야 합니다. 막 프로젝트를 시작할 때 동시성 이슈를 고려하지 않은 채로 개발을 시작하게 되면 데이터 정합성이 중요한 상황에서 여러 가지 문제가 발생할 수 있기 때문입니다.

이 강의에서는 동시성 이슈가 무엇이고, 어떤 방식으로 해결할 수 있는지를 알아봅니다. 간단한 재고 시스템을 직접 만들어보면서 동시성 이슈에 대해 알아보고, 문제를 해결하는 방법에 대해 알아봅니다. 자바(Java)와 스프링(Spring)을 막 뗀 초보 백엔드 개발자 여러분께 도움이 되고자 이번 강의를 제작하게 되었습니다. 함께 알아가볼까요?

이런 분들께 추천합니다 💡

게시판은 만들어보았지만, 실무 백엔드 개발에는 어떤 걸 고려해야 하는지 알고 싶은 분 

재고와 같이 데이터 정합성이 중요한 기능을 어떻게 개발해야 하는지 궁금한 분


3-Step으로 해결하는 
재고 시스템 정합성 문제!

DB랑 실제 상품 재고 숫자가 안 맞아요. 
어떻게 하면 좋을까요?

동시성 문제(Concurrency Issue)

문제 해결 #1
Application Level

Application 레벨에서 문제를 해결합니다.

Synchronized 키워드 사용

문제 해결 #2
Database Lock

데이터베이스가 제공하는 Lock을 이용하여 동시성을 제어해 봅니다. 

  • Pessimistic Lock (비관적 락)
  • Optimistic Lock (낙관적 락)
  • Name Lock (네임 락)

Pessimistic Lock 사용

문제 해결 #3
Redis Distributed Lock

Redis(레디스)의 기능을 활용해 동시성을 제어해 봅니다.

  • 라이브러리 비교
  • Redis Cli를 통한 명령어 실습
  • Lettuce 활용하기
  • Redisson 활용하기

Lettuce, Redission 사용


Q&A를 확인해보세요 💬

Q. 이제 자바(Java)를 다 배웠습니다. 이 강의를 들어도 될까요?

이 강의는 스프링(Spring)을 이용하여 게시판을 만들어보신 분들에게 권장합니다. 스프링으로 게시판을 한 번 만들어보신 후에 들으시는 걸 권장합니다.

Q. 이 강의를 들으면 동시성 이슈를 전부 처리할 수 있게 되나요?

상황마다 처리하는 방법이 다르기 때문에 전부 처리할 수 있지는 않습니다. 다만 동시성 이슈가 무엇이고, 어떤 식으로 해결하는지를 배우기 때문에 상황에 따라 응용하는 방법을 기르실 수 있다고 생각합니다.

Q. Node.js를 사용하여 개발하던 현직자입니다. 이 강의를 들어도 될까요?

스프링에 특화된 기능을 많이 사용하지 않기 때문에 자바를 이해하실 수 있다면 들으셔도 괜찮습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 동시성 이슈가 무엇인지 잘 모르시는 분

  • 동시성 이슈는 무엇인지 알지만 어떻게 해결해야 하는지 모르시는 분

  • Spring을 이용하여 게시판을 한 번이라도 만들어보신 분

선수 지식,
필요할까요?

  • Java

  • Spring

  • Spring Data Jpa

안녕하세요
입니다.

5,569

수강생

431

수강평

295

답변

4.8

강의 평점

3

강의

안녕하세요. 지식공유자 최상용입니다.

많은 오픈소스에 기여한 경험이 있는 현직 백엔드 개발자입니다.

- Spring Data Mongo Contributor
- querydsl Contributor
- grpc-kotlin Contributor
- ksp Contributor
- mybatis Contributor

커리큘럼

전체

18개 ∙ (1시간 8분)

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

수강평

전체

314개

4.8

314개의 수강평

  • kanior님의 프로필 이미지
    kanior

    수강평 1

    평균 평점 3.0

    3

    100% 수강 후 작성

    Trước hết, bản thân lớp học này rất hữu ích. Tuy nhiên, bản thân lớp học không có lời giải thích hay hoặc nhiều nội dung mà đó là lớp học mà tôi phải tra cứu các kỹ thuật và thuật ngữ được sử dụng và nghiên cứu chúng một cách riêng biệt. Trên hết, văn bản quá nhỏ đến mức bạn không thể nhìn thấy nó trừ khi bạn xem nó ở chế độ toàn màn hình, vì vậy tôi nghĩ rằng các khía cạnh cơ bản của bài giảng phát triển còn thiếu. Tóm lại, tôi nghĩ sẽ hơi lãng phí khi trả 20.000 won để xem nó. Tôi nghĩ tôi sẽ hài lòng nếu giá giảm xuống khoảng 10.000 won hoặc nội dung được tăng chi tiết hơn. Một lần nữa, bản thân lớp học này rất hữu ích. Cảm ơn

    • 169developer9973
      지식공유자

      Kim, cảm ơn bạn rất nhiều vì đã xem xét chi tiết. Chúng tôi đã tải lên lại sau khi tăng kích thước phông chữ để phản ánh phản hồi.

  • sunjune18284435님의 프로필 이미지
    sunjune18284435

    수강평 27

    평균 평점 4.7

    5

    100% 수강 후 작성

    Nó chỉ dài một giờ, nhưng nó thực sự mang lại nhiều thông tin khi bạn có thể sử dụng Docker và chạy tất cả các chức năng khác nhau... Và có những phản hồi tốt... Bạn là ai?

    • 169developer9973
      지식공유자

      seonjun Moon, cảm ơn bạn đã đánh giá tuyệt vời!

  • hzeen03012134님의 프로필 이미지
    hzeen03012134

    수강평 7

    평균 평점 5.0

    5

    28% 수강 후 작성

    Toàn bộ bài giảng chỉ kéo dài hơn một giờ nhưng được tổ chức rất tốt!! Lần đầu tiên tôi gặp nó, nó rất khó hiểu vì đây là một chủ đề khó và phức tạp, nhưng tôi đã hiểu rất nhiều sau khi nghe bài giảng này. Tôi mới chỉ nghe nói về đồng bộ hóa và khóa DB, chưa nghe phần Redis, nhưng tôi cũng mong chờ Redis lắm haha!! Nhà phát triển đọc bài đánh giá này, bạn chỉ cần đầu tư 1 giờ, vì vậy hãy lắng nghe!! Tất nhiên là thầy giải thích trong 1 tiếng còn tôi thì không giải trong 1 tiếng.. ㅠㅠ Tuy nhiên, cá nhân tôi rất hài lòng với bài giảng này haha. Ngoài thực tế là văn bản còn nhỏ, tôi thích cách giải thích đơn giản và dễ dàng về cách giải quyết vấn đề tương tranh. Vui lòng giữ bài giảng tiếp theo ngắn gọn và in đậm, đồng thời sử dụng văn bản thật lớn... ^^

    • 169developer9973
      지식공유자

      hjin, cảm ơn bạn đã đánh giá rất dài! Đây là một chủ đề rất khó đối với tôi khi lần đầu tiên tôi gặp nó, vì vậy tôi muốn giải thích nó một cách dễ dàng nhất có thể. Tôi rất tự hào vì bạn đã hiểu được nhiều điều qua bài giảng của tôi. Về phần chữ viết... Tôi sẽ cải thiện nó từ bài giảng tiếp theo.

  • kimty931230634님의 프로필 이미지
    kimty931230634

    수강평 7

    평균 평점 4.7

    5

    50% 수강 후 작성

    Đó là một bài giảng giống như người hái quả anh đào trong thế giới giảng dạy trực tuyến, một bài giảng giống như một gói ăn kiêng chỉ bao gồm những thứ cần thiết mà không loại bỏ lượng mỡ thừa. Đó là thời điểm hữu ích để tìm hiểu về đồng thời một cách nhanh chóng và dễ dàng thông qua các ví dụ đơn giản. Chữ hơi nhỏ... ;ㅅ;

    • 169developer9973
      지식공유자

      Taeyoung Kim, cảm ơn bạn đã đánh giá tuyệt vời :) Tôi muốn cung cấp cho bạn thông tin ngắn gọn nhưng hữu ích nhất có thể! Tôi sẽ tăng dần kích thước phông chữ. Cảm ơn bạn đã tham gia khóa học!

  • dongheekim359님의 프로필 이미지
    dongheekim359

    수강평 50

    평균 평점 5.0

    5

    50% 수강 후 작성

    Bài giảng hay quá. Tôi hy vọng các nhà phát triển khác nghe thấy điều này. Thông tin chuyên sâu sẽ hữu ích trong thực tiễn trong tương lai Xin hãy cho tôi một bài giảng hay Hãy luôn khỏe mạnh và hạnh phúc nhé~

    • 169developer9973
      지식공유자

      Donghee Kim, cảm ơn bạn đã đánh giá tuyệt vời! Kim Dong-hee, hãy luôn khỏe mạnh và hạnh phúc nhé!!

월 ₩83,696

5개월 할부 시

₩19,800

최상용님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

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