오늘도 기록하는 중 GitHub

전체 글 200

동기화

프로세스 동기화프로세스 동기화는 현대 멀티프로세싱 시스템에서 가장 중요한 개념 중 하나다. 여러 프로세스가 동시에 실행되는 환경에서 공유 자원에 대한 안전한 접근을 보장하기 위해 반드시 필요한 기술이다. 동기화는 단순히 프로세스 간의 실행 순서를 제어하는 것을 넘어서, 데이터의 일관성과 시스템의 안정성을 보장하는 핵심적인 역할을 수행한다.동기화란 무엇인가동기화(Synchronization)는 시스템 프로세스 간 정보를 공유하는 행위로 정의할 수 있다. 보다 구체적으로 말하면, 여러 프로세스나 스레드가 공유 자원에 접근할 때 발생할 수 있는 문제를 예방하고 올바른 실행 순서를 보장하는 메커니즘이다. 현대 컴퓨터는 다중 프로그래밍 시스템으로 여러 프로세스가 동시에 실행되며, 이러한 환경에서 동기화는 필수불가..

CS/OS 2025.06.10

프로세스, 그리고 스레드

프로세스와 스레드웹이든 앱이든 관계없이 개발을 해본 사람이라면 스레드에 대해 배우거나 들었을 것이다. 오늘은 CS에 대한 이해를 위해 운영체제에 관련된 내용 중 프로세스와 스레드에 대해 정리하려고 한다. 스레드에 관한 내용은 이전에도 올렸지만 이번에는 총체적으로 담아보려고 한다!아래는 내가 이전에 정리한 스레드 관련 글이다.2024.07.08 - [CS/OS] - 스레드 Thread (1) - 하드웨어와 소프트웨어프로세스?프로세스는 실행 중인 프로그램을 의미한다.응용 프로그램은 보조 기억 장치(하드 디스크, SSD 등)에 저장되어 있다가, 사용자가 해당 프로그램을 실행하는 순간 메모리에 적재되면서 '프로세스'가 된다. 컴퓨터는 수많은 프로세스들을 동시에 생성하고, 사용이 끝나면 메모리에서 삭제함으로써 메..

CS/OS 2025.06.08

커널 Kernel

커널?이 한 달 동안 배웠던 부분은 장기기억으로 넘기고, 부족한 부분은 채우기 위해서 공부하고 있다. 이번엔 운영체제의 중요 요소인 커널에 대해서 기록하려고 한다.운영체제의 핵심 요소커널은 운영체제의 가장 핵심적인 부분으로, 컴퓨터 시스템의 모든 것을 완전히 제어하는 컴퓨터 프로그램이다. 하드웨어와 소프트웨어 구성 요소 간의 상호작용을 관리하고, 항상 메모리(RAM)에 상주하면서 운영체제 코드의 일부분 역할을 한다. 커널은 운영체제를 구성하는 가장 중요한 부분으로, 어떻게 구성하느냐에 따라 컴퓨터 전체의 성능이 달라진다.커널의 메모리 보호커널의 핵심 코드는 응용 소프트웨어나 운영체제의 다른 중요하지 않은 부분들로부터 접근이 차단된 별도의 메모리 영역에 로드된다. 이 영역을 _커널 영역_이라고 부른다. 이..

CS/OS 2025.06.04

Kubernetes - Federation

🌐 Kubernetes Federation🎯 Federation?Kubernetes Federation은 단일 클러스터가 아닌 분산된 다중 클러스터 환경을 단일 제어 평면에서 관리하기 위한 표준화된 솔루션이다. 이는 여러 개의 Kubernetes 클러스터를 중앙에서 관리하고 최적화하는 기술로, 하이브리드 클라우드, 멀티 클라우드, 지리적으로 분산된 데이터 센터 운영 등에 활용되어 서비스 확장성과 가용성을 극대화할 수 있다.Federation은 두 가지 주요 버전으로 발전해왔다. 초기 Federation v1은 클러스터 연합을 위한 기본 기능을 제공했지만, Federation v2는 Kubernetes Operator를 활용한 CRD(Custom Resource Definitions) 기반의 개선된 아..

Kubernetes - 서비스 카탈로그와 서비스 브로커

☁️ 서비스 카탈로그와 서비스 브로커?클라우드 네이티브 환경이 발전하면서 다양한 서비스의 프로비저닝, 관리, 연결은 점점 더 복잡해지고 있다. 이러한 복잡성을 해결하고 개발 생산성을 향상시키기 위해 서비스 카탈로그와 서비스 브로커라는 개념이 등장했으며, 이들은 Open Service Broker API (OSB API)라는 표준을 통해 상호작용한다. 이번에는 핵심 개념과 구현 방안에 대해서 다뤄보고자 한다.📜 Open Service Broker API - 클라우드 서비스 자동화의 표준 프로토콜OSB APIOpen Service Broker API (OSB API)는 클라우드 플랫폼(예: 쿠버네티스, Cloud Foundry)과 외부 서비스 제공자 간의 통신을 위한 표준 규약이다. 마치 레스토랑에서 웨이..

Kubernetes - 멀티 테넌시 환경 구축

