ANYTHING
-
데이터 일관성과 메시징: Outbox 패턴과 대안들ANYTHING 2024. 11. 28. 09:41
현대 소프트웨어 시스템에서는 데이터베이스와 메시지 브로커(Kafka, RabbitMQ 등)를 연동하여 데이터를 저장하고 이벤트를 전달하는 작업이 흔합니다. 이 과정에서 가장 큰 과제는 데이터 일관성을 보장하는 것입니다. 데이터베이스에 작업이 성공적으로 기록되었지만 메시지가 유실되거나 중복 전송되는 경우, 시스템의 신뢰성이 떨어질 수 있습니다.이 글에서는 데이터베이스와 메시지 브로커 간의 일관성을 보장하기 위한 대표적인 아키텍처인 Outbox 패턴과 함께, 이를 대체하거나 보완할 수 있는 몇 가지 대안을 살펴봅니다.Outbox 패턴: 데이터 일관성의 기본 솔루션1. Outbox 패턴이란?Outbox 패턴은 데이터베이스와 메시지 브로커 간의 작업을 분리하면서도 일관성을 보장하는 아키텍처입니다. 애플리케이션에..
-
문서자료 작성. 나만 어려운가?ANYTHING 2024. 11. 8. 14:36
배경 및 목적문서를 작성하는 것이 어려움.글을 쓴다는 것에 대해 배운적이 없음.문서를 잘 작성하고 싶음.나만 작성하기 어려운가?문서자료 작성과 관련된 글을 찾다보니, 대부분의 글에서 보이는 문장.대부분의 엔지니어가 코드를 작성하고, 이용하고, 유지 보수하는 업무와 관련한 대표적인 불만이 양질의 문서 자료가 부족하다는 것.현실적으로 대부분의 문서자료는 우리가 스스로 작성해야 함.문서작성이 잘 안되는 이유?문서자료가 중요하다는건 모두가 알지만, 문서자료가 제공하는 이점이 무엇인지 이해를 못하고 있다.문서자료의 작성을 프로그래밍과 별개의 기술로 본다.글쓰기에 자신이 없다.유지보수할 대상이 하나 더 늘어난다.문서자료는 일반적으로 작성자에게 혜택이 돌아가지 않는다.문서자료란?엔지니어가 작업을 끝마치기 위해 작성하..
-
prestoANYTHING 2022. 5. 19. 17:10
Presto란? facebook 에서 대량의 데이터에 대해 대화형 분석을 실행하기 위해 만든 오픈소스 분산 SQL 쿼리 엔진. TB, PB 단위의 데이터를 분산쿼리를 사용하여 분석할 수 있는 툴 Presto 구성 요소 Coordinator Presto 서비스의 중심. Master 역할 1개만 존재. 하는일 Client 로 부터 요청을 받음. SQL 구문 파싱, 쿼리 플래닝 쿼리를 실행할 Worker 노드 조정 Worker 노드의 활동 트래킹 Worker Slave 역할로 여러개 존재 가능 Coordinator 에서 전달받은 테스크를 수행하고, 데이터를 처리함. 테스크 수행 결과는 Worker 에서 바로 Client 로 전달됨. 프레스토의 쿼리 실행 형태 ANSI-SQL 로 작성된 프레스토에서 실행가능한 ..
-
Re:dashANYTHING 2022. 5. 19. 09:59
Re:dash 란? 클라우드 기반 BI 툴 BI(Business Intelligence) - 데이터를 통합/분석하여 의사 결정을 돕는 프로세스 주요 특징 브라우저 기반 사용이 쉬움 : 쿼리 기반이라 러닝 커브가 적음 시각화 및 대시보드 : 드래그 앤 드랍으로 간단하게 데이터를 시각화 할 수 있음 스케줄링 : 원하는 시간에 자동으로 데이터를 업데이트 함 경고 : 데이터가 특정 조건에 걸릴 경우 알람 발생 가능. Re:dash 의 목적 데이터를 시각화하여 데이터를 이해하는데 도움을 주기 위함. Re:dash 와 kibana 비교 키바나 Re:dash 구조의 차이에서 오는 장단점이 명확함. 키바나는 데이터가 많아도 시각화 과정에서 문제가 발생하는 경우가 적음 Re:dash 는 데이터가 많을 경우 메모리 부족으..
-
T머니 데이터 공개를 보면서 느끼는 소회...ANYTHING 2019. 4. 11. 11:22
예전에 SKT 의 서비스중 하나였던 Tcash 백엔드 개발을 할때 였다... 이번에 공개되는 정보를 당시에 볼 수 있었기에... 분석해서 리포트를 제공하는 서비스를 제안했었다. 당시 답변은 SKT 의 허가가 필요하다... SKT 는 T머니와 협의된 부분이 아니라서 안된다 였다.... 늦었지만... 지금이라도 분석해 볼까??? 아... 귀찮은데... ㅎㅎ http://www.bloter.net/archives/336484?fbclid=IwAR35N4cPOw3eIIMMsreUijbBnLkcDaxhcQiUANo58CN17cc0H-A75qwe5Gw
-
소프트웨어 개발과 관련된 유명한 법칙ANYTHING 2019. 2. 28. 10:48
들어가며 소프트웨어 개발을 하면서 발생하는 다양한 상황에 맞는 법칙을 찾아 봤습니다. 머피의 법칙 가장 흔하게 사용하는 법칙. 어떤 일이 잘못되어 가는 상황에 대해 이야기할 때 서양에서 흔히 사용되는 말입니다. 즉, 하려는 일이 항상 원하지 않는 방향으로만 진행되는 현상이 발생할 때 주로 사용합니다. 이 법칙을 회피 하려면, 방어 프로그래밍, 버전관리, TDD 등을 활용해야 합니다. 브룩스의 법칙 프레더릭 브룩스가 자신의 1975년 저서 《맨먼스 미신》 (The Mythical Man-Month)에서 "지체되는 소프트웨어 개발 프로젝트에 인력을 더하는 것은 개발을 늦출 뿐이다"라고 주장한 법칙입니다. 이 법칙은 호프스 태터의 법칙에 의해 회피 할 수 없습니다. 호프스 태터의 법칙 더글라스 호프스 태터가 ..
-
일하지 않는 시간의 힘ANYTHING 2019. 1. 25. 13:17
우리는 쉬어야 한다. 과속의 시대에 살고 있다. 너무 바쁘게 살고 있다. 거대한 목표와 성취를 위해 달려가고 있다. 미국 스트레스 연구소의 발표 스트레스가 초래하는 비용은 연간 3,000억 달러에 달한다. 너무 많이 연결되어 있다. 디지털 기기는 우리를 계속 달리게 만드는 요소다. 생산성을 높여주고 우리의 생활을 개선하지만 단점도 많다. 성인들은 미디어를 이용하는 데 하루 11시간을 쓴다. 속도를 늦춰야 한다. 시간이 부족한 문제에 대한 답은 일주일에 한 번 속도를 늦추는 것이다. 의식을 치르듯 정기적으로 휴식을 취해야 한다. 존슨앤존슨, 골드만삭스, 제이피모건 등이 이 프로그램에 참여하고 있다. 쉬어야 하는이유 일하지 않는 시간이 필요하다. 인간은 일과 휴식을 반복적으로 했다. 휴일은 오히려 정반대의 ..