Event Grid와 CloudEvents 스키마Event Grid 스키마: Azure 고유 포맷. Event Grid에서 기본 제공되는 이벤트 형식.CloudEvents 스키마: CNCF 표준 v1.0 포맷. 공급자 중립, 이식성 높은 표준. 주요 차이표준/이식성Event Grid: Azure 전용 스키마.CloudEvents: 표준 스키마. 타 플랫폼 간 이식/연계 용이.페이로드 형태Event Grid: HTTP 전송 시 이벤트 배열(JSON array)로 전달(단건도 배열). content-type은 일반적으로 application/json.CloudEvents:Structured mode: 단일 이벤트 JSON 객체, content-type은 application/cloudevents+json.B..
전체 글
github: https://github.com/belljun3395 email: belljun3395@gmail.comSpring Cloud Function은 다음과 같은 목표를 가진 프로젝트 있다.비즈니스 로직을 함수(Function)를 통해 구현하도록 장려한다.비즈니스 로직의 개발 라이프사이클을 특정 런타임 대상과 분리하여, 동일한 코드가 웹 엔드포인트, 스트림 프로세서, 태스크 등 다양한 환경에서 실행될 수 있도록 한다.여러 서버리스 제공업체에 걸쳐 일관된 프로그래밍 모델을 지원하며, 독립 실행형(로컬 또는 PaaS)으로도 실행할 수 있다.서버리스 제공업체 환경에서 Spring Boot의 핵심 기능(자동 구성, 의존성 주입, 메트릭 등)을 활성화한다.이를 통해 모든 전송 세부 사항과 인프라를 추상화하여, 개발자가 익숙한 도구와 프로세스를 유지한 채 비즈니스 로직에만 집중할 수 있도록 돕는다.함수 등록 흐름Spri..
이슈 3122이슈 설명: 여러 서버에서 여러 컨슈머를 사용할 때, 컨슈머 그룹 내의 메시지들이 서버 간에 균등하게 분배되지 않습니다.기하는 동작: 여러 서버에서 실행되는 여러 컨슈머에 걸쳐 메시지가 균등하게 분배되도록 설정할 수 있어야 합니다.예를 들면 다음과 같은 방법이 있을 수 있습니다.각 스레드가 자신의 인덱스 값을 consumerpriority로 설정할 수 있다면, RabbitMQ는 상위 우선순위의 스레드가 실제로 실행 중일 때만 하위 우선순위 스레드에 메시지를 전달할 것입니다.혹은 부하 상태에 따라 동적으로 컨슈머를 생성하는 방법도 있겠습니다. 하지만 이 방법은 스케일 다운(축소) 시 제어하기가 더 어렵습니다.또는 concurrency를 1로 설정한 N개의 바인딩을 수동으로 생성하고, 모두 동일..
레지스터CPU에 레지스터가 필요한 이유가 무엇일까? 속도 때문이다. CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도의 대략 100분의 1 정도이므로, CPU에 레지스터가 없어 전적으로 메모리에 의존한다면 계산 속도는 지금보다 매우 느려지게 된다. 프로세스가 생성되면 코드와 코드에서 사용하는 데이터는 메모리에 적재되며, 기계 명령어를 실행할 때 메모리 데이터를 CPU가 사용할 레지스터로 옮겨야 한다. 사실 레지스터와 메모리는 본질적으로 차이가 없으며, 둘 다 정보를 저장하는 데 사용된다. 단지 레지스터의 읽기와 쓰기 속도가 훨씬 빠르고 제조 비용도 훨씬 비싸기 때문에 용량에 한계가 있을 뿐이다. 따라서 어쩔 수 없이 프로세스의 실행 시 정보를 모두 메모리에 저장하고 CPU가 사용할 때만 임시로 ..
블로킹과 논블로킹함수A가 함수B를 호출할 때, 함수B를 호출함과 동시에 운영 체제 함수A가 실행 중인 스레드나 프로세스를 일시 중지시킨다며 함수B에 대한 호출 방식은 블로킹 방식이며, 그렇지 않다면 논블로킹 방식이다. 블로킹의 핵심 문제: 입출력일반적으로 블로킹은 대부분 입출력과 관련이 있다. 프로그램, 스레드 또는 프로세스가 입출력 작업을 할 때는 우리 스레드에서 입출력 과정이 실행되는 동안 CPU 제어권을 다른 스레드에 넘겨 다른 작업을 할 수 있도록 해야 한다. 이후 입출력 작업이 완료되면 다시 CPU 제어권을 우리 스레드 또는 프로세스에 넘겨받아 계속 다음 작업을 실행할 수 있도록 한다. 이 CPU 제어권을 상실했다가 되찾는 시간 동안 스레드나 프로세스는 블로킹되어 일시 중지 된다. 논블로킹과 비..
프로퍼티 테스트란?일반적으로 우리가 작성하는 테스트는 '예제 기반 테스트'입니다. "입력값으로 1과 2를 넣으면 결과값으로 3이 나와야 한다"처럼 특정 예시에 대한 결과만 확인하는 방식입니다. 하지만 이런 방식은 개발자가 미처 생각하지 못한 수많은 잠재적 입력값이나 엣지 케이스를 놓치기 쉽습니다. 프로퍼티 테스트는 이러한 문제를 해결하기 위해 등장했습니다. 개별 예제를 일일이 확인하는 대신, 어떤 입력값이든 항상 참이어야 하는 '속성(Property)' 또는 '규칙'을 정의합니다. 그러면 테스트 프레임워크가 수백, 수천 개의 무작위 데이터를 자동으로 생성하여 그 규칙을 깨뜨리는 예외 케이스를 찾으려고 시도합니다. 이를 통해 우리는 예상치 못한 버그를 발견하고 코드의 안정성을 크게 높일 수 있습니다. 기본..