오늘도 기록하는 중 GitHub

분류 전체보기 192

2025년 상반기 회고 - SAA, SQLD 합격 후기

지난 반 년 간내가 작성한 2024년 회고에 2025년에는 무엇을 하겠다고 했는지 다시 보았다.올해는 새롭게 무언가를 시작하고, 성장하고 발전하여 어엿한 사회구성원이 되는 게 목표다.사실상 목표는 3가지였다.새로운 활동엔지니어로써 성장취업이 중 1개는 달성했다고 생각한다. 1개는 달성 중이다. 1개는 아직이다.뭐가 됐든, 반 년 간 열심히 달려왔다. 벌써 반 년이다. 이 정도나 달려왔다는 게 되돌아보면 신기하다. 조금씩 스스로 발전하고 있다는 것도 알 수 있다.이번에는 지금까지 무엇을 했고, 앞으로 무엇을 할 건지 내 생각과 함께 정리해보고자 한다. 취미에 집중하자재작년부터 블로그에 개발 외적인 것을 담으려고 하진 않았는데 취미가 내 발전에 많은 도움이 됐기에 담아보자고 생각했다. 벌크업을 목표로 원..

Remembrance 2025.06.29

가상 메모리 - 페이징

가상 메모리 관리 기법현대 컴퓨터 시스템이 여러 프로그램(프로세스)을 동시에 매끄럽게 실행할 수 있는 비결은 무엇일까? 그 중심에는 한정된 물리 메모리(RAM)를 수많은 프로세스들이 나눠 쓸 수 있도록 하는 메모리 관리 기술이 있다. 그중에서도 페이징(Paging)은 가장 핵심적인 가상 메모리 관리 기법으로, 메모리 공간을 낭비하는 외부 단편화 문제를 근본적으로 해결하고, 각 프로세스가 마치 자신만의 거대한 메모리를 독차지한 것처럼 느끼게 해주는 안정적인 환경을 제공한다.페이징의 기본 원리: 페이지와 프레임페이징의 핵심 아이디어는 물리 메모리를 조각내어 프로세스에 비연속적으로 할당하는 것이다. 마치 책의 내용을 여러 페이지에 나누어 담고, 이 페이지들을 책장 여기저기에 꽂아두지만 목차를 통해 순서대로 찾..

CS/OS 2025.06.27

동기화

프로세스 동기화프로세스 동기화는 현대 멀티프로세싱 시스템에서 가장 중요한 개념 중 하나다. 여러 프로세스가 동시에 실행되는 환경에서 공유 자원에 대한 안전한 접근을 보장하기 위해 반드시 필요한 기술이다. 동기화는 단순히 프로세스 간의 실행 순서를 제어하는 것을 넘어서, 데이터의 일관성과 시스템의 안정성을 보장하는 핵심적인 역할을 수행한다.동기화란 무엇인가동기화(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에 저장된다.어드미션 컨트롤러를 사용하는 주된 이유는 다음과 같다.보안성 향상. 사전에 정의된 정책을 강제하여 클러스터의 보안 수준을 높인다. 예를 들어, 특정 보안 기준을 충족하지 않는 파드 생성을 막을 수 있다.제어성 및 일관성 강화. 리소스..

반응형