Skip to content
woo jin edited this page Nov 15, 2025 · 4 revisions

📚 CAS 연산

  • 락은 특정 자원을 보호하기 위해 쓰레드가 해당 자원에 접근하는 것을 제한한다.
  • 락이 걸려 있는 동안 다른 쓰레드들은 해당 자원에 접근할 수 없고, 락이 해제될 때까지 대기해야 한다.
  • 또한 락 기반 접근에서는 락을 획득하고 해제하는 데 시간이 소요된다.
  • 락을 사용하는 방식은 직관적이나 상대적으로 무거운 방식이라는 것을 알고 있어야 한다.
1. 락이 있는가 확인한다.
2. 락을 획득하고 임계 영역에 들어간다.
3. 작업을 수행한다.
4. 락을 반납한다.
  • 예를 들어, 10,000번의 연산이 있다면 10,000번의 연산 모두 같은 과정을 반복한다.
  • 이런 문제를 해결하기 위해 락을 걸지 않고 원자적이 연산을 수행할 수 있는 방법이 있는데, 이것을 CAS(Compare-And-Swap, Compare-And-Set) 연산이라고 한다.
  • 이 방법은 락을 사용하지 않기 때문에 락 프리(Rock-Free) 알고리즘 기법이라고 한다. 참고로 CAS 연산은 락을 완전히 대체하는 것은 아니고 작은 단위의 일부 영역에 적용할 수 있다.
  • 기본은 락을 사용하고 특별한 경우에 CAS를 적용할 수 있다고 생각하면 된다.

📚 CAS 락

📖 Java

📖 Kotlin

📖 Coroutine

📖 Spring

📖 Spring Security

📖 Spring Batch

📖 Reactive Programming

📖 Database

📖 MySQL

📖 Redis

📖 JPA

📖 QueryDsl

📖 MSA

📖 Kafka

📖 Apache Flink

  • [Apache Flink - Apache Flink Architecture]
  • [Apache Flink - Stream Processing]
  • [Apache Flink - Data Stream API & Window]
  • [Apache Flink - State Management]

📖 HTTP

📖 AWS

📖 Docker

📖 Kubernetes

📖 CI/CD

📖 Nginx

📖 Monitoring🥈

  • [Monitoring - Log Concept]
  • [Monitoring - Log Level & Filter]
  • [Monitoring - Logback]
  • [Monitoring - Log Collection with ELK Stack]
  • [Monitoring - Log Monitoring with Kibana]
  • [Monitoring - Building a Monitoring System with Spring Boot Actuator]
  • [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]

📖 Test

📖 Effective Java 3/E

📖 Kotlin Academy - Effective Kotlin

📖 Kotlin Academy - 핵심편

📖 스프링으로 시작하는 리액티브 프로그래밍

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

📖 Clean Code

📖 리팩토링 2판

📖 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

📖 GraphQL

Clone this wiki locally