PID 1 리눅스의 시그널은 Docker 컨테이너 내부의 프로세스 생명 주기를 제어하는 방법이다. 그래서 Docker 와 kubernetes(이하 k8s) 는 시그널을 사용해서 컨테이너 내부의 프로세스와 통신하고, 컨테이너를 종료하기 위해 사용한다. Docker 와 k8s 는 컨테이너 내부에 PID 1 이 있는 프로세스에만 신호를 보낼 수 있다....
DNS 작동 방식
DNS란? 우리는 구글에 접속하기 위해 웹 브라우저 주소창에 www.google.com 라는 문자열을 입력한다. 어떤 사이트에 접속한다는 것은 IP 주소를 기반으로 클라이언트와 서버가 통신하는 것이다. 그래서 클라이언트는 사이트가 운영하는 서버의 IP 주소를 알아야 원하는 페이지를 볼 수 있는 것이다. 하지만 사람이 숫자로 된 IP 주소를 입력해...
프로그래머스 Level 1 - 기사단원의 무기 (JavaScript)
프로그래머스 - Level1 기사단원의 무기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제...
nginx란 무엇인가
Nginx Nginx 는 웹 사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램이다. 클라이언트가 요청한 정적 파일을 응답하는 HTTP Web Server 로 활용하기도 하며, Reverse Proxy Server 로 활용하여 WAS 의 부하를 줄이는 로드 밸런서 역할을 하기도 한다. (참고: Forward Pro...
Forward Proxy와 Reverse Proxy
프록시(Proxy)란? 프록시는 사전적인 의미로 ‘대리인’, ‘중개자’ 라는 의미를 가지고 있다. 컴퓨터 공학에서 프록시는 보안상의 문제로 직접 통신을 주고 받을 수 없는 두 PC 사이에서 통신을 중계하는 것을 의미한다. 이처럼 중계 기능을 수행하는 서버를 ‘프록시 서버’라고 한다. 출처: What is a Proxy Server? How ...
HTTP와 HTTPS, 그리고 SSL/TLS
HTTP 와 HTTPS HTTP HTTP 는 HyperText Transfer Protocol 의 약자로, 하이퍼텍스트를 전송하기 위해 사용되는 통신 규약(Protocol)이다. 즉, 인터넷에서 HTML 과 같은 문서를 클라이언트(사용자)의 웹 브라우저가 웹 서버(서비스 제공자)에 요청하거나 웹 서버가 클라이언트에서 응답을 보낼 때 지켜야 하는 ...
Docker network 개념 정리
Docker network 개념 도커 컨테이너는 격리된 환경에서 실행되기 때문에 기본적으로 다른 컨테이너와 통신을 할 수 없다. 그래서 여러 컨테이너끼리 통신을 하기 위해서는 같은 도커 네트워크에 연결해야 한다. 도커 네트워크는 기본적으로 가상 네트워크 인터페이스를 생성한다. Linux bridge 도커는 linux bridge 를 이용해서 ...
NAT란?
NAT 개념 NAT 는 Network Address Translation 의 약자로, 네트워크 주소 변환을 의미한다. IP 패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받도록 하는 기술이다. 동작 원리 출처: Network address translation [wiki...
YML(YAML)이란?
YML(YAML) 개념 YAML(이하 YML) 은 Yet Another Markup Language 의 약자로 마크업 언어의 한 종류이다. 마크업 언어란 데이터의 논리적인 구조를 표현하기 위해 규칙들을 정의한 언어의 일종이다. XML, HTML 이 대표적인 마크업 언어이다. school: name: 42 location: Seoul .....
가상머신과 도커의 차이
가상머신과 도커의 차이 하나의 물리 서버를 효율적으로 사용하기 위해 ‘서버 가상화 기술’이 발전했다. 가상머신과 컨테이너는 모두 서버 가상화 기술을 적용한 것이다. 하지만 어떤 가상화 소프트웨어를 사용하는지, 어떤 시스템 레벨을 가상화하는지에 차이가 존재한다. 가상화 가상화는 컴퓨터에서 하나의 물리 하드웨어 시스템에서 여러 가상 시스템을 실행...