
Spring Bean이란?1. Spring Bean의 개념Spring Bean은 Spring 프레임워크의 IoC(Inversion of Control, 제어의 역전) 컨테이너에 의해 생성, 관리되는 객체입니다. 일반적인 Java 객체(POJO, Plain Old Java Object)와 달리, Spring Bean은 Spring 컨테이너에 의해 생명주기가 관리되며, 의존성 주입(Dependency Injection)을 통해 다른 Bean과 연결됩니다.Spring Bean의 특징IoC 컨테이너에 의해 관리: 개발자가 직접 객체를 생성하고 관리하는 것이 아니라, Spring 컨테이너가 대신 수행합니다.의존성 주입(DI): 객체 간의 의존 관계를 외부에서 설정해줍니다.생명주기 관리: Bean의 생성, 초기화,..

Kafka와 RabbitMQ 비교 분석1. 개요메시지 브로커(Message Broker)는 분산 시스템에서 서비스 간 비동기 통신을 가능하게 하는 중요한 컴포넌트입니다. 이 문서에서는 가장 널리 사용되는 두 메시지 브로커인 Kafka와 RabbitMQ의 아키텍처, 특징, 사용 사례를 비교 분석합니다.2. 아키텍처 비교2.1. Kafka 아키텍처Kafka의 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다:브로커 클러스터: 여러 브로커가 클러스터를 형성하여 토픽과 파티션을 관리합니다.ZooKeeper 앙상블: 브로커 클러스터의 메타데이터를 관리하고 클러스터 조정을 담당합니다.프로듀서 API: 메시지를 생성하여 토픽에 발행합니다.컨슈머 API: 토픽으로부터 메시지를 구독하여 처리합니다.스트림 API: 스..

Mocking이란?1. Mocking의 개념Mocking은 테스트를 진행할 때 실제 객체 대신 가짜 객체(Mock 객체)를 생성하여 사용하는 기법입니다. 이 가짜 객체는 실제 객체의 행동을 흉내내어, 테스트 대상 코드가 의존하는 다른 컴포넌트와의 상호작용을 시뮬레이션합니다.왜 Mocking이 필요한가요?단위 테스트의 독립성 보장: 테스트 대상 코드만 격리하여 테스트할 수 있습니다.외부 의존성 제거: 데이터베이스, 외부 API 등 외부 시스템에 의존하지 않고 테스트할 수 있습니다.테스트 속도 향상: 실제 객체보다 가벼운 Mock 객체를 사용하여 테스트 속도를 높일 수 있습니다.특정 시나리오 테스트: 실제 환경에서 재현하기 어려운 상황(예: 네트워크 오류)을 시뮬레이션할 수 있습니다.2. 단위 테스트와 통합..

Kafka 상세 가이드1. Kafka란 무엇인가?Kafka는 LinkedIn에서 개발하고 현재는 Apache 재단에서 관리하는 분산 스트리밍 플랫폼입니다. 대용량의 실시간 데이터 스트림을 안정적으로 처리할 수 있도록 설계되었으며, 다음과 같은 특징을 가지고 있습니다:고성능: 초당 수백만 개의 메시지를 처리할 수 있는 높은 처리량확장성: 클러스터 구성을 통해 수평적 확장 가능내구성: 데이터를 디스크에 저장하여 데이터 손실 방지분산 처리: 여러 서버에 데이터를 분산하여 저장 및 처리2. Kafka의 주요 개념2.1. 메시지(Message)Kafka에서 데이터의 기본 단위입니다. 키(Key)와 값(Value)으로 구성되며, 타임스탬프와 메타데이터도 포함할 수 있습니다.2.2. 토픽(Topic)메시지가 저장되는..

.Builder의 의미.builder()는 주로 빌더 패턴을 사용하는 클래스에서 객체를 생성하는 메서드다. 이 메서드는 빌더 객체를 사용하여 설정된 필드 값을 기반으로 최종 객체를 생성하고 반환한다.빌더 패턴빌더 패턴은 복잡한 객체를 생성할 때 유용한 디자인 패턴으로, 객체의 생성 과정을 단계적으로 구성할 수 있게 해준다. 이 패턴은 다음과 같은 장점을 제공한다가독성 향상: 객체의 필드를 명시적으로 설정할 수 있어, 어떤 값이 어떤 필드에 할당되는지 쉽게 이해할 수 있다.2. 유연한 객체 생성: 필요한 필드만 설정할 수 있어, 선택적 필드를 쉽게 처리할 수 있다.불변 객체 생성: 필드를 final 선언하고, 생성자에서만 값을 설정하여 객체의 상태를 변경할 수 없도록 할 수 있다.예시@Getter@Sett..

한 프로젝트에서 다수의 가상 방화벽을 구성해 개별 정책과 NAT/VPN을 구성하는 과정에서 인바운드 트래픽이 들어올 때 가상 방화벽 Virtual IP로 각각 라우팅을 주는 것이 아니라 상단 Real IP로 주어서 srcIP로 구분하여 자동으로 가상방화벽으로 라우팅 해야하는 제약사항이 존재하여 해당 기능을 Fortigate 기반으로 분석하여 정리해봤다. 가상방화벽이란?한 방화벽에서 여러개의 논리적 방화벽을 구성하는 기술을 뜻한다.대표적인 가상 방화벽 기술로는 가장 먼저 개발한 Fortigate의 VDOM (Virtual Domain)이 있다. 이외에도 AhnLab의 VS(Virtual System)와 PaloAlto의 VSYS(Virtual System), Cisco의 Security-context 등이..

ISMS(Information Security Management System)국내에서 정보보호를 위한 관리 활동이 인증기준에 적합함을 KISA(한국인터넷진흥원) 또는 인증기관이 증명하는 국내 인증 제도이다.(ISO27001은 국제 인증 제도) 시스템 및 서비스 보안관리 인증기준에 대한 아키텍쳐를 논문을 기반으로 클라우드 보안 아키텍쳐를 살펴봤다. 1. 아키텍처AWS Control Tower를 활용하여 만든 랜딩 존이 위치한 계정은 관리계정(Management Account)라고 표시 됐다.랜딩 존은 가드레일 기능으로 관리 계정에서 여러 하위 계정에 일관적으로 보안 거버넌스를 수립할 수 있도록 보안 정책을 하달하게 된다. Service Catalog는 새로운 어카운트 생성 시 일괸되게 거버넌스를 유지할 ..

의심스러운 프로세스의 이상징후 분석 방법1. 경로 및 이름 분석일반적이지 않은 경로와 이름을 사용하여 실행되는 프로세스가 존재하는가?2. 리니지 분석 (=프로세스 혈통 분석)프로세스 부모자식 관계가 일반적이지 않은가?3. 프로세스의 명령라인 파라미터 분석파라미터가 지정되어 있어야 하는데 없는 경우?파라미터의 길이가 비정상적으로 긴 경우?4. 프로세스 이미지의 버전정보 분석리소스 섹션의 "version info" 리소스 정보가 존재하는지? (오리지널 이름, 벤더, 버전, 프로덕트 이름 등의 정보가 존재) 프로세스의 이상징후 분석을 위한 정보 추출1) 메모리 덤프 프로필 정보 확인2) 프로세스 목록 추출3) 프로세스 트리 정보 추출4) 로드된 DLL 몰골 및 경로 정보 추출5) 프로세스 이미지 덤프 및 버전..