분류 전체보기

· 클라우드
클라우드 네이티브와 도커까지 알았다면 드디어 쿠버네티스에 대해 알아갈 차례이다. 이번 글에서는 쿠버네티스의 등장 배경과 개념, 구성요소와 각각의 특징을 알아볼 것이다. 쿠버네티스는 왜 등장했는가? 앞선 글에서 도커의 개념에 대해 알아보았다. 도커가 등장하면서 컨테이너 기반의 배포 방식이 보편화되고, 많은 서비스들이 이를 사용하기 시작했다. 점점 Image가 많아지면서 관리해야 할 컨테이너와 서버들이 많아지게 되었다. 즉, 엔지니어가 신경써야 할 것들이 너무 많아져서 힘들었다... 엔지니어는 여기서 가만 있을 수는 없었다. 고민 끝에 떠올린 생각, "반복적인 일들을 자동화하자!" 컨테이너들을 자동으로 관리할 도구(컨테이너 오케스트레이션 툴)를 필요로 하게 되었고, 이때 Kubernetes가 등장하게 되었다..
· 클라우드
앞선 글에서 클라우드 네이티브에 대해 알아보았다. 본격적으로 쿠버네티스에 들어가기 전, Docker에 대해 설명하고자 한다.  도커란 무엇인가컨테이너 하면 빼놓을 수 없는 것이 Docker이다. 도커는 쉽게 말해, 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술이다. 애플리케이션의 실행에 필요한 환경을 하나의 Image(이미지)로 모아두고, 이 이미지를 사용해 다양한 환경에서 애플리케이션 실행 환경을 구축하고 운영하기 위한 오픈소스 가상화 플랫폼이다.     도커 주요 용어  도커 클라이언트도커를 사용하기 위한 커맨드 라인 도구도커 클라이언트를 통해 도커 호스트와 상호작용하고 도커 이미지를 관리, 도커 컨테이너를 실행, 중지, 삭제  도커 호스트 ( = 도커 서버)도커 이미지를 저장하고 도커 컨..
· 클라우드
쿠버네티스를 알기 위해서는 '클라우드 네이티브' 라는 개념을 알아야 한다. '클라우드 네이티브'는 무엇인가? 애플리케이션 개발 환경과 인프라 구조는 생산성과 민첩성을 높이는 방향으로 변화해왔다. 이러한 변화에 따라 업계 주류로 자리 잡은 트렌드가 바로 '클라우드 네이티브'이다. 쉽게 말해서, 클라우드의 장점을 최대한 활용할 수 있도록 애플리케이션을 개발하고 구축하고 실행하는 방식이다.   클라우드 네이티브 구성요소클라우드 네이티브를 대표하는 것들은 데브옵스(DevOps), 마이크로서비스(MSA), 컨테이너, CI/CD라고 할 수 있다. DevOps먼저 데브옵스(DevOps)는 여러 도구들을 표준화하하여 효율성, 협력, 속도, 안정성을 개선하는 방식이다. 개발(Development)과 운영(Operatio..
· PS/BOJ
먼저, 출발을 위해서 무조건 첫 주유소에서는 주유를 해야 한다. 지금까지 가장 저렴한 가격을 배열에 저장하는데, min_price[i-1]와 price[i]를 비교해서 더 저렴한 가격을 min_price[i]에 저장한다. 배열 min_price에 저장된 가격과 주유소 간의 거리 배열 len을 각각 곱하면 최솟값이 나온다. #include #include #include #include using namespace std; long long len[100001] = { 0, }, price[100001] = { 0, }, min_price[100001]; int main() { int n; cin >> n; for (int i = 0; i > len[i]; for (int..
· PS/BOJ
이 문제는 주어진 식에서 괄호를 적당히 쳐서 결과를 "최솟값"으로 만드는 것이다. 최솟값을 만드는 방법은 마이너스(-)가 한 번 나오면, 그 이후의 값을 모두 빼버리면 된다. 마이너스(-)가 한 번 나왔으면 isMinus를 true로 바꾸어주고 num에 저장된 숫자를 빼준다. #include #include #include using namespace std; int main() { string S; cin >> S; int ans = 0; string num; bool isMinus = false; for (int i = 0; i
· PS/BOJ
S의 값을 최소화하기 위해서는, A 배열에서 가장 큰 값과 B 배열에서 가장 작은 값을 곱해주어야 최소화 할 수 있다. 따라서, A 배열은 오름차순, B 배열은 내림차순으로 바꾸어 서로 곱하면 된다. #include #include #include using namespace std; int cmp(int x, int y) { return x > y; } int main() { int n, k; cin >> n; int a[51], b[51]; for (int i = 0; i > a[i]; } for (int i = 0; i > b[i]; } sort(a, a+n); sort(b, b+n, cmp); int ans = 0; for (int i ..
· PS/BOJ
이번 문제는 가치의 합이 주어졌을 때 그 합을 이루는 최소한의 동전 개수를 구하는 문제이다. 따라서, 그리디 알고리즘으로 풀 수 있다. 간단하게, 그리디 알고리즘은 각 단계에서 최적의 선택을 하는 방식으로 문제를 해결하는 방식이다. 알고리즘 풀이법은 1단계 선택절차를 통해 현 상태에서 최적의 선택을 하도록 한다. 2단계 적절성 검사를 통해 문제의 조건을 만족하는지 확인한 후 답을 도출한다. 최소한의 동전을 사용하려면, 최대한 가장 화폐단위가 큰 동전을 사용하면 된다. 가치의 합 K를 단위가 가장 큰 동전부터 나누어 개수를 세어주면 된다. #include #include #include using namespace std; int main() { int n, k; cin >> n >> k; vector a..
· PS/BOJ
이번 문제는 정수 N을 입력했을 때 N을 1로 만들기 위해 필요한 최소한의 연산 횟수를 출력하는 문제이다. (N은 1보다 크거나 같다.) 문제에서는 아래의 3가지 조건을 제시했다. 1. X가 3으로 나누어 떨어지면, 3으로 나눈다. 2. X가 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다. 무슨 말이냐하면, 1인 경우 그대로 0, 2인 경우 2/2 = 1과 2-1 = 1 두 가지가 존재한다. 다른 예로는 3이 1이 되려면, (3-1)/2 = 1과 3/3 = 1 두 가지가 존재한다. X에 따른 최소 연산 수를 계산해보면, 아래와 같다. 1 2 3 4 5 6 7 8 9 10 0 1 1 2 3 2 3 3 2 3 점화식을 정리해보면, dp[i] = dp[i/2] - 1 dp[i] = dp[i/3] - 1..
· 클라우드
1. Docker 대신 웹 서버를 사용하는 방법 파일 시스템 내의 index.html을 읽을 수 있도록 해야 한다. 1. 웹 서버는 80번 포트에서 접속을 대기하고 있다. 2. 아래의 웹 브라우저 주소를 입력하면 80번 포트로 연결된다. 3. 대기 중인 웹 서버에 요청이 전송된다. 4. 웹 서버는 index.html 파일을 읽어 웹 브라우저에게 index.html 내부 코드를 전송한다. 2. Docker로 웹 서버 구축하기 - 이론 웹 서버를 직접 사용하려면, 운영체제에 웹 서버를 구축해야 한다. 그러나 Docker를 이용하면 훨씬 쉽게 할 수 있다. 아래의 명령어를 사용하면, 웹 서버가 컨테이너에 설치된다. docker run httpd 이러한 컨테이너가 설치된 운영체제가 바로 Docker Host 이..
· 클라우드
1. docker hub에서 이미지 받아오기 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 2. 이미지 Pull 여부 확인 docker images [OPTIONS] [REPOSITORY[:TAG]] 3. 새로운 Container 실행 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 4. 생성한 컨테이너 정보 조회 docker ps 만약, 컨테이너를 하나 더 만들고 싶다면, 아래의 명령어를 실행하면 된다. docker run --name 이름 httpd 아래는 2개의 컨테이너를 실행하여 정보를 조회한 결과이다. 5. 실행중인 컨테이너 사용 중지 docker stop 이름 위는 stop 명령어로 사용을 중지하고 docker ps를 통해 컨테이너를..
소-은
'분류 전체보기' 카테고리의 글 목록 (10 Page)