기타
-
아파치 카프카 애플래케이션 프로그래밍 with 자바기타/내용 2023. 7. 20. 23:22
기존 1대 1 데이터 파이프라인은 장애가 전파되지만 카프카로는 끊을 수 있다. 데이터 포맷에는 제한이 거의 없다. 상용환경은 최소 3대의 브로커를 운영한다 왜 매직넘버3을 사용할까 1대 : 장애가 나면 서비스의 장애로 이어진다 2대 : 한 대가 죽을 경우 다른 한대가 리더가 되지만 복제 시간차로 인해 메시지 유실이 있을 수 있다 리플리카 2 설정 3대 : 2대가 복제가 돼야 메시지를 안정적으로 처리했다고 판단한다 2대 : 2가 설정 값이기 때문에 한 대가 죽으면 브로커는 메시지를 받지 않아서 서비스 장애 카프카는 데이터를 보낼 때와 소비할 때 모두 배치 처리하기에 효율적이다. 브로커를 늘리거나 줄임으로써 효율적으로 관리할 수 있다. 카프카는 메시지를 파일단위로 관리하는데 느릴 거 같지만 운영체제 레벨에서..
-
카프카, 데이터 플랫폼의 최강자기타/내용 2023. 6. 30. 00:35
변화의 방향은 느슨한 결합 이벤트를 카프카에 저장해 필요한 조직에게 전달 전달의 확인이 복잡한 것이 단점 pub/sub의 교환기의 부하, 정합성관리 등으로 메시징 시스템의 성능이 좋지 못했으나 카프카는 책임을 프로듀서와 컨슈머에게 할당함으로써 고성능이 될 수 있었음 하나의 토픽에 여러 프로듀서 컨슈머, 컨슈머와 프로듀서 역시 여러 토픽에 발행 및 소비가 가능함 디스크에 메시지를 저장해 안정성을 높일 수 있음 주키퍼는 카프카의 메타정보 및 상태관리, 분산 애플리케이션을 위한 코디네이터 클라이언트의 정보를 주키퍼는 지노드라는 key value에 저장함. 모두 메모리에 저장하고 스냅샷과 트랜젝션 로그를 남김. 앙상블은 과반수 방식으로 안정성을 유지함 분산시스템은 같은 기능의 서버가 여러대있는 것이며 높은 성능..
-
실용주의 프로그래머기타/내용 2023. 6. 20. 00:31
특정 기술에 메이지 말자. 각자 맞는 환경이 있다. 소프트웨어를 잘 만드는 것에 관심이 없다면 이 일을 하는 이유가 없다. 비판적 사고, 현실주의자 당신이 조직을 바꿀 수 있다. 자신의 무지와 실수를 인정하라 비난하거나 변명하지 마라. 대안을 제시해라. 잠깐 내면의 소리를 들어라. 멍청하게 들리나? 뭐라 말할지 빤히 보이는데 굳이 확인하지 마라 깨진 창문을 내버려 두지 마라. 조악한 설계, 형편없는 경영상의 결정이 깨진 창문이다. 깨진 창문을 두세 개 고르고 동료들과 문제해결을 해봐라 개구리가 되지 말라. 주변을 살펴라. 방안의 전등은 몇 개인가? 사용자에게는 오늘의 소프트웨어는 내일의 완벽한 소프트웨어보다 낫다. 지식에 대한 투자가 최고의 이윤을 낸다 주기적으로 투자해라. 기술 서적을 한 달에 한 권 ..
-
적정 소프트웨어 아키텍처기타/내용 2023. 3. 16. 22:05
모델 재사용 모델을 모두 재사용할 수 없다. 모델은 세부 사항을 생략하며 구축하기에 재사용이 불가능하다. 기차 운행 시간 모델은 기차의 감가상을 계산하는 모델로 재사용할 수 없다. 일반적으로 한 목적으로 만들어진 모델은 다른 목적으로 동작하지 않는다 142p. 프로그래밍 언어로는 큰 아키텍처 요소를 설명하기 어렵다 런타임을 코드로만 보고 이해하기 어렵다. 아키텍쳐 제약조건, 스타일은 코드에서 보기 어렵다. 232-233 코드에서 설계의 의도를 표현하는 패턴 중 하나는 실체화(인스턴스 생성)이다. 컴포넌트라는 이름을 붙여서 대괄호를 만들 수있다. 마커의 역할 컴포넌트끼리의 소통은 커넥터를 통해서만. 236 메소드의 이름에 너무 많은 기능이 있다면 다루기 어렵다. 불변해야하는 규칙이 있다면 코드에 강제해라...
-
-
밑바닥부터 만드는 컴퓨팅 시스템기타/내용 2022. 9. 24. 20:36
1. 디지털 기기는 정보를 저장하고 처리하도록 설계된 칩들을 탑재한다. 칩 = 논리 게이트의 모음. ex. 불 게이트 게이트 = 불 함수를 구현한 물리적 장치. 트랜지스터의 모음 트랜지스터 = 작은 스위치 장치 하드웨어 설계자들은 이러한 게이트들을 조합하여 조합 복잡한 조합 게이트를 만든다. = 논리설계 2. 불 연산 ALU = 컴퓨터의 모든 산술 및 논리 연산이 이루어지는 핵심 칩. 2진 덧셈은 비트 + 비트 + 자리올림 비트이다. 부호가 있는 2진수는 다른 쪽을 음수로 표현하면 된다. 부호 있는 숫자를 표현하는 방식 중 요즘 날 대부분의 컴퓨터들이 사용하는 방법은 2의 보수이다. n개의 숫자로 된 2진수 x가 있을 때 x의 보수는 2의 n 제곱 - x이다. 더 쉬운 방식은 모든 비트를 뒤집고 1을 더..
-
TCP/IP 쉽게, 더 쉽게기타/내용 2022. 4. 23. 14:41
TCP/IP 쉽게, 더 쉽게 - 교보문고 명쾌한 설명과 풍부한 그림으로 배우는 | 네트워크 학습자를 위한 최적의, 최고의 입문서!컴퓨터 네트워크에는 다양한 프로그램과 데이터, 장비가 어울려 ‘TCP/IP’라는 기술 위에서 상호작용하 www.kyobobook.co.kr 네트워크를 좀 더 공부해 봤다. 애플리케이션 계층 (HTTP) 트렌스 포트 계층 (TCP/UDP) 인터넷 계층 (IP) 네트워크 인터페이스 계층 (이더넷) 이렇게 4계층이 네트워크를 나뉠 때 사용된다. 각각 보자면 애플리케이션 계층에서 사용자의 행동에 의해 브라우저가 Http 메시지를 만들고 트랜스 포트 계층에서 해당 데이터 위에 TCP헤더를 씌운다. (tcp로 설명하겠음) Tcp 헤더에는 수신, 송신지의 포트 번호와 윈도 사이즈(데이터 전..
-
DDD start!기타/내용 2021. 4. 25. 23:51
평소에 repository와 service를 쓰면서 왜 쓸까라는 궁금증이 있었는데 영속성을 처리하는 기능은 리포지토리에서, 엔티티에 속하지 않는 도메인 로직은 서비스에서. 대부분 도메인 로직으로 처리를 하지만 여러 엔티티를 사용할 때나 복잡한 계산 로직은 서비스에서 한다는 것을 명확하게 알았다. 예외 같은 경우는 빈 값, null 값 예외는 컨트롤러나 도메인에서, 비즈니스 예외는 서비스 계층에서 이뤄져야 하는 것도 알게 되었다. 이 처럼 기본적은 DDD콘셉트와 여러 유용한 정보가 많아서 좋은 책이다.