개요 여러 프로세스 혹은 스레드가 동시에 같은 데이터를 조작하는 작업을 할 때 타이밍이나 접근 순서에 따라 그 결과 값이 들쑥날쑥 달라질 수 있다. 이러한 상황을 경쟁 조건 (Race Condition) 이라고 한다. 이러한 경쟁 조건에서 데이터 일관성을 지키는 방법으로 여러 동기화 (Synchronization) 작업을 제공한다. 경쟁 조건 (Race Condition) 여러 프로세스나 스레드가 동시에 공유되는 데이터 영역을 접근하려고 할 때 접근의 타이밍이나 순서에 따라 결과가 달라질 수 있는 상황을 의미한다. 동기화 (Synchronization) 경쟁조건 상황에 데이터 일관성을 지킬 수 있도록 제공하는 방법. 동기화 (Synchronization) 동기화 과정에 경쟁조건이 발생할 수 있는 동기화가..
🤔 필요성 마이크로 서비스 아키텍처 ( MSA )에서 여러 개로 나누어져 있는 서비스들 중 하나에 문제가 생기게 되면 서로 네트워크 등으로 연결되어 있는 다양한 서비스 들에 그 문제가 전파될 수 있다. 예로는 문제가 생긴 마이크로 서비스로 요청을 보낸 서비스가 결과 값을 기다리는 블로킹 상태로 무한정 기다리다 스레드가 말라버릴 수 있다. 벌크헤드는 이와 같은 상황에 해결책이 되어준다. 🎯 벌크헤드 ( Bulkhead ) 패턴 🔥 선박 혹은 선체의 격벽(Bulkhead) 에서 유래된 이름이다. 선박은 여러 데크로 나누고 이를 완전히 격리하여 분리한다. 이때 격리하는 벽을 격벽 이라 한다. 선박이 각 데크를 분리하는 이유는 선박의 외부에 외상이 생겼을 때 각 데크를 완전히 격리하여 문제가 배 전체에 전파되지..
브릿지 패턴 (Bridge Pattern) 💡 추상적인 것과 구체적인 것을 분리하고 연결해 각각이 독립적으로 다양성을 가질 수 있도록 하는 디자인 패턴이다. 브릿지 패턴은 추상체와 구현체를 수직이 아닌 수평으로 연결하는 방법이다. 🤔 필요성 👇 위에서 아래로 확장하는 상속의 경우 구현과 추상적인 개념을 강하게 종속시키기 때문에 추상체와 분리해서 수정 및 확장이 어렵고, 재사용이 힘들다. 즉, 수직으로 관계를 맺고 있는 경우 상위 개념에 종속되어 그 깊이가 깊어질수록 이식성이 떨어진다.(재활용 ❌) 브릿지 (가교) 패턴은 이러한 문제 해결을 위해 등장하였다. 🎯 장점 추상체와 구현체의 느슨한 결합(Loose Coupling)을 만들어 컴파일 시점이 아닌 런타임 시점에 결정할 수 있도록 할 수 있다. 느슨한..
Callback Success interface SuccessCallback { void onSuccess(String result); } Exception interface ExceptionCallback { void onError(Throwable throwable); } FutureTask public static class CallbackFutureTask extends FutureTask { SuccessCallback successCallback; ExceptionCallback exceptionCallback; public CallbackFutureTask(Callable callable, SuccessCallback successCallback, ExceptionCallback ec) { ..
- Total
- Today
- Yesterday
- OOP
- 메모리 파편화
- pass by reference
- 외부 단편화
- 클린 아키텍처
- Object Pool
- 메모리 단편화
- Memory Fragmentation
- Sticky Session
- 내부 단편화
- 수평 분할
- multimap
- 동적 디스패치
- java
- 뾰족함
- pool
- 수직 분할
- 객체 풀
- Session
- 정적 타입 언어
- 세션 불일치
- 동적 타입 언어
- ATDD
- RestAssured
- 육각형 아키텍처
- pass by value
- Clean Architecture
- 컴포짓 패턴
- 장애 해결기
- SpringBoot 2.2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |