분류 전체보기 1186

[K8s] 네트워크 유형 - Pod와 Service 간 통신

개요2024.05.18-[K8s] 네트워크 유형 - 컨테이너 간 통신, 2024.05.19-[K8s] 네트워크 유형 - Pod 간 통신에서 쿠버네티스의 4가지 통신 유형 중 2가지 유형을 살펴보았다. 이번 글에서는 Service의 개념과 Pod과 Service 간 통신에 대해 적어두려고 한다.  ServicePod는 각각의 고유한 주소를 가지기 때문에 어떤 애플리케이션의 엔드포인트로 설정할 수도 있다. 하지만 쿠버네티스에서 Pod는 쉽게 대체되기 때문에 새로 생성된 Pod의 주소가 기존 Pod와 동일함을 보장하지 않는다.이러한 문제를 해결하기 위해 애플리케이션 앞에 서버의 목록을 관리하며 서비스 중인 서버에게 트래픽을 전달하는 reverse-proxy나 load balancer를 구성할 수 있다. 이러한..

Kubernetes 2024.06.10

[K8s] 네트워크 유형 - Pod 간 통신

개요2024.05.18-[K8s] 네트워크 유형 - 컨테이너 간 통신에서는 도커, 쿠버네티스 환경에서의 컨테이너 간 통신에 대해서 정리했다.이번 글에서는 Pod 간 통신에 대한 내용을 적어두려고 한다. Pod 간 통신은 단일 노드에서의 통신 그리고 멀티 노드에서의 통신으로 구분할 수 있다.  단일 노드에서의 Pod쿠버네티스의 Pod는 고유한 IP 주소(veth)를 가지므로, IP 주소로 서로 통신할 수 있다.쿠버네티스는 kubenet이라는 기본적이고 간단한 네트워크 플러그인을 제공한다. 다만 kubenet에는 노드 간 네트워킹, 네트워크 정책 설정과 같은 고급 기능은 구현되어 있지 않기 때문에 Calico, Flannel 등과 같은 CNI 기반 네트워크 플러그인 사용을 권장하고 있다. 일례로 kudead..

Kubernetes 2024.06.07

[K8s] 네트워크 유형 - 컨테이너 간 통신

개요쿠버네티스에서 네트워크는 크게 컨테이너 간 통신, Pod 간 통신, Pod와 서비스 간 통신, 외부와 서비스 간 통신으로 나누어진다.쿠버네티스 환경에서 작업하다 보면 네트워크 관련으로 항상 헤매게 되는 것 같아서 정리해두려고 하는데, 그전에 먼저 네트워크 유형에 대해 정리해보려고 한다.   도커먼제 도커 환경에서 기본적인 네트워크 동작을 알아본다.도커 환경에서 같은 호스트에 존재하는 컨테이너 간의 통신은 docker0이라는 가상 네트워크 인터페이스를 통해 이루어진다. docker0은 호스트 네트워크 인터페이스 또는 디폴트 네트워크 네임스페이스라고 칭해진다.그리고 각 컨테이너는 veth라는 고유한 가상 네트워크 인터페이스를 가지기 때문에 각각의 veth IP주소로 통신한다.컨테이너 내에서는 네트워크 네..

Kubernetes 2024.06.06

[GitLab] 브랜치/TAG 간 비교

개요저장소 내에서 버전 관리를 하면서 태그나 브랜치 간에 차이점을 비교하려고 한다. 예로 들어 v0.4과 v0.5 간의 차이가 발생하는 commit 목록을 확인하고 싶다.확인하는 방법에는 여러 가지가 존재하겠지만, 이 글에서는 GitLab 웹에서 확인하는 방법을 적어두려고 한다.  Compare revisionsGitLab에서느 Compare revisions(Git 리비전 비교) 기능을 사용하여 저장소 내 브랜치나 태그를 기준으로 비교할 수 있다.GitLab 공식 레포지터리를 예로 들어 최신 버전과 직전 버전을 비교해보자. 1. 레포지터리 메뉴 > Code > Compare revisions 클릭GitLab 서버 버전에 따라 메뉴 접근 경로는 달라질 수 있는 것 같다. Code가 아니라 Reposito..

Git | GitLab 2024.06.05

[백준] 2667 - 단지 번호 붙이기

문제문제 : https://www.acmicpc.net/problem/2667그림 1과 같이 정사각형 모양의 지도에서 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 이 지도에서 상하좌우 방향으로 인접한 집의 모임을 단지로 정의하고, 단지에 번호를 붙이려고 한다.그림 2는 그림 1을 단지별로 번호를 붙인 뒤 색을 달리하여 표시한 것이다.지도를 입력받아 단지의 수와 단지 별 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하라.   접근그래프 탐색 방법인 DFS나 BFS를 사용하여 풀어낼 수 있다. 최단 경로를 요구하지 않으므로 DFS, BFS 중 편한 방법으로 구현하면 될 것 같다.다만 지도 내 단지가 하나 이상이므로 테이블 전체를 순회하면서 그래프 탐색을 수행해야 한다. 아무 조건 없이 ..

