트리(Tree) 계층적인 구조를 표현하는 추상 자료형입니다. 트리는 노드들의 집합과 이들을 연결하는 간선들의 집합으로 구성되며, 한 노드가 다른 노드를 가리키는 방향성을 가진다는 점에서 그래프의 한 종류라고 할 수 있습니다. 트리에서는 노드가 자식 노드를 여러 개 가질 수 있지만, 한 노드가 여러 부모 노드를 가질 수는 없습니다. 루트(Root): 트리의 최상위 노드입니다. 트리는 하나의 루트 노드만을 가집니다. 부모(Parent): 어떤 노드의 직속 상위 노드를 그 노드의 '부모'라고 합니다. 자식(Child): 어떤 노드의 직속 하위 노드를 그 노드의 '자식'이라고 합니다. 형제(Sibling): 같은 부모 노드를 공유하는 노드들을 '형제'라고 합니다. 리프 노드(Leaf Node): 자식이 없는 노..
큐(queue) 데이터 컬렉션을 처리하는 데 사용되는 또 다른 추상 데이터 유형(ADT)입니다. 큐는 컴퓨터과학에서 흔히 사용되는 자료구조 중 하나입니다. 큐는 특정한 규칙에 따라 항목들을 추가하거나 제거하는 리스트와 유사합니다. 이러한 규칙은 선입선출(FIFO, First In First Out)입니다. 즉, 가장 먼저 큐에 추가된 항목이 가장 먼저 제거됩니다. enqueue: 큐의 끝에 항목을 추가합니다. dequeue: 큐의 맨 앞에 있는 항목을 제거하고 반환합니다. front: 큐의 맨 앞에 있는 항목을 조회합니다. 큐에서 항목을 제거하지는 않습니다. isEmpty: 큐가 비어 있는지 확인합니다. size: 큐에 있는 전체 항목 수를 반환합니다. class Queue { constructor() ..
스택(stack) 데이터 컬렉션을 처리하는 데 사용되는 추상 데이터 유형(ADT)입니다. 자료구조에 대해 말하면 스택은 컴퓨터과학에서 매우 중요한 부분입니다. 스택은 특정한 규칙에 따라 항목들을 추가하거나 제거하는 리스트와 유사합니다. 이러한 규칙은 후입선출(LIFO, Last In First Out)입니다. 즉, 가장 마지막에 스택에 추가된 항목이 가장 먼저 제거됩니다. 스택의 핵심 연산은 다음과 같습니다: push: 스택의 맨 위에 항목을 추가합니다. pop: 스택의 맨 위에 있는 항목을 제거하고 반환합니다. peek/top: 스택의 맨 위에 있는 항목을 조회합니다. 스택에서 항목을 제거하지는 않습니다. isEmpty: 스택이 비어 있는지 확인합니다. class Stack { constructor()..
문제 1 hk8s-w1 노드에 ngix-static-pod.yaml 이라는 이름의 Static Pod 를 생성하시오. - pod name : nginx-static-pod - image : nginx - port : 80 // hk8s-w1 접속 ssh hk8s-w1 sudo -i // path 확인 cat /var/lib/kubelet/config.yaml // 확인한 경로로 접속 cd /etc/kubernetes/manifests // 확인 kubectl run nginx-static-pod --image=nginx --port=80 --dry-run=client -o yaml // 잘되어있으면 ngix-static-pod.yaml 저장 kubectl run nginx-static-pod --imag..
쿠버네티스(Kubernetes)의 정적 파드(Static Pod)는 특별한 종류의 파드입니다. 이 파드는 Kubelet이 직접 관리하며, API 서버를 통하지 않습니다. 즉, 컨트롤 플레인 노드에서 Kubelet에 의해 직접 관리되는 파드를 정적 파드라고 합니다. 정적 파드는 특별한 경우에서 사용되며, 대부분의 사용자에게는 필요하지 않을 수 있습니다. 예를 들어, 컨트롤 플레인 노드의 API 서버를 실행하는 파드는 종종 정적 파드로 실행됩니다. API 서버가 다운되었을 때에도 정적 파드가 실행되어 있기 때문에 클러스터를 복구할 수 있습니다. 정적 파드는 일반적으로 디스크에 파드 정의를 저장하는 형태로 설정됩니다. Kubelet은 이 위치를 주기적으로 폴링하여 변경사항을 확인하고, 해당하는 파드를 생성하거..
문제 2 pod "custom-app"의 log를 모니터링하고 "file not found"메세지를 포함하는 로그라인을 추출하시오. 추줄된 결과는 /opt/REPORT/2022/custom-app-log에 기록하시오. // 작업중인 환경 확인 kubectl config current-context // k8s 클러스터 이동 kubectl config use-context hk8s // 동작중인 클러스터에서 custom-app 을 확인 kubectl get pods kubectl logs custom-app | grep 'file not found' kubectl logs custom-app | grep 'file not found' > /opt/REPORT/2022/custom-app-log // 확인 ..
문제 1 'cka-exam'이라는 namespace를 만드록, 'cka-exam' namespace에 아래와 같은 pod를 생성하시오. - pod Name : pod-01 - image : busybox - 환경변수 : CERT = 'CKA-cert' - command : /bin/sh - args : -c "while ture; do echo ${CERT}; sleep 10; done" 문제 풀이 // 작업중인 환경 확인 kubectl config current-context // k8s 클러스터 이동 kubectl config use-context k8s // namespace 생성 kubectl create namespace cka-exma kubelctl run pod-01 --image=busy..
Pod 컨테이너를 표시하는 k8s api의 최소단위 pod에는 하나 또는 여러 개의 컨테이너가 포함 pod 실행 방법 CLI 모드 실행 kubectl nun web -image=nginx:1.14 -port=80 kubectl get pod -n devops NAEE READY STATUS RESTARTS AGE web 1/1 Running 0 18s kubectl delete pod web YAML 사용 kubectl nun web -image=nginx:1.14 -port=80 --dry-run // 에러가 나지 않을 경우 pod/web created(dry run) // 에러가 나오지 않으면 바로 실행 kubectl nun web -image=nginx:1.14 -port=80 --dry-run=c..
new Set(); JavaScript의 Set은 중복을 허용하지 않는 요소들의 집합입니다. 각 요소는 집합 내에서 단 한 번만 나타납니다. Set을 사용하면, 배열이나 다른 유형의 데이터 구조에서 중복 항목을 쉽게 제거할 수 있습니다. Set 생성 Set은 'new' 키워드를 사용하여 생성합니다. let mySet = new Set(); 이 코드는 빈 Set을 생성합니다. Set은 배열 또는 다른 이터러블 객체를 인수로 사용하여 초기화할 수도 있습니다. let mySet = new Set([1, 2, 3, 4, 5]); Set에 원소 추가 add() 메소드를 사용하여 Set에 원소를 추가할 수 있습니다. mySet.add(6); 이 코드는 6을 Set에 추가합니다. Set에서 원소 제거 delete()..
직접 값을 설정하는 초기화 이 방법은 배열의 원소를 직접 설정하여 초기화하는 가장 간단하고 직관적인 방법입니다. // 직접 값을 설정하는 초기화 let arr = [8, 1, 4, 5, 7]; 위 코드에서는 배열 arr를 생성하고 각 원소에 직접 값을 설정했습니다. 이 경우, 배열의 길이는 직접 설정한 원소의 수와 같습니다. new Array()와 fill()을 사용한 초기화 new Array(n)는 길이가 n인 새로운 배열을 생성합니다. 이때, 배열의 각 원소는 undefined로 초기화됩니다. fill(value) 메소드를 이용하면 배열의 모든 원소를 특정 값으로 초기화할 수 있습니다. 예를 들어, //길이가 5이고 모든 원소의 값이 0인 배열 초기화 let arr = new Array(5).fill..