[Loop:PAK] 4주차 WIL

2025. 11. 17. 18:40·외부활동/루퍼스 2기

🧠 이번 주에 새로 배운 것

  • CAS, AtomicXxxx, ConcurrentHashMap 등 코드 레벨에서 동시성을 제어하는 Lock-Free한 방식을 알게 되었습니다.
  • Race Condition, Lost Update, Deadlock에 대한 개념을 확실히 다질 수 있게 되었습니다.
  • 낙관적 락 선택시 version 대신 update 시간으로 적용하면 이슈가 생기는 이유를 알았습니다. 중요한 건 각 버전마다 고유한 값을 보장하는 것임을요.
  • mysql 유니크 제약 조건에서 동시 삽입이 발생시 DeadLock이 발생할 수 있다는 사실을 알게 되었습니다. 

 

💭 이런 고민이 있었어요

  • Lock-Free한 방식은 어떤 방식이 있고, 사용가능한 자원에서 최선의 방법이 어떤 것이 있을까 고민했습니다.
  • 따닥 이슈 방어시 중복 요청을 멱등하게 가져가는 방법이 궁금했습니다. 주문키를 어디서 생성해서 관리해야 하는지 고민 포인트였습니다.
  • MVCC가 동시성 제어와 무슨 관계가 있는지 고민하였습니다. MVCC는 읽기 성능을 높이기 위한 방식이며, 동시성 제어는 별도임을 후에 깨달았습니다.

 

💡 앞으로 실무에 써먹을 수 있을 것 같은 포인트

  • 동시성 이슈가 발생할 가능성이 높은 부분과, 해소를 위한 상황에 맞는 적절한 방식을 선택할 수 있는 지식이 생겼습니다.
  • CountDownLatch, CompletableFuture를 사용하여 동시성 테스트를 적용할 수 있을 것 같습니다.

 

🤔 아쉬웠던 점 & 다음 주에 해보고 싶은 것

  • 시간이 부족하여 주문 정보를 보관하는 Payment 객체를 분리하지 못했습니다.
  • 쿠폰 충전시 동시성 이슈를 고려하지 못했습니다. 외부 결제 API를 연동하는 점도 고려하여 추후 구현예정입니다.
저작자표시 (새창열림)

'외부활동 > 루퍼스 2기' 카테고리의 다른 글

[Loop:PAK] 5주차 WIL  (0) 2025.11.25
[루퍼스/루프백 2기] 조회 성능을 높이는 방법을 설명할 수 있나요?  (0) 2025.11.22
[루퍼스/루프백 2기] 이커머스 동시성 제어 및 낙관적 락과 비관적 락 선택 기준  (0) 2025.11.17
[Loop:PAK] 3주차 WIL  (0) 2025.11.14
[루퍼스/루프백 2기] 도메인을 보호하고 객체간 협력을 지키는 구현 방법  (0) 2025.11.12
'외부활동/루퍼스 2기' 카테고리의 다른 글
  • [Loop:PAK] 5주차 WIL
  • [루퍼스/루프백 2기] 조회 성능을 높이는 방법을 설명할 수 있나요?
  • [루퍼스/루프백 2기] 이커머스 동시성 제어 및 낙관적 락과 비관적 락 선택 기준
  • [Loop:PAK] 3주차 WIL
소프
소프
  • 소프
    기회는 찬스
    소프
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Language (20)
        • Java (19)
        • Design Pattern (1)
      • Tech (27)
        • Spring (19)
        • JPA (3)
        • QueryDSL (1)
        • Gradle (4)
      • 개발 생각 (1)
      • IT Book (0)
        • 자바_스프링 개발자를 위한 실용주의 프로그래밍 (0)
      • Database (4)
        • Mysql (4)
        • Redis (0)
      • 네트워크 (1)
      • 운영체제 (2)
      • IDE (12)
        • Intellij (9)
        • vscode (2)
        • datagrip (1)
      • 인프라 (11)
        • Docker (2)
        • Jenkins (7)
        • Github Actions (1)
        • GCP (1)
      • 형상관리 (2)
        • gitlab (2)
        • git (0)
      • 외부활동 (44)
        • CS 면접 끝장내기 - 데이터베이스 1기 (5)
        • CS 면접 끝장내기 - 컴퓨터 네트워크 2기 (5)
        • CS 면접 끝장내기 - 자바 2기 (0)
        • TDD, 클린 코드 with Java 17기 (7)
        • ATDD, 클린 코드 with Spring 8기 (6)
        • 루퍼스 2기 (21)
      • 프로젝트 (0)
      • 회고 (6)
      • 기타 (1)
        • 제미니의 개발 실무 (0)
  • 블로그 메뉴

    • 홈
    • Github
    • LinkedIn
    • 방명록
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.6
소프
[Loop:PAK] 4주차 WIL
상단으로

티스토리툴바