카테고리 없음 2024.06.04

[알고리즘] 깊이 우선 탐색(DFS) 이란

깊이 우선 탐색깊이 우선 탐색(Depth First Search)이란 그래프 탐색 방법 중 하나로, 최근에 방문한 정점을 선택한 뒤, 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법이다. 주로 깊이 우선 탐색과 같이 언급되는 알고리즘이다.단순 검색 속도는 BFS보다 느리기 때문에 검색이 아닌 순회할 때 많이 사용한다. 즉, 방문할 수 있는 모든 정점을 확인해야 할 때 깊이 우선 탐색을 사용한다. 또한 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법인 백트래킹, 그리고 자동 미로 생성에서 많이 사용한다. 참고로 깊이 우선 탐색으로 찾은 결과는 최단 경로가 된다는 보장은 없다. 또한 해가 없을 경우를 고려하여 탐색할 깊이를 미리 지정할 필요가 있다.   동작 방식임의..

Algorithm 2024.06.03

[백준] 2606 - 바이러스

문제https://www.acmicpc.net/problem/2606웜 바이러스는 네트워크를 통해 전파되기 때문에 한 컴퓨터가 웜 바이러스에 걸리면 네트워크 상에서 연결된 모든 컴퓨터가 웜 바이러스에 걸린다.예로 들어 그림 1과 같은 네트워크가 있다고 할 때, 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번, 5번 컴퓨터를 거쳐 3번, 6번 컴퓨터까지 전파된다. 즉, 2번, 3번, 5번, 6번 컴퓨터가 웜 바이러스에 걸리게 된다.컴퓨터의 수와 네트워크 상에서 직접 연결되어 있는 컴퓨터의 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의의 수를 구하여라.입력으로는 첫째 줄에 컴퓨터의 수가, 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어진다. 이후로 ..

Algorithm/백준 2024.05.31

[백준] 2178 - 미로탐색

문제문제 : https://www.acmicpc.net/problem/2178N X M 크기의 배열로 표현되는 미로가 있다.101111101010101011111011미로에서 1은 이동할 수 있는 칸이고, 0은 이동할 수 없는 칸이다. 이 미로에서 (1, 1)에서 출발해 (N, M)으로 이동할 때 지나야 하는 최소 칸의 개수를 구하는 프로그램을 작성하라. 한 칸에서 다른 칸으로 이동할 때는 서로 인접한 칸으로만 갈 수 있다.입력의 첫째 줄에는 두 정수 N, M이 주어지고, 다음 N개의 줄에 M개의 정수가 붙어서 입력으로 주어진다. 또한 항상 도착 위치로 이동할 수 있는 경우만 고려한다.  2024.05.10-[프로그래머스] 게임 맵 최단거리와 동일한 형태의 BFS 문제이다. 게임 맵 최단거리에서 불필요한..

Algorithm 2024.05.30

[프로그래머스] 게임 맵 최단거리

문제문제 : https://school.programmers.co.kr/learn/courses/30/lessons/1844ROR 게임은 두 팀으로 나눠서 진행하는데, 상대 팀의 진영을 먼저 파괴하면 이긴다. 즉, 각 팀은 상대 팀 진영에 빠르게 도착해야 한다. 아래 그림은 당신의 팀 캐릭터(행 :1, 열 : 1), 상대 팀의 진영(행: 5, 열: 5) 그리고 게임의 맵(5 X 5)을 표현한 것이다.맵에서 검은 부분은 벽으로 막혀 갈 수 없는 길이고, 흰 부분이 갈 수 있는 길이다. 캐릭터는 동서남북으로 한 칸씩 이동하되 맵을 벗어날 수는 없다. 만약 상대 팀 진영이 벽으로 막혀있다면 상대 팀 진영에 도착할 수 없다.게임의 맵을 이차원 배열 maps 매개변수로 전달받을 때, 캐릭터가 상대 팀 진영에 도착..

Algorithm 2024.05.30

[알고리즘] 너비 우선 탐색(BFS) 이란

너비 우선 탐색너비 우선 탐색(Breadth First Search)이란 그래프 탐색 방법 중 하나로, 임의의 시작 정점을 방문한 후 인접한 모든 정점을 우선 방문하는 방법이다. 갈림길에 연결되어 있는 모든 길을 탐색한 뒤, 다시 연결되어 있는 모든 길을 넓게 탐색하는 방법이다.그래프 내 모든 간선의 가중치가 같으면 너비 우선 탐색으로 찾아낸 두 점 사이의 경로는 최단 경로에 해당한다. 따라서 두 점 사이의 최단 경로 또는 임의의 경로를 찾고 싶을 때 너비 우선 탐색을 사용한다. 보통 너비 우선 탐색에 대해 찾아보면 트리 형태의 그래프 탐색이 가장 흔하게 보이는데, 트리 형태가 아닌 그래프에도 사용할 수 있다. 또는 미로 찾기와 같은 이차원 배열에도 사용할 수 있다.   동작 방식너비 우선 탐색은 방문한..

Algorithm 2024.05.29