본문 바로가기

전체 글138

Programmers - 신고 결과 받기(Java) https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 풀이 풀이에 필요한 Map 정의 및 초기화 key는 유저아이디, value는 key를 신고한 유저의 아이디의 Set을 가진 Map 동일한 유저에 대한 신고횟수는 1회로 처리하기 때문에 중복을 없애기 위해 Set을 Value로 함 key는 유저아이디, value는 임의의 인덱스를 가진 Map을 정의 int[] answer = new int[id_list.l.. 2022. 1. 21.
[Kubernetes] Node Scheduling(Pod) Kubernetes의 Node Scheduling Pod를 생성할 경우, 생성할 Pod가 어떤 노드에 할당되어야 할지 유저가 지정하거나 쿠버네티스에서 자동적으로 할당가능 또는 운영자가 특정 노드를 사용하지 못하도록 관리 가능 이를 Scheduling이라고 부르며 쿠버네티스는 다양한 기능으로 이러한 Scheduling을 지원 Node Scheduling을 지원하는 다양한 기능 1. 특정 Node를 선택하는 방법 NodeName Pod를 생성하면서 특정 Node를 지정 Scheduler와 상관없이 Node에 할당됨 명시적으로 사용할 수 있어 좋아보이지만, 실사용에서는 Node의 이름이 계속해서 변경되기 때문에 자주 사용하지는 않음 NodeSelector Node의 Label(Key, Value)을 지정하여 .. 2022. 1. 20.
Programmers - 수식 최대화(Java) https://programmers.co.kr/learn/courses/30/lessons/67257?language=java 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 풀이 입력으로 주어진 문자열을 숫자, 연산자로 분리 연산자의 우선순위에 대해 모든 경우의 수를 탐색 - 경우의 수마다 계산하여 최대값과 비교 갱신 연산자, 숫자 분리 전역변수 정의 // 문자열의 숫자 부분 static List numList = new ArrayList(); // 문자열의 연산자 부분 static List optList.. 2022. 1. 17.
[Kubernetes] QoS classes(Pod) 쿠버네티스 QoS(Quality of Service)란 앱의 중요도에 따라 자원 배정을 관리 노드에 있는 Pod가 모든 자원을 사용하고 있을때, 특정 Pod에서 추가 자원이 필요한 경우 중요도에 따라 자원을 우선순위를 가짐 * QoS 우선 순위 : BestEffort < Burstable < Guarnteed QoS 설정 기준 Pod의 QoS는 사용자가 선택하여 지정하지 않고 Pod 생성시, Requests, limits에 따라 지정된다. 1. Guaranteed class 모든 Container에 Request와 Limit이 설정 Request와 Limit에는 Memory와 CPU가 모두 설정 각 컨테이너의 Memory, CPU는 Request와 Limit의 값이 같음 2. Burstable class.. 2022. 1. 16.
[Kubernetes] ReadinessProbe, LivenessProbe(Pod) Probe 컨테이너에서 Kubelet에 의해 주기적으로 수행되는 진단 ReadinessProbe Pod의 생명주기중 Pending 상태에서의 동작, 서비스 요청에 응답가능한지 확인 Service와 연결된 Pod를 확인하여 Readiness Probe에 대해 응답이 없거나 실해 응답을 보낸다면 해당 Pod를 사용불가능한 상태라고 판단하여 서비스 목록에서 제외(App구동 순간에 트래픽이 흐르지 않게) 애플리케이션이 시작할 준비가 되었는지 체크하기 위함 LivenessProbe Pod의 생명주기중 Running 상태에서의 동작 컨테이너가 정상 실행중인지 확인(LivenessProbe를 설정하지 않으면 기본 상태값은 Success) 컨테이너의 상태를 주기적으로 체크하여, 응답이 없다면 컨테이너를 자동으로 재시작.. 2022. 1. 16.
[Kubernetes] Lifecycle(Pod) Lifecycle(생명주기)이란 쿠버네티스의 가장 작은 배포단위인 Pod에는 생명주기가 존재 생성되고 사라지기까지의 과정, 각 단계에 따라 행해지는 동작이 다름 Pod의 Lifecycle 상태 Pending Pod를 생성하는 중인 상태 클러스터에서는 Pod를 승인했지만, 아직 실행되지 않은 상태 Running Pod 안 컨티이너가 하나라도 실행중인 상태 Succeeded Pod 안 모든 컨테이너가 정상적으로 종료된 상태 재시작 X Failed Pod 안의 컨테이너 중 정상적으로 종료되지 않은 컨테이너가 있는 상태 Unknown Pod의 상태를 확인할 수 없는 상태 보통 Pod가 있는 노드와 통신할 수 없을 때 Pod의 Lifecycle 상태 이동 2022. 1. 16.
BOJ 8972 - 미친 아두이누(Java) https://www.acmicpc.net/problem/8972 8972번: 미친 아두이노 요즘 종수는 아두이노를 이용해 "Robots"이라는 게임을 만들었다. 종수는 아두이노 한대를 조정하며, 미친 아두이노를 피해다녀야 한다. 미친 아두이노는 종수의 아두이노를 향해 점점 다가온다. www.acmicpc.net 풀이 플레이어의 이동 명령만큼 1~6을 반복, 미친 아두이노와 플레이어 아두이노가 겹치면 게임 종료 1. 종수(플레이어) 이동 2. 이동 횟수 ++ 3. 플레이어가 죽었는지 확인 4. 미친 아두이노 이동 5. 플레이어가 죽었는지 확인 6. 겹치는 미친 아두이누 폭발 미친 아두이노의 위치 정보를 2차원 배열 List와 List를 이용해 관리 static List[][] map; static Lis.. 2022. 1. 14.
BOJ 23289 - 온풍기 안녕(Java) https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net 풀이 조사하는 칸(배열 입력 칸이 5인 칸)이 모두 K 이상일 때까지 1~3 반복후, 초콜릿의 갯수를 출력 1. 모든 온풍기에서 바람이 나옴 온풍기의 방향에 따라 온도가 확산 하나의 좌표에서 온풍기의 방향에 따라 3방향으로 확산 중첩되는 좌표의 경우 한번만 계산 2. 온도 조절 상하좌우 인접한 칸을 조사, 온도가 높은 칸은 온도를 줄이고 낮은 칸은 온도를 높임 이는 모든 칸에서 한번에 실행됨 3... 2022. 1. 12.
[Kubernetes] DeamonSet, Job, CronJob (Controller) DaemonSet이란 Deployment와 유사하게 Pod를 생성하고 관리하는 컨트롤러 Deployment는 배포 작업을 좀 더 세분화하여 조작하는 반면, DaemonSet은 특정 노드 또는 모든 노드에 항상 실행되어야 할 특정 Pod를 관리 Node의 자원상태와 상관없이 모든 Node 또는 특정 Node에 Pod를 생성 DaemonSet의 구성 Template를 이용해 동일한 Pod를 생성 HostPort를 이용하여 Service의 NodePort와 비슷하게 외부에서의 접근가능 * Nodeport와 다르게 Node의 IP로 접근 DaemonSet yaml 작성 예시 Job이란 하나 이상의 Pod를 지정하고 지정한 수의 Pod를 성공적으로 실행하도록 하는 컨트롤러 백업이나 특정 배치 파일들처럼 한번 실행.. 2022. 1. 11.