최근에 RabbitMQ를 이용한 프로젝트를 경험했었는데 Kafka와 RabbitMQ를 비교하며 개념을 정리해보려고 합니다. Kafka와 RabbitMQ를 비교하기 전에 메시지 큐에 대해서 간단히 정리해보겠습니다. _메시지 큐의 장점 비동기 (Asynchronous) : Queue에 넣기 때문에 나중에 처리 가능 비동조 (Decoupling) : 애플리케이션과 분리 탄력성 (Resilience) : 일부가 실패 시 전체에 영향을 받지 않음 과잉 (Redundancy) : 실패할 경우 재실행 가능 보증 (Guarantees) : 작업이 처리된 걸 확인 가능 확장성 (Scalable) : 다수의 프로세스들이 큐에 메시지를 보낼 수 있음 _메시지 큐 사용처 다른 곳의 API로 부터 데이터 송수신이 가능 다양한 ..
_트랜잭션이 보장해야 하는 ACID Atomicity(원자성) : 한 트랜잭션 내에서 실행한 작업들은 하나의 작업으로 간주. 모두 성공 또는 실패되어야 한다. Consistency(일관성) : 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지 Isolation(격리성) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리 Durability(지속성) : 트랜잭션을 성공적으로 마치면 그 결과가 항상 저장되어야 한다. 격리성을 완벽히 보장하기 위해 모든 트랜잭션을 순차적으로 실행한다면 동시성 처리 이슈가 발생한다. 반대로 동시성을 높이기 위해 여러 트랜잭션을 병렬처리하게 되면 데이터의 무결성이 깨질 수 있다. _격리성 관련 문제점 1) Dirty Read 한 트랜잭션(T1)이 데이터에 접근하여..
_NoSQL이란 Not Only SQL의 약자 기존 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 DB 고정된 스키마가 없고, 조인이 힘듦 빅데이터, 분산 환경에서 대용량의 데이터를 처리하기 위해 개발 Horizontal Scalability(수평 확장), High Availability(고가용성) RDBMS의 한계 대용량의 데이터가 계속 들어온다면, 스키마에 맞춰 변경해서 넣기 위해 긴 시간의 down time이 발생 _NoSQL 특징 거대한 Map으로서 key-value 형식을 지원 RDBMS는 Foreign Key, Join 등으로 관계를 정의하지만, NoSQL은 관계를 정의하지않음 대용량 데이터를 저장할 수 있음 읽기/쓰기의 성능이 RDBMS보다 빠름 _CAP 이론 분산형 구조는 일관성..
뭔가 중요한 일이 일어났을 때 객체들한테 새소식을 알려줄 수 있는 패턴이 있다! 옵저버 패턴!! 옵저버 패턴한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고,자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다. 쉽게 설명하면! 우리가 신문이나 잡지를 구독하면 매달 신문과 잡지에 대한 새로운 내용을 알림으로 받게되는데이 때 잡지사가 subject! 구독하는 우리는 observer 입니다- Subject객체에서 observer로 등록하거나 observer목록에서 탈퇴하고 싶을 때는 이 인터페이스에 있는 메소드를 사용 ConcreteSubjectnotifyObservers() 메소드를 통해 observer들에게 상태가 바뀔 때마다 연락을 한다 ObserverSubject의 상태가..
- Total
- Today
- Yesterday
- 알고리즘
- LinearLayout
- Android
- C
- 안드로이드
- 운영체제
- 퀵정렬
- HTTP
- 백준
- C++
- 스프링부트
- handshake
- layout
- 스프링
- frameLayout
- 이진탐색트리
- ConstraintLayout
- RelativeLayout
- BOJ
- 백준알고리즘
- OS
- debug
- DATABASE
- adapter
- windows
- 정렬 알고리즘
- 네트워크
- listview
- 윈도우
- WinDbg
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |