본문 바로가기

스터디12

컨테이너 모니터링으로 투명성 있는 애플리케이션 만들기(9장) 1. 컨테이너화된 애플리케이션에서 사용되는 모니터링 기술 스택1-1. 모니터링 도구프로메테우스(Prometheus) : 애플리케이션 컨테이너에서 측정된 수치를 수집그라파나(Grafana) : 수치를 시각화해 이해하기 쉬운 대시보드 형태로 구성이 도구들은 오픈 소스이며 여러 플랫폼에서 사용할 수 있다. 그러므로 개발 환경과 운영 환경을 막론한 어떤 환경에서도 동등하게 애플리케이션의 성능을 확인할 수 있다 1-2. 프로메테우스에 대해서프로메테우스 구조는 아래와 같다. 프로메테우스의 장점프로메테우스를 사용하면 모니터링의 중요한 측면인 일관성이 확보된다.모든 애플리케이션을 똑같은 표준적인 형태로 모니터링할 수 있다.측정값을 추출하기 위한 쿼리 언어도 한 가지만 익히면 되고, 전체 애플리케이션 스택에 똑같은 모니.. 2025. 7. 10.
헬스 체크와 디펜던시 체크로 애플리케이션의 신뢰성 확보하기 0. 들어가며도커 컨테이너에서 실행 중인 애플리케이션 상태가 정상적으로 동작하는지 확인하는 것은 중요하다. 도커에서도 헬스 체크와 디펜던시 체크 기능을 통해 애플리케이션이 비정상 상태라는 것을 알 수 있다. 플랫폼이 제공하는 기능을 활용하기 위해 필요한 정보를 컨테이너 이미지에 추가하는 방법을 알아보자. - 헬스 체크 : 서버의 상태를 주기적으로 확인하여 서버의 정상 작동 여부를 판단하는 과정- 디펜던시 체크 : 애플리케이션이 실행되기 전에 필요한 외부 리소스나 서비스, 즉 의존성이 정상적으로 작동하는지 확인하는 과정 1. 헬스 체크를 지원하는 도커 이미지 빌드하기먼저, 헬스 체크 로직이 없는 경우부터 살펴보자. 다음은 무작위 숫자를 반환하는 간단한 REST API이다. 이 애플리케이션에는 버그가 있어 .. 2025. 7. 4.
네트워크 - OSI 7계층 OSI 7계층이란?OSI 7계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7계층을 나눈 이유는?흐름을 한눈에 알아보기 쉽고 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.예를 들어, pc방에서 롤을 하고 있는데 연결이 끊겼다. 어디에 문제가 있는지 확인을 하기 위해서는?- 모든 PC에 문제가 있다면 라우터의 문제(3계층 네트워크 계층)이거나 광랜을 제공하는 회사의 회선 문제(1계층 물리계층) 일 것이다.- 한 PC만 문제가 있고 롤 소프트웨어에 문제가 있다면 -> 7계층 어플리케이션 계층 문제- 롤 소프트웨어에 문제가 없고 스위치에 문제가 있다면 -> 2계층 데이터링크 계층 문제 라고 판단해 .. 2025. 4. 1.
운영체제 - 파일 시스템 파일 시스템(File System)이란?파일 시스템은 운영체제가 데이터를 저장하고 관리하는 방식을 의미한다. 파일 시스템은 하드디스크, SSD, USB, SD 카드 등의 저장 장치에서 데이터를 조직화하고 접근할 수 있도록 도와주는 구조를 제공한다. 파일 시스템의 역할데이터 저장 및 관리 : 데이터를 파일 단위로 저장하여 사용자와 프로그램이 쉽게 접근할 수 있도록 함.파일 및 디렉터리 관리 : 파일을 디렉터리(폴더) 구조로 구성하여 체계적으로 관리파일 액세스 제어 : 사용자의 권한을 설정하여 보안성을 강화저장 공간 할당 및 관리 : 저장 장치의 공간을 효율적으로 사용하도록 관리데이터 무결성 유지 : 갑작스러운 전원 차단이나 오류 발생 시 데이터 손상을 방지. 파일 시스템의 구조부트 블록(Boot Block.. 2025. 3. 17.
운영체제 - 가상 메모리 가상 메모리(Virtual Memory)란?실제 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리한 것이다. 메모리의 공간은 한정적이므로 사용자에게 더 많은 메모리를 제공하기 위해 가상 주소를 사용한다. 메모리 관리 장치는 가상 주소를 이용해 실제 데이터가 담겨 있는 주소로 변환해 준다. 여기서 가상 주소 공간은 하나의 프로세스가 메모리에 저장되는 논리적인 모습을 가상 메모리에 구현한 공간이며, 가상 주소는 해당 공간을 가리키는 주소이다. 가상 메모리가 필요한 이유1. 물리 메모리의 한계모든 프로그램 코드를 물리 메모리에 올릴 수가 없다.그렇다고, 프로그램을 교체하면서 올리면 메모리 교체 성능 문제가 발생한다.2. 가상 메모리의 장점프로그램 용량이 실제 물리 메모리보다 커도 된다.전체 프로그램이 물리.. 2025. 3. 17.
운영체제 - 동기화와 교착상태 들어가며운영체제(OS)에서 동기화(Synchronization)와 교착상태(Deadlock)는 멀티태스킹 환경에서 중요한 개념이다. 특히, 여러 프로세스나 스레드가 한정된 자원을 공유할 때 발생할 수 있는 문제들을 해결하기 위해 필수적으로 고려해야 한다. 이번 글에서는 동기화의 개념과 필요성, 교착상태의 원인과 해결 방안을 살펴보겠다.1. 동기화(Synchronization)동기화란?동기화(Synchronization)란 여러 개의 프로세스 또는 스레드가 동시에 실행될 때, 공유 자원에 대한 접근을 조정하여 일관성을 유지하는 기법을 의미한다. 이를 통해 데이터의 무결성을 보장하고 경쟁 상태(Race Condition)로 인한 오류를 방지할 수 있다.동기화가 필요한 이유운영체제에서 여러 개의 프로세스나 스.. 2025. 3. 14.
도커 이미지 만들기 1. 도커 이미지 살펴보기> docker image 내려받기docker image pull [내려받을 이미지의 이름]ex) docker image pull diamol/ch03-web-ping이미지 이름 : diamol/ch03-web-ping이 이미지는 도커가 가장 먼저 이미지를 찾기 위해 접근하는 저장소인 도커 허브에 저장되어 있음도커 허브는 무료로 제공되는 공개 레지스트리 레지스트리(registry) : 이미지를 제공하는 저장소 docker image도커 이미지는 논리적으로는 하나의 대상이다.애플맄이션 스택 전체가 하나의 파일로 압축된 압축 파일을 생각하면 쉽게 이해할 수 있다.이미지를 내려받는 과정을 보면 여러 파일을 동시에 내려받는다.이들 각각의 파일을 레이러라고 부른다.도커가 이들 파일을 조립.. 2025. 3. 13.
운영체제 - CPU 스케줄링 CPU 스케줄링이란?CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다. 다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는데 있다. 어떤 프로세스가 대기해야 할 경우, 운영체제는 CPU를 그 프로세스로부터 회수해 다른 프로세스에 할당한다. 즉, CPU 이용률을 최대화 하는 것은 다중 프로세서 운영체제 설계의 핵심이다. CPU - I/O 버스트 사이클 (CPU - I/O Burst Cycle)프로세스 실행은 CPU 실행과 I/O 대기의 사이클로 구성된다.프로세스의 실행은 CPU Burst로 시작된다. 뒤이어 I/O Burst가 발생하고, 그 뒤를 이어 또 다른 CPU Burst가 발생하며, 이어 또 다.. 2025. 3. 10.