분류 전체보기 212

[RabbitMQ] 클러스터 구성하기 - Linux

RabbitMQ 클러스터 구축하기 - Linux 1. RabbitMQ 설치 모든 노드에 RabbitMQ, Erlang을 설치합니다. 2. RabbitMQ 서버 구성 각 노드의 RabbitMQ 서버 구성을 위해 해당 노드에 접속합니다. rabbitmq.config 파일을 열고 노드 이름, Erlang Cookie 및 클러스터링 구성을 추가합니다. Docker Images mirero@ADC40-TEST-03:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE rabbitmq 3-management 87d31604e8cf 5 weeks ago 275MB Docker Container 실행 (RabbitMQ 서버 시작) Node 3개 구성합니다. 각 Node는 ho..

[Python] 기본문법 __init__ 과 Self

함수 아래와 같은 포맷으로 함수를 생성한다.def ([]): 예제 def main(): print("Start Main()") func_something(1,2,3) def func_something (a,b="default",c="default2"): // function context return print(f"{a}{b}{c}"); init 생성자와 비슷한 성격을 지님 컨스트럭터라고 불리는 초기화를 위한 함수 객체 생성 및 인스턴스화, 초기화를 할 때 해당 함수에서 진행한다. 반드시, 1번째 파라미터는 self를 지정 클래스를 생성할 때에 초기화할 변수는 2번째 파라미터부터 입력 init의 객체를 다른 함수에서 호출할 때 self를 사용해야한다. 예제 class MyStatus: def __init..

[C#] IEnumerable

IEnumerable IEnumerable 인터페이스는 .NET에서 컬렉션을 나타내는 데 사용되는 인터페이스로, 컬렉션을 반복(iterate)하고 열거할 수 있는 기능을 제공합니다. 컬렉션의 열거를 위해 일반적으로 사용되는 인터페이스입니다. 지연된 실행 (Lazy Execution): IEnumerable은 지연된 실행을 지원합니다. 이는 컬렉션의 요소가 실제로 필요한 순간에만 생성되고 처리되는 것을 의미합니다. 따라서 모든 데이터를 미리 메모리에 로드할 필요가 없으며, 필요한 요소만 처리하여 효율성을 높일 수 있습니다. 메모리 관리 및 성능 최적화: 대용량 데이터셋의 경우, 모든 데이터를 한 번에 메모리에 로드하는 것은 메모리 부족 문제와 성능 저하를 초래할 수 있습니다. IEnumerable을 사용하..

프로그래밍/C# 2023.08.24

[Windows] 파일 16개 이상 한번에 열기

Windows는 한번에 열수있는 파일 개수가 Default 16개 입니다. 예를들어, NotePad 파일을 16개이상을 한번에 열려고 하면 아무런 동작이 일어나지 않습니다. 한번에 열수있는 파일 개수 설정하기 Window + R -> regedit 입력하여 레지스트리 편집기를 엽니다. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer 경로로 이동 새로 생성된 항목 이름을 MultipleInvokePromptMinimum 으로 변경합니다. 항목 수정하여 10진수 설정 -> 30 설정 (한번에 열수 있는 파일 개수) 참고 : https://jay-dream.tistory.com/73

Windows 2023.06.15

[Akka.NET] Stash

Akka.NET - Stash Stash 기능은 행위자 내에서 메시지를 임시로 저장하고 연기하는 메커니즘을 제공합니다. 이를 통해 액터는 아직 처리할 준비가 되지 않은 들어오는 메시지를 일시적으로 따로 보관하고 액터가 적절한 상태에 있을 때 나중에 검색할 수 있습니다. Stash 기능은 메시지 처리 순서나 액터의 동작을 제어해야 하는 시나리오에서 유용합니다. 이 예제에서 MyActor에는 Ready() 및 Processing()의 두 가지 상태가 있습니다. 처음에는 Ready() 상태에서 시작합니다. Ready() 상태에서는 StartProcessing에서 메시지를 즉시 처리하거나, 나중에 처리하기 위해 DelayProcessing에서 메시지를 숨길 수 있습니다. DelayProcessing 메시지가 수..

[Akka.NET] Receive()와 ReceiveAny()

Akka.NET - Receive() Receive() 메서드는 알려진 메시지 유형에 대한 특정 메시지 처리기를 정의하는 데 사용됩니다. 특정 메시지 유형과 일치하는 일련의 case 문을 제공하고 각 사례에 해당하는 작업 또는 동작을 지정합니다. 메시지가 수신되면 Akka.NET은 메시지 유형을 정의된 사례와 일치시키고 적절한 핸들러를 호출합니다. 이 예제에서 액터에는 Receive()를 사용하여 정의된 세 가지 특정 메시지 핸들러가 있습니다. 특정 유형의 메시지가 수신되면 해당 핸들러가 호출됩니다. Receive() 샘플코드 Receive(message => { // Handle string messages }); Receive(message => { // Handle int messages }); R..

Architecture Decision Record (ADR)이란?

https://github.com/joelparkerhenderson/architecture-decision-record 소프트웨어 프로젝트에서는 다양한 아키텍처 결정이 이루어집니다. 이러한 결정들은 소프트웨어 시스템의 동작, 구조, 품질 등에 영향을 미치게 됩니다. 이러한 결정을 문서화하고 추적하기 위해 Architecture Decision Record (ADR)이 사용됩니다. ADR은 소프트웨어 아키텍처 결정에 대한 문서입니다. 각 ADR 문서는 특정 결정에 대한 배경, 이유, 대안, 선택한 결정, 결과 등을 기록합니다. 이를 통해 프로젝트 팀과 이해 관계자들은 아키텍처에 대한 결정을 공유하고, 향후 변경 또는 유지 보수 작업에서 참고 자료로 활용할 수 있습니다. ADR을 작성하는 이유는 다양합니다..

프로그래밍 2023.05.27