전체 글 26

Event-Driven Architecture와 Kafka의 활용

이벤트 기반 아키텍쳐, EDA(Event-Driven Architecture)는 "Event Driven"개념에서 유래한다. 특정한 과정, 행동들이 자동 또는 순서에 따라 발생하는 것이 아닌 어떤 일에 대한 반응으로 인해 동작하는 디자인 패턴이며, 분산 시스템에서의 느슨한 결합(Loosely Coupled)과 유연성, 탄력성, 확장을 보장할 수 있도록 한다. EDA는 크게 4가지로 이뤄진다. "무언가가 발생했다" 라는 사실인 Event, 이벤트를 발생하는 Producer, 이벤트를 모았다가 전달하는 Event Broker, 이벤트를 구독하여 반응(서비스) 하는 Consumer. EDA는 Producer와 Consumer 사이에서 비동기로 데이터를 주고 받도록 설계되어있으며, 이를 통해 느슨하게 결합된다...

여러 개의 디스크를 하나처럼 관리하자, RAID 기술 알아보기

RAID(Redundant Array of Independent/Inexpensive Disks)는 여러 개의 디스크를 하나처럼 묶어서 사용하고, 관리할 수 있도록 하는 기술이다. 여러 개를 하나처럼 사용하기 때문에 용량증가와 성능향상은 물론이고, 데이터를 안전하게 보관할 수있는 장점이 있다. RAID는 업계표준에 의해 디스크를 어떻게 묶고 관리할지에 대한 기준이 정해져 있지만, 솔루션 벤더사가 임의로 정한 특수한 기준도 있다. RAID 레벨구성방식디스크 최소 개수용량 활용도특징RAID 0블록 단위로 나눠서 순차적으로 각 디스크에 저장(스트라이핑)2100%장애 허용 불가RAID 1동일 데이터를 2개 디스크에 복제(미러링)250%단순, 안전RAID 5스트라이핑+패리티(복구용 데이터) 분산 저장3(N-1)/..

VMware vSphere 환경에서 DRS의 역할

DRS(Distributed Resource Scheduler)는 VMWare 클러스터 내 여러 EXSi 호스트의 CPU/MEM 부하를 자동 분산시키는 기능이다. VMware vShpere는 VMware 가상화 플랫폼 전체를 묶어 부르는 이름이며, ESXi(하이퍼바이저)와 vCenter Server(관리서버) 및 DRS/HA/vMotion 등 기능들을 모두 포함한다. ESXi는 물리 서버에 설치하는 VMware의 가상화 소프트웨어로, 여러 개의 VM이 하나의 물리 서버위에서 동시에 실행 될 수 있도록 한다. 그리고 vCenter Server는 여러개의 ESXi 호스트를 한꺼번에 관리할 수 있도록 하며 이를 통해 VMware 클러스터를 생성할 수 있게된다. VMware 클러스터의 핵심 기능은 VM을 다운..

리눅스의 특수권한에 대해 알아보자!

리눅스(Linux)애는 chmod(권한 변경 명령어)를 통해 파일이나 디렉토리에 특수 권한을 부여할 수 있다. 리눅스에서 제공되는 권한은 총 3가지이며, Sticky Bit(1번), SetGID(2번), SetUID(4번)이 있다. chmod 명령어를 통해 특수권한을 부여하는 방법은 "chmod (구분번호)(권한번호)" 이다. 구분적용 대상동작 방식권한 표시부여방법SetUID (4)실행 파일소유자(Owner) 권한으로 파일실행 -rwsr-xr-x(Owner의 실행권한 위치에 s)chmod 4755SetGID (2)실행 파일그룹(Group) 권한으로 실행-rwxr-sr-x(Group의 실행권한 위치에 s)chmod 2755디렉터리디렉터리 그룹(Group) 권한 파일에 상속 Sticky Bit디렉터리디렉터..

가상 네트워크(Virtual Network)와 서브넷(Subnet)을 알아보자

가상 네트워크와 서브넷은 완전히 새로운 개념이거나 갑자기 세상에 똑 떨어진 개념이 아니다. 기존의 Dedication 서버 환경에서 Cloud 서버 환경으로 넘어가며 생긴 분화이며 그 개념은 그대로 이어진다. 네트워크는 서로 연결된 장치가 데이터를 주고받을 수 있도록 하는 구조자체를 일컫는 말이다. 네트워크를 구성하는 요소는 기본적으로 IP 주소, 라우터, 스위치, 방화벽이 있다. 가상 네트워크는 이러한 것들을 소프트웨어적으로 구성하며, 논리적으로 동작하게 된다. 물리장비가 가지는 확장성과 유연성의 한계를 넘어 네트워크를 생성하고 배치할 수 있다는 장점이 있지만, 물리장비만큼의 성능을 원한다면 썩 좋은 선택은 아닐수 있다. Cloud 환경에서 가상 네트워크는 가장 핵심 기술이라고 볼 수 있다. 논리적으..

