이번 포스팅에서는 인프라 구성을 변경할 것이고, 테라폼 프로젝트에 이 변화를 어떻게 적용하는지를 학습할 것이다. 새로운 리소스 생성 이전 포스팅에서는 main.tf에 VPC 네트워크를 생성하는 코드만 작성했었다. 이번엔 인스턴스를 만들어 주기 위한 코드를 main.tf에 추가로 작성한다. # main.tf terraform { requir...
이코테 Ch.8 그래프 이론(Graph Theory) (1)
서로소 집합 수학에서 서로소 집합은 공통원소가 없는 두 집합을 의미한다. 가령 {1,2}와 {3,4}는 서로소 관계다. 서로소 집합 자료구조는 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조를 의미한다. union과 find이 두 개의 연산으로 조작이 가능하다. union(합집합) 연산은 두 개의 원소가 포함된 집항르 하나의...
Terraform practice - 설치 및 테스트
테라폼(Terraform)은 IaC에서 가장 많이 사용되는 툴이다. 사실 이론적인 내용을 먼저 공부하려고 했는데, 이론적인 공부를 하는것보다 일단 사용해보고 하는게 좋을거같다는 충동적인 생각이 들었다. 그래서 우선 공식 홈페이지를 보면서 설치 작업을 수행하고, 이후 실습을 적당히 진행해본 후 테라폼에 대한 설명이 담긴 포스팅을 별도로 작성하려 한다. ...
Infra - Infrastructure as Code(IaC)
GCP에서 인스턴스들을 여러번 생성해보면서 느낀건 생각보다 이 작업들이 편하진 않다는 것이다. 물론 VM ware나 Virtual box같은 곳에서 보다야 편하긴한데 GCP 콘솔이 생각보다 그렇게 빠릿한 느낌도 들지않고, 만져야할 설정들도 꽤 많고, 수정사항이 있으면 기존 머신 이미지를 복사해놓은 것을 폐기하고 새로이 다시 만들어야하기 때문에 여러모로...
이코테 Ch.7 최단 경로(Shortest Path) 알고리즘 (2)
미래도시 N의 범위가 100이하인 전형적인 플로이드 워셜 알고리즘 문제이다. 이 문제는 1번 노드에서 K를 거쳐 X로 가는 최단거리를 구해야한다. 따라서 (1번 노드에서 K노드까지 최단 거리 + X까지 최단거리)의 값을 구하면 된다. # 무한값으로 10억 INF = int(1e9) # 노드의 개수와 간선의 개수 입력 n, m = map(int, ...
이코테 Ch.7 최단 경로(Shortest Path) 알고리즘 (1)
최단 경로 알고리즘은 가장 짧은 경로를 찾는 알고리즘을 의미한다. 코딩테스트에서 사용되는 최단 경로 알고리즘의 종류는 다익스트라와 플로이드 워셜 알고리즘이 있다. 다익스트라 최단 경로 알고리즘 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산하는 알고리즘이다. 그리디 알고리즘의 한 종류로 분류되기 때문에 매 상황에서 가장 비용이 적...
Hadoop Practice - Erasure Coding(EC)
개요 이 포스팅은 EC에 대해 공부하면서 혼자 생각하던 내용을 기록으로 남기기 위해 작성한다. 내용의 정확성보다는 내 추론과 실제 EC의 사용결과를 비교해서 얻어낸 개인적인 결론에 관한 이야기들 뿐이다. RS-6-3-1024k 정책을 사용하기 위해 이전에 GCP에 구축해 뒀던 고가용성 하둡 클러스터에 6개의 데이터 노드를 추가 확장시켜 총 9개...
이코테 Ch.6 DP(Dynamic Programming) 알고리즘 (3)
바닥 공사 가로의 길이가 N, 세로의 길이가 2인 바닥을 덮개로 모두 덮는 경우의 수 구하는 문제이다. 덮개의 가지수는 총 3개이고 아래와 같다. 1 X 2 2 X 1 2 X 2 """ 입력조건 : 첫째 줄에 N이 주어진다. 출력조건 : 첫째줄에 2XN 크기의 바닥을 채우는 방법의 수를 796,796으로 나눈 나머지 출력 =>...
GCP Composer - GCP All-Open 방화벽 체크 자동화 (2)
지난 포스팅에서는 On-premise 환경에서 Airflow로 GCP All Open 방화벽 체크 자동화를 진행했었습니다. 이번 포스팅에서는 GCP에서 제공하는 Airflow 솔루션인 Composer을 사용하여 같은 작업을 진행해보고 Composer와 Github repo를 연결까지 해볼 계획입니다. GCP composer 시작하기 Cloud Co...
이코테 Ch.6 DP(Dynamic Programming) 알고리즘 (2)
1로 만들기 정수 X가 주어질 때 정수 X에 사용할 수 있는 연산은 4가지 X가 5로 나누어떨어지면 5로 나누기 X가 3으로 나누어떨어지면 3으로 나누기 X가 2로 나누어 떨어지면 2로 나누기 X에서 1빼기 정수 X가 주어질때 1로만드는 최소 연산 횟수 구하기 n = int(input()) d = [0] * 100001 f...