GitHub

https://github.com/Choidongjun0830

전체 글 486

5.2 선형 자료 구조

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 연결 리스트데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화한 것이다.prev와 next로 연결한다.싱글 연결 리스트: next만 사용이중 연결 리스트: prev와 next 사용원형 이중 연결 리스트: prev와 next를 사용하고, 마지막 노드의 next는 첫 노드를 가리킨다.삽입과 삭제는 O(1), 탐색은 O(n)배열같은 타입의 변수들로 이루어져 있다. 크기가 정해져 있고, 인접한 메모리 위치에 있는 데이터들을 모아놓은 집합이다.중복을 허용하고, 순서가 있다.접근(참조)에 O(1)이고 랜덤 접근이 가능하다. 삽입과 삭제는 O(n)랜덤 접근직접 접근동일한 시간에 배열과 같은 순차적인 데이터가 있을 때, 임의의 인덱스에 해당..

CS 2024.10.18

Kubernetes Principles

#1. Kubernetes APIs are declarative rather than imperative.K8S에서는, Master Node가 Worker Node에게 어떤 동작을 하라고 명령하는 것이 아니라, Master Node가 원하는 상태를 정의하면, Worker Node는 그 상태가 되도록 작업을 수행한다. 이를 통해서 얻을 수 있는 이점은 Auto Recovery가 있다. Worker Node에서 현재 상태가 원하는 상태와 일치하지 않다면, 그 상태가 아님을 스스로 알아채고 현재 상태를 원하는 상태로 만들기 위해 스스로 동작한다.#2. The Kubernetes control plane is transparent, there are no hidden Internal APIs.Master Nod..

클라우드 2024.10.15

[프로그래머스] 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
728x90