[WAS] Session 유실이 발생하는 흔한 이슈

(1) 다중화 서비스에서 WAS가 중단 또는 재기동 된 후 발생한 Session 유실 다중화(이중화) 구조는 기본적으로 서비스의 고가용성을 유지하기 위하여 구성된다. 다중화된 Middleware(WAS)가 중지되더라도 전체 서비스가 장애 발생에 영향을 받지 않도록 하는 것이다. 하지만 이런 구조에서도 Session 유실이 발생하는 경우, 고가용성이 유지되지 않는다. 위와 같은 서비스 구성에서 WAS#2가 중지된 이후 서비스에 영향을 준다면(로그아웃이 되는 경우 등) 서버 설정을 검토할 필요성이 있다. Session은 3가지 방법으로 관리 할 수 있다. 1) WAS Clustering 방식 사용 - Tomat이나 WildFly(JBoss)에서 제공하는 Clustering 기능을 사용하는 것이다. ..

Redis란? 기초 개념과 Replication/Cluster, 활용

Redis는 REmote DIctionary Server의 약자로 공식적으로 NoSQL Database로 분류되어 있는 오픈소 데이터베이스이다. In-Memory Key-Value Store, 즉 메모리에 Key-Value 값을 저장하여 빠른 성능을 보장하며, 다양한 언어 클라이언트 및 자료구조를 지원하므로 다양한 상황에서 사용될 수 있다. 많은 서비스에서 캐시, 세션 저장을 위해 많이 사용하며, 실시간 순위나 메시지 브로커, 비동기 작업 큐로도 사용하기도 한다. 명령어가 짧고 직관적이며, redis-cli를 통해 터미널에서 실행하거나 Python, C#, .NET, Java 등 Redis에서 제공하는 여러 언어의 클라이언트 라이브러리로 연결하여 사용할 수 있다. [Redis가 제공하는 자료구조 별 사용..

[환경설정] ISO파일을 이용한 CentOS 7.9 Local Repo 설정

[테스트환경] - HostOS : Windows10 - GuestOS : VirtualBox - CentOS 7.9 - Repository : Local [내용] 1. VirtualBox 실행 > workstation > 실행 2. 장치 > 광학 드라이브 > 설치 iso 선택 3. ISO 파일 내용을 복사할 임시 디렉토리 생성 cd /root mkdir cdrom 4. 임시 디렉토리에 iso 파일 내용 마운트 mount -o loop /dev/sr0 /root/cdrom 5. 임시 디렉토리 내용 확인 6. Repository 로 사용할 경로 생성 cd / mkdir repo 7. iso 파일에서 repo 디렉토리로 파일 이동 cd /root/cdrom cp -arp ./Packages/ /repo cp ..

[환경설정] VirtualBox를 이용한 CentOS 7.9 설치

[구축내용] ver220323 - HostOS : Windows10 - GuestOS : CentOS 7.9 (CentOS-7-x86_64-DVD-1708.iso) [내용] 1. VirtualBox 다운로드 및 설치 : https://www.virtualbox.org/wiki/Downloads - 최신버전 VirtualBox를 Host OS에 맞추어 다운로드하여 설치한다. 구축환경의 Host OS는 Windows 이므로 "Windows hosts" 선택 2. CentOS 7.9 iso 파일 다운로드 : http://mirror.kakao.com/centos/7.9.2009/isos/x86_64/ - 기본적으로 CUI 환경을 사용할 것이기 때문에 Minimal을 사용하여도 되지만, 쉬운 설치를 위해 DVD..

Part 1. 데이터 구조 - 트리 데이터 구조

3. 트리 데이터 구조 생물학적인 의미로 트리(tree)란 말 그대로 뿌리, 줄기, 가지가 있는 거대한 나무를 뜻하며, 컴퓨팅 분야에서의 트리는 이러한 나무를 거꾸로 뒤집은 형태와 비슷하다. 트리 트리 데이터 구조는 데이터를 선형으로 정렬하는 선형 데이터 구조와 달리 데이터를 계층으로 정렬한다. 트리 데이터 구조의 가장 위쪽에는 나무의 뿌리에 해당하는 루트 노드(Root Node)가 있고, 트리의 나머지 요소들은 이 루트 노드를 기준으로 하위계층으로 구성된다. 루트 노드를 기준으로 아랫 방향으로 또 다른 노드가 연결되는 것을 하위 노드 또는 자식 노드(Child Node)라고 부르며, 해당 노드를 기준으로 로 윗 방향으로 노드가 연결된 것을 상위 노드 또는 부모 노드(Parent Node)라 부른다. 트..

반응형