
네트워크 인터페이스 (Network Interface) 네트워크 인터페이스는 존재할 수 있는 모든 네트워크 어댑터에 대한 지속적 인터페이스를 IP 계층에 제공하기 위해 네트워크 고유 장치 드라이버 및 IP 계층과 통신하는 네트워크 고유 소프트웨어입니다. 또한, 네트워크 인터페이스에는 네트워크 주소가 있습니다. 가상 머신과 마찬가지로 도커 컨테이너 또한 가상 IP를 할당받는데요, 기본적으로 도커는 172.17.0.xxx의 IP 주소를 순차적으로 컨테이너에게 할당합니다. 먼저, 호스트의 네트워크 인터페이스를 살펴보겠습니다. 여기서 우리는 docker0라는 네트워크 인터페이스를 확인할 수 있는데요, docker0는 실제 네트워크 어댑터가 연결되어있지 않은 가상의 리눅스 브릿지로, IP주소 172.17.0.1/..
본 포스트 이후 모든 글은 Ubuntu 18.04를 기준으로 포스팅할 예정이니 참고 바랍니다. 설치 전제조건 (Prerequisites) 도커 엔진을 설치하기 위해서는 다음 우분투 버전 중 64비트 버전이 필요합니다. Ubuntu Focal 20.04 (LTS) Ubuntu Eoan 19.10 Ubuntu Bionic 18.04 (LTS) Ubuntu Xenial 16.04 (LTS) 이전 버전 설치 제거하기 도커의 이전 버전들은 docker, docker.io 또는 docker-engine으로 불립니다. 만약 이 버전들이 설치되어 있다면 삭제하시면 됩니다. $ sudo apt-get remove docker docker-engine docker.io containerd runc 만약 apt-get 명령..

도커란? 도커(Docker)는 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 조금 더 쉽게 사용할 수 있게 만들어진 오프소스 프로젝트이다. Go 언어로 작성돼 있으며, 2013년 3월에 처음 발표된 이후 지금까지 꾸준히 개발되고 있다. 일반적으로 도커라 함은, 도커 엔진(Docker Engine) 또는 도커에 관련된 모든 프로젝트를 의미하지만, 도커 엔진이라는 의미로 더 많이 사용된다. (도커 엔진은 컨테이너를 생성하고 관리하는 주체로서, 그 자체로도 컨테이너를 제어할 수 있고 다양한 기능을 제공하는 도커의 주 프로젝트이기 때문) 컨테이너(Container) vs. 가상 머신(Virtual Machine) 컨테이너와 가상 머신은 호스트 운영체제(Host OS) 위에서 가상화를 통한..

문제 보기 이 문제는 브루트 포스 문제이다. 문제에서 의도하는 바는 9명의 난쟁이 중 키의 합이 100이 되는 7명의 난쟁이를 고르는 것이다. (가능한 경우의 수가 여러 개일 경우 한 가지만 출력한다.) 이제 웬만한 브루트 포스 문제는 막힘없이 풀 수 있는 것 같아서 조금 성장한 느낌이 든다. 문제를 푼 로직은 다음과 같다. DFS를 재귀적으로 사용하여 각 난쟁이를 선택한 경우와 선택하지 않은 경우의 수를 모두 구한다. (19~25번째 줄) 모든 경우 중 한 가지 경우의 난쟁이들을 선택한 뒤, 선택한 난쟁이의 수가 7이고 키의 합이 100인 경우 선택된 난쟁이들의 키를 출력한다. (9~17번째 줄) 이 문제를 풀면서 한 가지 배운 점이 있다면, 한 개의 리스트를 출력할 때, 리스트의 원소마다 구분자를 설..

문제 보기 이 문제는 수학 문제이고, 에라토스테네스의 체가 필요하다. 문제가 요구하는 것은 말 그대로 골드바흐의 추측을 검증하는 것이다. 골드바흐의 추측이란 다음과 같다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 주어진 범위 내에 이 추측을 검증하기만 하면 된다. 문제를 푼 로직은 다음과 같다. 에라토스테네스의 체로 주어진 범위 내의 모든 소수를 구한다. (5~18번째 줄) 숫자 n을 입력받고 합이 n을 이루는 소수 a, b를 구한다. 두 소수 a, b를 찾았다면 "n = a + b"를 출력한다. (26~33번째 줄) 두 소수 a, b를 찾지 못했다면 "Goldbach's conjecture is wrong."을 출력한다. (35~36번째 줄) 이 문제가 생각보다 까다로운 점은 시..

문제 보기 이 문제는 수학 문제이다. 알고리즘 분류는 에라토스테네스의 체도 포함되어 있지만, 굳이 그럴 필요는 없는 것 같다. 문제에서 요구하는 바는 주어진 숫자들 중 소수가 몇 개인지 찾는 것이다. 딱히 어려운 구현은 없기 때문에, 나는 소수를 판별하기 위해 다음의 조건을 생각하였다. 소수의 약수는 1과 n밖에 없다. 이 조건을 확인하는 함수는 8~16번째 줄에 작성되어 있다. 문제를 푼 로직은 다음과 같다. 자연수를 입력받는다. (4~5번째 줄) 주어진 수에 대해서 소수의 개수를 세고, 이를 출력한다. (19~23번째 줄) import sys from math import sqrt n = int(sys.stdin.readline()) numbers = list(map(int, sys.stdin.rea..
- Total
- Today
- Yesterday