목록전체 글 (302)
내 잡다한 노트
**분산 시스템에서 애플리케이션 광고(application advertising)**는 애플리케이션이 자신의 존재, 기능 또는 제공하는 서비스를 시스템 내의 다른 구성 요소나 애플리케이션에게 알리는 방법과 과정을 의미합니다. 이는 서비스 디스커버리(서비스 탐색)의 중요한 부분으로, 분산 시스템 내에서 하드코딩된 구성이 없이도 동적으로 서로를 찾고 통신할 수 있도록 돕습니다. 아래에서는 주요 개념과 예시를 통해 자세히 설명하겠습니다.주요 개념서비스 디스커버리 (Service Discovery)광고(Advertising): 애플리케이션이 시작될 때, 자신이 제공하는 서비스의 위치(예: IP 주소와 포트)와 관련된 메타데이터(서비스 종류, 버전 등)를 서비스 레지스트리나 디스커버리 서비스에 등록함으로써 자신의..
Binding은 애플리케이션이 특정 NIC의 IP주소와 포트를 할당받아, 해당 ip와 포트로 들어오는 네트워크 요청을 수신할 수 있도록 설정하는 과정이다. 네트워크 바인딩 동작 과정1. 애플리케이션 시작 시 바인딩 요청 애플리케이션이나 서버 소프트웨어가 시작할 때, 운영체제에게 "내가 이 IP주소와 포트를 사용해서 요청을 받을 거야" 라고 알려준다. 2. 운영체제의 역할 운영체제는 해당 IP및 포트가 이미 다른 애플리케이션에 의해 사용중인지를 확인한다. 만약 사용중이라면, 오류를 반환하거나 다른 포트를 선택하도록 한다. 3. 성공적인 바인딩 후 애플리케이션은 해당 IP와 포트로 들어오는 클라이언트의 연결 요청을 대기한다. 이후 클라이언트가 접속하면 운영체제가 해당 연결 정보를 애플리케이..
TIME_WAIT 상태는 TCP 연결이 정상적으로 종료되는 과정에서 나타나는 상태로, 특정 측에서 연결을 종료한 뒤 발생합니다.TIME_WAIT 상태의 역할TCP 연결 종료 과정 (4-Way Handshake)TCP 연결 종료는 4단계로 이루어집니다:한쪽(주로 클라이언트)이 FIN 패킷을 전송해 연결을 닫으려 요청합니다.다른 쪽(주로 서버)이 ACK로 응답합니다.다른 쪽이 FIN을 보내고, 원래 요청자가 이를 ACK로 확인합니다.이 과정이 완료되면 연결이 닫힙니다.TIME_WAIT 상태 발생 조건TIME_WAIT는 FIN을 먼저 보낸 쪽에서 발생합니다.이는 클라이언트나 서버 어느 쪽이든 될 수 있습니다.TIME_WAIT 상태의 목적유실된 패킷 방지: FIN 또는 최종 ACK 패킷이 손실되었을 경우를 대비..
DMZ ( DeMilitarized Zone, 비무장지대 ) 는 보통 사내 내부망과 외부망 사이에 중간 영역을 두어 외부에 공개해야 하는 서비스를 보다 안전하게 운영하고자 할 때 구성하는 네트워크 영역이다.보안 관점에서 서버와 내부 자산을 보호하기 위해 중요한 역할을 한다.DMZ에 있는 서버는 외부에서 접근할 수 있지만, 내부 네트워크(예: 회사의 사내 네트워크)에는 직접 접근할 수 없습니다. DMZ 설정 시 서버의 상태(1) 서버의 위치DMZ에 배치된 서버는 공개 네트워크와 내부 네트워크의 중간 지대에 위치하게 됩니다.보통 DMZ는 방화벽(Firewall)으로 보호되며, 다음과 같은 구조를 가질 수 있습니다:외부 네트워크(인터넷) DMZ 내부 네트워크(2) 접근 제어외부 클라이언트는 DMZ에 배치된..
정의 : IP주소를 네트워크 부분과 호스트 부분으로 나누는 데 사용되는 숫자.서브넷을 생성하여 네트워크를 나눌 수 있도록 도와준다. 서브넷을 생성함으로써 큰 네트워크를 여러 개의 작은 네트워크(서브넷)로 나눌 때 사용된다. 서브넷 마스크의 구조서브넷 마스크는 **IP 주소처럼 32비트(IPv4)**로 표현됩니다.이진수 형태: 11111111.11111111.11111111.00000000십진수 형태: 255.255.255.0네트워크와 호스트 부분서브넷 마스크의 1: 네트워크 부분을 나타냅니다.서브넷 마스크의 0: 호스트 부분을 나타냅니다.예:IP 주소: 192.168.1.100서브넷 마스크: 255.255.255.0네트워크 부분: 192.168.1호스트 부분: .100 이 문제의 답은 248이다.C클..
umask를 풀어서 보면 User Mask이다.linux/unix 시스템에서 파일과 디렉토리가 생성될 때 기본 권한을 제어하는 값이다.즉, 새로 생성된 파일이나 디렉토리가 어떤 권한을 가질 지 결정하는 데 사용된다. 1. umask의 기본 개념기본 권한은 파일과 디렉토리가 생성될 때의 초기 권한입니다.umask 값은 기본 권한에서 제거(빼기)할 권한을 정의합니다.파일이나 디렉토리가 생성될 때:파일 기본 권한: 666 (읽기 + 쓰기) -> 파일은 기본적으로 실행권한이 제공되지 않는다.디렉토리 기본 권한: 777 (읽기 + 쓰기 + 실행)umask 값을 사용하여, 이 기본 권한에서 특정 권한이 제거됩니다.( 필자는 이 부분이 헷갈렸음. 만약 umask 값이 022라면 파일일 경우 666 - 022 니까 6..
Standalone 방식과 inetd 방식 비교Standalone 방식과 inetd 방식은 서버 프로세스 실행 방식에 대한 두 가지 접근법으로, 각각 장단점과 적합한 상황이 다릅니다. 이를 아래에서 설명하겠습니다.1. Standalone 방식설명:서버 프로세스가 독립적으로 실행되어 항상 대기 상태로 동작하는 방식.프로세스가 메모리에 상주하며 클라이언트 요청을 처리.특징:서버가 항상 메모리에 상주하므로 초기 연결 속도가 빠름.주로 사용자가 많거나 고빈도 요청이 필요한 서비스에 적합.예: 웹 서버(Apache, Nginx), 데이터베이스 서버(MySQL).장점:빠른 응답 시간(항상 실행 중이기 때문).빈번한 요청 처리에 적합.단점:메모리와 CPU를 항상 소비(비효율적일 수 있음).요청이 적으면 리소스 낭비...
NI(Nice Value)란?**NI(Nice Value)**는 Linux/Unix 운영체제에서 프로세스의 우선순위를 설정하기 위해 사용하는 값입니다.프로세스가 CPU를 얼마나 선호하는지를 나타내며, 시스템에서 CPU 리소스를 효율적으로 할당하는 데 도움을 줍니다. 1. Nice Value의 역할프로세스가 CPU를 얼마나 "양보(nice)"할지를 결정합니다.값이 낮을수록 우선순위가 높고, 값이 높을수록 우선순위가 낮습니다.**우선순위(priority)**는 Nice Value와 다른 내부 값인 "기본 우선순위"를 조합하여 결정됩니다.2. Nice Value의 범위범위: -20에서 19까지.-20: 가장 높은 우선순위.19: 가장 낮은 우선순위.기본 값은 **0**이며, 모든 프로세스는 기본적으로 0의 우..