전체 글

Yoochan IT Blog
· Infra/Linux
최근에 온라인채널 서버의 OS 업그레이드 프로젝트를 진행하는 과정에서, 서버 렉 마운트 및 네트워크를 연결하는 작업을 진행했다. 실제로 장비에 선을 연결하는 물리적은 작업은 엔지니어분들이 진행해주셨고, 나는 유선으로 상황을 체크하면서 연결 상태나 이중화 테스트를 진행하는 역할을 수행했다. 해당 작업을 수행하면서,실제 네트워크 개통 과정과, 서버에 적용된 리눅스 본딩(Bonding) 기반의 Active-Standby 이중화가 정상적으로 작동하는지 검증한 작업에 대한 내용과 필요한 내용들을 정리해봤다. 핵심 개념 정리서브넷 (Subnet)서브넷이라는 개념을 이해하기 위해선, IP 주소, 서브넷 마스크에 대해서 기본적으로 알고 있어야 한다. IP 주소는 네트워크에 연결된 모든 장비가 가지는 고유한 주소로..
파일 시스템은 파일과 디렉터리를 보조기억장치에 일목요연하게 저장하고 접근할 수 있게 하는 운영체제 내부 프로그램이다. 파티셔닝 & 포매팅보조기억장치(HDD, SSD 등)를 새로 구매하여 컴퓨터에 연결했을 때, 데이터를 바로 저장할 수는 없다. 새 디스크를 사용하기 위해서는 반드시 파티셔닝과 포매팅 과정을 거쳐야 한다.파티셔닝 (Partitioning)하나의 물리적인 보조기억장치를 여러 개의 논리적인 영역(파티션)으로 나누는 작업이다.거대한 빈 사무실에 가벽을 세워 '1팀 공간', '2팀 공간'으로 구획을 분할하는 것과 같다. 윈도우에서 하나의 디스크를 C 드라이브, D 드라이브로 나누어 쓰는 것이 대표적이다.포매팅 (Formatting)나뉜 파티션에 어떤 파일 시스템을 사용할지 결정하고, 데이터를 저장할..
증권사의 트레이딩 시스템의 아키텍처는 어떻게 구성되어 있을까? 증권의 IT 서비스의 핵심 가치는 크게 세 가지 정도로 요약해볼 수 있다.초고속/저지연: 0.001초 차이가 체결 여부가 갈리는 증권의 환경에서는 속도가 생명이자 최우선이다.고가용성: 장중 정지는 곧 대형 사고이다. 잠깐의 순단도 큰 비용이 들어갈 수 있으므로, 멈추지 않는 구조(이중화)가 필수다.망분리: 금감원 가이드라인에 따라 외부 인터넷망과 내부 업무망은 완전히 격리되어야 한다. 이러한 제약 조건 속에서, 주문과 시세를 처리하는 트레이딩 시스템은 다음과 같은 표준 아키텍처 흐름을 가진다. 여기서 말하는 트레이딩 시스템은 흔히 알고 있는 HTS/MTS/WTS와 같은 시스템들에 해당하며, 현업에서는 흔히 "채널계"라고 명칭한다. 물론 상세..
1. 연속 메모리 할당연속 메모리 할당은 말 그대로, 프로세스에 연속적인 메모리 공간을 할당하는 방식이다.이와 같이 연속 메모리 할당에서는 고려해야 할 점도 많고, 잠재적인 문제도 존재한다. 스와핑 (Swapping)메모리에서 실행 중이지 않은 프로세스를 임시로 디스크의 일부 공간(스왑 영역)으로 쫓아내고(Swap-out), 그로 인해 생긴 빈 공간에 다른 프로세스를 로드하여 실행하는 기술이다. 스왑 영역에 있던 프로세스가 다시 메모리로 돌아오는 것을 Swap-in이라고 한다 스와핑을 이용하면 실제 물리 메모리 크기보다 큰 프로세스도 실행할 수 있다. 유닉스와 리눅스 macOS에서는 free, top 명령어 등을 통해 스왑 영역의 크기를 확인할 수 있다. 스왑 영역의 크기와 사용 여부는 사용자가 임의로 ..
· Infra/Linux
리눅스 쉘 스크립트에서 는 비교를 위해 주로 if [ 조건 ] 또는 if test 조건 형태를 사용한다. 1. Integer(정수) 비교쉘 스크립트에서 정수를 비교할 때는, 흔히 부등호와 같은 기호 대신에, 문제 형태의 연산자를 사용한다. (문자열 비교와 구분하기 위해)-eq (Equal): 두 정수가 같으면 참 [ $A -eq $B ]-ne (Not Equal): 두 정수가 다르면 참 [ $A -ne $B ]-gt (Greater Than): 크면 참 (초과) [ $A -gt $B ]-ge (Greater or Equal): 크거나 같으면 참 (이상) [ $A -ge $B ]-lt (Less Than): 작으면 참 (미만) [ $A -lt $B ]-le (Less or Equal): 작거나 같으면 참..
교착상태(Deadlock)란?두 개 이상의 프로세스가 각자 자원을 보유한 채 서로의 자원을 원하며 무한정 대기하는 상태를 말한다.한마디로 "네가 가진 자원을 놓아야 내가 일하는데, 나도 내 자원을 놓을 수 없다"며 서로 양보하지 않아 시스템이 멈춰버리는 현상. 자원 할당 그래프교착 상태는 자원 할당 그래프를 통해 단순하게 표현할 수 있다. 시스템에 교착 상태가 발생했는지, 혹은 발생할 가능성이 있는지 시각적을 확인하기 위한 도구다. 자원 할당 그래프는 아래의 요소로 표현할 수 있다.원(○): 프로세스사각형(□): 자원자원 ➔ 프로세스 (화살표): 해당 자원이 프로세스에 할당되어 사용 중임을 의미 (점유)프로세스 ➔ 자원 (화살표): 프로세스가 해당 자원을 사용하기 위해 기다리는 중임을 의미 (대기)그래..
동기화의 개념과 필요성동시다발적으로 실행되는 프로세스(또는 스레드)들은 서로 협력하며 실행될 수 있다.이때 공동의 목적을 위해 서로 올바른 실행 순서를 맞추고, 데이터의 일관성을 유지하는 것을 동기화라고 한다. 동기화에는 두 가지 동기화가 존재한다. 실행 순서 제어를 위한 동기화: 프로세스를 올바른 순서대로 실행 (예: 파일 읽기 프로세스는 파일 쓰기 프로세스가 끝난 후 실행되어야 함).상호 배제를 위한 동기화: 동시에 접근해서는 안 되는 하드웨어나 메모리 공간 등의 자원에 하나의 프로세스만 접근하도록 제어상호 배제는 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘이다. 간단한 예시로, 계좌에 10만원에 있을 때 다음 두 프로세스가 있다고 생각해보자. 프로세스 A: 2만원을 넣는 프..
CPU 스케줄링이란?모든 프로세스는 CPU를 필요로 하고, 모든 프로세스는 먼저 CPU를 사용하고 싶어 한다. 운영체제는 프로세스들에게 공정하고 합리적으로 CPU 자원을 분배하는데, 이를 'CPU 스케줄링'이라고 한다. CPU는 한 번에 하나의 프로세스만 실행할 수 있다.따라서 CPU 스케줄링을 통해 CPU가 쉬지 않고 효율적으로 일하게 만들고, 시스템 전체의 처리량을 높이고, 사용자에게 빠른 반응 속도를 제공하는 것을 목적으로 한다. 프로세스 우선순위운영체제는 프로세스마다 우선순위를 부여하여 CPU를 효율적으로 배분한다.모든 프로세스가 CPU를 동일하게 필요로 하지는 않기 때문이다. (=프로세스마다 우선순위가 다르기 때문이다) 크게 두 가지 유형의 프로세스로 구분할 수 있다. 입출력 집중 프로세스 ..
최유찬
Yoochan's Tech Blog