🔄 쿠버네티스 멀티 테넌시 환경 구축이번에 실습을 겸해 쿠버네티스의 멀티 테넌시 환경을 구축하게 됐다. 테넌시와 테넌트가 무엇인지, 어떻게 멀티 테넌시 환경을 구축할 수 있는지에 대해서 다뤄보고자 한다!🤔 멀티 테넌시란 무엇인가?멀티 테넌시(Multi-tenancy)는 하나의 소프트웨어 인스턴스가 여러 사용자 그룹, 즉 테넌트(tenant)에게 서비스를 제공하도록 설계된 소프트웨어 아키텍처다. 쿠버네티스 컨텍스트에서는 하나의 쿠버네티스 클러스터를 여러 테넌트가 공유하는 형태를 의미한다.테넌트의 정의테넌트는 쿠버네티스에서 다양하게 정의될 수 있다. 한 조직 내 여러 팀, 다수의 고객사, 또는 독립적인 사용자 그룹을 의미할 수 있다. 예를 들면 다음과 같다.다중 팀 사용 환경 조직 내 여러 팀이 클러스터..

Istio란?

🚀 서비스 메시이번엔 쿠버네티스를 다룰 때 자주 나오는 기술인 Istio에 대해 알아보려고 한다! 설치는 나중에 쿠버네티스를 본격적으로 다뤄볼 때 언급하고 오늘은 이게 무엇인지에 대해서만 작성하려고 한다.🌐 서비스 메시란 무엇인가?서비스 메시는 마이크로서비스 아키텍처에서 서비스 간 통신을 관리하고 제어하는 인프라 레이어를 의미한다. 현대적인 클라우드 네이티브 애플리케이션이 복잡해지면서 서비스 간 통신 문제를 해결하기 위한 방법으로 등장했다. 서비스 메시는 서비스 간 통신에 대한 네트워킹, 보안, 관측 기능을 애플리케이션 코드와 분리하여 제공한다.서비스의 수가 증가하면 잠재적 통신 경로의 수도 기하급수적으로 증가한다. 예를 들어 두 서비스에는 오직 두 개의 통신 경로만 있지만, 10개의 서비스에는 90..

Kubernetes - Validating, Mutating Admission Controller

🛡️ 쿠버네티스 어드미션 컨트롤러 (Kubernetes Admission Controller)쿠버네티스 어드미션 컨트롤러(Admission Controller)는 API 서버로 들어오는 요청을 가로채서 처리하는 플러그인의 집합이다. 이 컨트롤러는 인증(Authentication)과 인가(Authorization) 단계를 통과한 요청에 대해, 해당 요청을 최종적으로 수락할지 또는 거절할지를 결정하는 역할을 수행한다. 수락된 요청은 클러스터의 영구 저장소인 etcd에 저장된다.어드미션 컨트롤러를 사용하는 주된 이유는 다음과 같다.보안성 향상. 사전에 정의된 정책을 강제하여 클러스터의 보안 수준을 높인다. 예를 들어, 특정 보안 기준을 충족하지 않는 파드 생성을 막을 수 있다.제어성 및 일관성 강화. 리소스..

리눅스 커널 모듈

🐧 리눅스 커널리눅스 커널은 하드웨어와 응용 프로그램 간의 중재자로 작동한다. 시스템의 물리적 자원(CPU, 메모리, 장치)을 관리하며, 다음과 같은 주요 기능을 수행한다.하드웨어 추상화: 복잡한 하드웨어 접근을 단순화하여 사용자 프로그램이 쉽게 활용할 수 있게 한다.프로세스 관리: PID(Process ID)를 통해 프로세스 스케줄링과 자원 할당을 최적화한다.메모리 관리: 가상 메모리와 스왑 공간을 활용해 물리적 메모리 이상의 용량을 제공한다.시스템 호출 제공: read(), write()와 같은 저수준 연산을 표준화된 인터페이스로 노출한다.이번엔 리눅스 커널 모듈에 대해서 알아보겠다.✒️ 커널 모듈리눅스 커널 모듈은 동적으로 로드/언로드 가능한 코드 조각으로, 시스템 재부팅 없이 커널 기능을 확장할..

Linux 2025.05.15

시스템 로그 분석 및 모니터링(logrotate)

로그는 중요하다로그 파일은 시스템 관리자가 서버의 상태를 파악하고 문제를 해결하는 데 필수적인 정보를 제공한다. 웹 서버, 애플리케이션 서버, 데이터베이스 등 모든 서비스는 자신의 활동을 로그 파일에 기록한다. 이러한 로그 파일들은 시간이 지날수록 크기가 커지게 되는데, 방치하면 디스크 공간을 빠르게 소진시켜 시스템 장애를 일으킬 수 있다.Logrotate란 무엇인가Logrotate는 리눅스 시스템에서 로그 파일을 자동으로 관리하고 압축, 백업, 삭제, 로테이션 등을 수행하는 유틸리티다로그 파일이 지나치게 커지는 것을 방지하고, 디스크 공간을 효율적으로 관리할 수 있게 도와준다대부분의 리눅스 배포판에는 logrotate가 기본적으로 포함되어 있으며, 필요한 경우 패키지 관리자를 통해 쉽게 설치할 수 있다..

Linux 2025.05.15
반응형