GitHub

https://github.com/Choidongjun0830

전체 글 444

[프로그래머스] Lv1. 바탕화면 정리

바탕화면 정리문제 설명코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다.컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#..

Java 2024.10.13

Kubernetes Volumes

기초 용어Drive: 저장 장치Volume: Logical한 Drive. Drive를 논리적으로 쪼개서 만들어짐. Kubernetes에서 컨테이너가 데이터를 읽고 쓸 수 있는 공간Pod 중에서 어떤 것은 Storage가 필요할 수도 있다. => Storage를 이용 가능하게 Pod에 Volume을 붙여준다. (Mount Volume)Pod는 하나 이상의 Container로 구성되어 있고, 이 컨테이너들 간에 데이터를 주고 받으려면, Volume을 사용해 Storage를 연결해야 한다. emptyDir, hostPathemptyDir임시적인 Volume. 캐시나 로그 등 임시 데이터를 저장하는데 쓰인다.Pod가 죽었다가 살아나면 사라진다.hostPathPod 내에 Volume을 만드는게 아니라, Node의..

클라우드 2024.10.12

K8S 네트워킹

대부분은 Public 주소Private주소 영역[10.0.0.0 ~ 10.255.255.255][172.16.0.0 ~ 172.31.255.255][192.168.0.0 ~ 192.168.255.255]내부에서는 Private IP 주소를 사용하고, 외부에서는 Public IP 주소를 사용한다. Public IP 주소 + Port 번호로 Private 주소를 구별한다. (NAT를 통해)Network Namespace각 컨테이너가 격리된 네트워크 환경을 갖게 한다.각 네트워크 네임스페이스는 네트워크 스택을 갖고 있다.동일한 호스트 머신 내에서 컨테이너들이 서로 다른 네트워크 환경에서 동작할 수 있게 한다.mysql container와 nginx container가 각각 다른 Network Namespace..

클라우드 2024.10.11

Deployment 리소스 생성시 흐름

실행 흐름1. kubectl 명령어로 Deployment 생성   - 사용자가 kubectl을 통해 Deployment를 생성하면, 이 요청이 Kubernetes API 서버로 전달됩니다.  2. Deployment Controller가 ReplicaSet 생성   - Deployment Controller는 사용자가 원하는 상태(예: 특정 수의 Pod를 실행)를 보고 ReplicaSet을 생성합니다.    - 이 ReplicaSet은 "짜장면 2개"와 같은 상태로, 실행해야 할 Pod의 수(=컨테이너를 돌리는 Pod)를 정의합니다.  3. ReplicaSet Controller가 주문서 Pod 생성   - ReplicaSet Controller는 정의된 수만큼의 Pod 오브젝트(주문서 Pod)를 생성합..

클라우드 2024.10.10

Kubernetes Basic - 2

Controller Manager는 여러 Controller의 한 덩어리로, 여러개의 Controller를 관리하며, 순차적으로 돌아가게 해준다.Controller Manager가 관리하는 것은 Deployment, ReplicaSet, Node 등이다.Controller Manger의 특수한 형태가 kubelet이다. Controller는 kubelet과 같은 역할이지만, 관리해주는게 다르다. (쳐다보는게 다름)kubelet은 주문서인 Pod를 쳐다봄.Controller Manager는 클러스터 전반을 관리하지만, kubelet은 각 개별 노드를 관리한다. Pod컨테이너를 풀어서 돌게 해준다. 컨테이너를 돌리는 기본 단위이다.Pod 안에는 보통 컨테이너가 하나인데, 사실은 Kube-proxy를 합쳐서 ..

클라우드 2024.10.08

Restful API

HTTPServer: 영구적인 IP 주소를 가진다. 서버는 클라이언트의 요청을 받아 데이터를 처리하고 응답을 보낸다. Client: 서버와 소통한다. 동적인 IP 주소를 가지며, HTTP 기반의 통신에서는 클라이언트끼리는 통신하지 않는다.Hyper Text Transfer Protocol: Hyper Text는 HTML 같은것. HTML을 전송하는 프로토콜.기본적으로 요청하고 응답한다. 각각의 Object는 URL로 찾아갈 수 있다.요청 메서드GET, PUT, POST, DELETE, HEAD ...Restful APIAPI의 형식이 Restful이다.API를 액세스할 때 사용되는 프로토콜의 방식을 HTTP와 같은 방식으로 한다.REpresentational State TransferAddressable..

