study 39

컨테이너 오케스트레이션, 쿠버네티스(Kubernetes)

컨테이너 오케스트레이션(Container Orchestration) 여러 컨테이너를 자동으로 배포, 확장, 관리, 네트워킹, 서비스 발견 등을 수행하는 툴이나 플랫폼을 나타냅니다. (컨테이너 기반의 가상화 환경을 운영 관리) 이는 대규모의 컨테이너화된 애플리케이션을 효과적으로 관리하고 운영하는 데 도움을 줍니다. *주요 컨테이너 오케스트레이션 도구로는 Kubernetes, Docker Swarm, Apache Mesos, Amazon ECS 특징 자동 배포 및 스케일링: 컨테이너를 자동으로 배포하고 필요에 따라 스케일링할 수 있습니다. 새로운 컨테이너 인스턴스를 추가하거나 제거하여 애플리케이션의 부하에 대응할 수 있습니다. 서비스 발견 및 로드 밸런싱: 컨테이너가 동적으로 생성되고 제거될 때, 오케스트레..

가상화(Virtualization)와 컨테이너(Containerization)

가상화의 발전 과정 전통적인 배포 : 물리서버 기반 애플리케이션 실행 가상화된 배포 : 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM) 실행 컨테이너 개발 : VM과 유사, 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유 가상화와 컨테이너 둘 다 확장성과 유연성을 제공하며, 클라우드 환경이나 마이크로서비스 아키텍처에서 특히 유용하게 사용됩니다. 어떤 시스템 레벨을 가상화 하는지가 다릅니다. 가상화 (Virtualization) 가상화는 하드웨어 리소스를 추상화하여 가상의 환경을 만들어내는 기술입니다. (하드웨어 레벨 가상화) 이는 하이퍼바이저(Hypervisor)라고 불리는 소프트웨어 계층을 통해 수행됩니다. 가상화는 주로 서버 가상화에 많이 사용되며, 다양한 운영 체제 및 애플리케..

데브옵스(DevOps)와 마이크로서비스(microservices) 개념, 특징

데브옵스(DevOps) 데브옵스(DevOps)는 소프트웨어 개발 및 운영 프로세스를 통합하여 효율적이고 지속적인 소프트웨어 제공을 가능하게 하는 소프트웨어 개발문화 또는 방법론을 나타냅니다. "데브"는 소프트웨어 개발(Development)을, "옵스"는 운영(Operations)을 의미하며, 두 영역 간의 협력과 통합을 강조합니다. 데브옵스의 주요 목표와 특징 지속적인 통합 (Continuous Integration, CI): 개발자가 코드를 공유하는 과정에서 자동화된 빌드 및 테스트를 수행하여 코드 품질을 높이고 문제를 조기에 발견합니다. 지속적인 배포 (Continuous Deployment/Delivery, CD): 지속적인 통합 이후 자동화된 배포 프로세스를 통해 새로운 기능이나 수정 사항이 실..

[javaScript] 프로그래머스 - 타겟 넘버

타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴..

[javaScript] 프로그래머스 - 연속된 부분 수열의 합

연속된 부분 수열의 합 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열..

[javaScript] 프로그래머스 - 여행경로

여행경로 https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. ticke..

[javaScript] 프로그래머스 - 단어 변환

단어 변환 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot",..

[JAVA] 백준 8911 거북이

문제 상근이는 2차원 평면 위에서 움직일 수 있는 거북이 로봇을 하나 가지고 있다. 거북이 로봇에게 내릴 수 있는 명령은 다음과 같이 네가지가 있다. F: 한 눈금 앞으로 B: 한 눈금 뒤로 L: 왼쪽으로 90도 회전 R: 오른쪽으로 90도 회전 L과 R명령을 내렸을 때, 로봇은 이동하지 않고, 방향만 바꾼다. 명령을 나열한 것을 거북이 로봇의 컨트롤 프로그램이라고 한다. 상근이는 자신의 컨트롤 프로그램으로 거북이가 이동한 영역을 계산해보려고 한다. 거북이는 항상 x축과 y축에 평행한 방향으로만 이동한다. 거북이가 지나간 영역을 모두 포함할 수 있는 가장 작은 직사각형의 넓이를 구하는 프로그램을 작성하시오. 단, 직사각형의 모든 변은 x축이나 y축에 평행이어야 한다. 아래 그림에서 거북이는 가장 처음에 ..

[javaScript]뽑기 당첨 확률 (누적 확률, 랜덤 뽑기)

// 각 등수별 남은 개수와 총 개수 const prizes = [ { rank: 1, remaining: 2, total: 5 }, { rank: 2, remaining: 1629, total: 4000 }, { rank: 3, remaining: 1965, total: 5000 }, { rank: 4, remaining: 4030, total: 10000 }, { rank: 5, remaining: 4033, total: 10000 } ]; // 등수별 확률 및 누적 확률 계산 const probabilities = prizes.map(prize => prize.remaining / prize.total); const cumulativeProbabilities = probabilities.reduce..

[python] 10816 숫자 카드 2 (Hash)

문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,0..