클라우드 2024.10.06

Kubernetes Basic - 1

서버 역할을 하는게 Worker Node어느 Worker Node에 돌릴지는 Scheduler가 결정한다. Virtual Machine Instance를 Pod라고 한다. Master Node의 API Server와 짝이 되는게 Worker Node의 kubelet이다. Worker Node의 kubelet이 etcd를 보고 쓰여진대로 동작한다.k8s API는 declarative하다.이전에는 원하는 상태가 되도록 명령했다.하지만 이 방법은 Auto Recovery가 되지 않는다. 직접 알려줘야 한다.현재는 사용자가 원하는 상태를 정의하는 것으로 한다. (declarative) 사용자가 원하는 상태는 etcd에 있는 Pod라는 주문서에 적혀있는데, Worker Node에 있는 kubelet이 그것을 보고..

클라우드 2024.10.06

OpenStack 기초, VLAN과 VXLAN

OpenStack 기초OpenStack은 Cloud OS이다. VM을 관리해준다. 지금은 컨테이너를 서비스하는 용도로도, Bare Metal을 서비스하는 용도로도 가능하다. => IaaSBare Metal: 서버를 한꺼번에 쓰고 싶을 때. 하드웨어의 리소스를 공유하는 가상화 방식과는 다르게, 하드웨어의 모든 성능을 사용할 수 있는 방식이 베어 메탈 방식이다. 서버를 직접 구축하는 것보다 Bare Metal을 빌려 쓰는 것의 장점Capex(Capital): 살 때 들어가는 돈Opex(Operation): 운용하는데 들어가는 돈Capex 때문에 Bare Metal을 빌려 쓰는 것임. Opex는 사용료가 들어가서 더 비쌀 수도 있음.회사 안에 두는 것: On premise 빌려 쓰는 것은 Cloud?둘이 섞어..

클라우드 2024.10.05

[프로그래머스] Lv1. 공원 / DP 😑

[PCCE 기출문제] 10번 / 공원문제 설명지민이는 다양한 크기의 정사각형 모양 돗자리를 가지고 공원에 소풍을 나왔습니다. 공원에는 이미 돗자리를 깔고 여가를 즐기는 사람들이 많아 지민이가 깔 수 있는 가장 큰 돗자리가 어떤 건지 확인하려 합니다. 예를 들어 지민이가 가지고 있는 돗자리의 한 변 길이가 5, 3, 2 세 종류이고, 사람들이 다음과 같이 앉아 있다면 지민이가 깔 수 있는 가장 큰 돗자리는 3x3 크기입니다.지민이가 가진 돗자리들의 한 변의 길이들이 담긴 정수 리스트 mats, 현재 공원의 자리 배치도를 의미하는 2차원 문자열 리스트 park가 주어질 때 지민이가 깔 수 있는 가장 큰 돗자리의 한 변 길이를 return 하도록 solution 함수를 완성해 주세요. 아무런 돗자리도 깔 수 ..

[프로그래머스] Lv2. 퍼즐 게임 챌린지 / 이분 탐색

[PCCP 기출문제] 2번 / 퍼즐 게임 챌린지문제 설명당신은 순서대로 n개의 퍼즐을 제한 시간 내에 풀어야 하는 퍼즐 게임을 하고 있습니다. 각 퍼즐은 난이도와 소요 시간이 정해져 있습니다. 당신의 숙련도에 따라 퍼즐을 풀 때 틀리는 횟수가 바뀌게 됩니다. 현재 퍼즐의 난이도를 diff, 현재 퍼즐의 소요 시간을 time_cur, 이전 퍼즐의 소요 시간을 time_prev, 당신의 숙련도를 level이라 하면, 게임은 다음과 같이 진행됩니다.diff ≤ level이면 퍼즐을 틀리지 않고 time_cur만큼의 시간을 사용하여 해결합니다.diff > level이면, 퍼즐을 총 diff - level번 틀립니다. 퍼즐을 틀릴 때마다, time_cur만큼의 시간을 사용하며, 추가로 time_prev만큼의 시간..

728x90