Terraform 기초: 리소스 만들어보기
·
기초 지식/Terraform
Terraform 실습Terraform 스크립트는 init -> plan -> apply 명령어 순으로 적용하여 리소스를 프로비저닝 할 수 있다.이 순서에 따라서 local device에 txt 파일을 만들어본 후 txt 파일을 업데이트 해보겠다.1. 스크립트 작성Terraform 스크립트는 이전 Terraform:HCL 기본기 에서 살펴본것과 같이 Block 단위로 Resource 와 Argument 를 명시해주면 된다.  나는 terraform-tutorial 이라는 디렉터리를 만들고 그 공간에서 실습을 진행했다.2 terraform initscript 를 적절히 작성한 후 terraform init 을 실행하면 작업공간(terraform-tutorial) 에 .terraform 디렉터리와 .terr..
Terraform 기초: HCL 기본기
·
탐구 생활/Terraform
아무리 HCL 이 쉬운 DSL 이라곤 하지만 정확히 쓰고 읽기 위해서는 최소한의 공부가 필요하다. 우선 Terraform 을 설치하는게 우선이다.1. Terraform 설치 (업그레이드)가장 좋은 방법은 공식 사이트의 설치 가이드를 보고 설치하는 것이다.나는 mac 을 이용하고 brew 를 통해 설치, 삭제, 업그레이드를 관리하는 것이 용이하므로 brew 로 설치했었다. 그 결과 버전 1.8.2 가 설치되어 있는 것을 확인할 수 있었다.$> brew list terraform# /opt/homebrew/Cellar/terraform/1.8.2/bin/terraform$> terraform version# Terraform v1.8.2# on darwin_arm64 24년 11월 17일 기준 terrafo..
Terraform 소개
·
탐구 생활/Terraform
1. Terraform1.1 Terraform 이란?Terraform은 HashiCorp에서 개발한 무료 오픈소스 IAC 도구이다. IAC 개요 및 주요 도구에서 다룬 것과 같이 주로 인프라 프로비저닝에 사용되는 툴로써, 설치 파일은 단일 바이너리로 구성돼 있어서 빠르게 설정할 수 있다.Terraform의 가장 큰 장점 중 하나는 여러 플랫폼(프라이빗 클라우드와 퍼블릭 클라우드)을 아우르는 인프라 배포가 가능하다는 거이다. 예를 들어, 온프레미스 vSphere 클러스터부터 AWS, GCP, Azure 같은 클라우드 솔루션까지 지원한다.1.2 Terraform 과 HashiCorpHashiCorp 는 클라우드 인프라를 효율적으로 관리하고 자동화하기 위한 다양한 도구를 개발하는 회사이다. HashiCorp의..
IAC 개요 및 주요 도구
·
탐구 생활/Terraform
1. IAC(코드형 인프라)란?IAC(Infrastructure as Code)는 클라우드 인프라를 코드로 정의하고 관리하는 방식이다.기존의 클라우드 관리 콘솔을 통해 수작업으로 리소스를 프로비저닝(provisioning)하는 대신, IAC를 통해 코드로 정의하고 실행하여 리소스를 자동으로 생성, 구성, 업데이트, 삭제할 수 있다.IAC는 데이터베이스, 네트워크, 스토리지, 애플리케이션 구성과 같은 다양한 인프라 구성 요소를 코드로 관리할 수 있도록 해준다. 예를 들어, 기존의 셸 스크립트를 사용해도 되지만, 이 방식은 관리와 재사용이 어려우며 유지보수를 위해 개발 기술을 필요로 한다. 이러한 문제를 해결하기 위해 Terraform이나 Ansible과 같은 IAC 도구가 등장했다.2. 주요 IAC 도구 ..
python 사용자 지정 불변 객체를 만드는 3가지 방법
·
탐구 생활/python
사용자 지정 불변 객체이전 글에서는 사용자가 만든 클래스는 모두 가변 객체인것 처럼 설명되었다. 정말 사용자가 만든 클래스는 불변 객체가 될 수 없는 걸까?용자가 작성한 클래스를 불변 객체로 만들기 위해서는 다음의 조건이 충족되어야 할 것이다.새로운 attribute 를 추가하는것을 막는다.기존 attribute 를 변경하는 것 모두가 막는다.값을 기반으로 객체간 동등성을 비교하도록 재정의 한다.1. 새로운 attribute 추가 제한파이썬 객체는 별다른 설정을 하지 않는다면 attribute 를 dict 자료형에 저장한다. 그리고 dict 자료형은 값을 추가, 삭제할 수 있다. 아래의 예시를 보자. 자유로은 attribute 추가class MutableClass: value: str def ..
Python 가변 객체와 불변 객체
·
탐구 생활/python
Python의 가변 객체와 불변 객체Python에서 객체는 가변 객체(Mutable Objects)와 불변 객체(Immutable Objects)로 나눌 수 있다. 이 두 가지는 객체의 값을 변경할 수 있는지 여부에 따라 구분되며, 메모리 관리와 성능에 중요한 영향을 미친다. 1. 가변 객체 (Mutable Objects)특징값(내용)을 변경할 수 있음.동일한 객체를 참조하는 변수는 변경 사항을 공유.대표적인 가변 객체:list 리스트dict 딕셔너리set 세트사용자 정의 클래스 객체예제x = [1, 2, 3] # 리스트 객체 생성y = x # x와 y는 같은 객체를 참조x.append(4) # x의 값을 변경print(x) # 출력: [1, 2, 3, 4]print(y) ..
백준 1725 히스토그램 Java 풀이
·
알고리즘/문제 풀이
heights 를 이중순회하면서 height[j] 문제각 칸의 넓이가 동일한 히스토그램의 높이 값이 주어진다. 이 히스토그램에서 가장 넓은 사각형을 만들었을 때 그 넓이를 출력하라시간 제한: 0.7초데이터 크기:  1  출처: https://www.acmicpc.net/problem/1725 접근히스토그램의 높이값 배열을 heights 라고 하자기본적인 아이디어는 heights 를 하나의 방향으로 순회할때  height[i] 보다  height[i+1] 이 작으면 더이상 height[i] 높이의 사각형을 만들 수 없다는 것이다.부르트포스따라서 부루트포스 접근으로 heights 를 이중순회하면서 height[j] 하지만 이 접근의 시간 복잡도는 O((n * n)) 이다. 1초에 2억번 연산을 한다고 생각하..
백준 11401 이항 계수 3 Java 풀이
·
알고리즘/문제 풀이
문제n 개중에 k 개를 고르는 이항계수(Binomial Coefficient) 를 구하는 문제이다. 결과값을 1,000,000,007 로 나눈 나머지를 출력한다.제약사항: 1  출처: https://www.acmicpc.net/problem/11401접근OutOfMemoryError: Java heap space일단 숫자가 심상치 않게 크다는 것을 알 수 있다. 이항 계수 2에서 사용했던 이항 계수의 정의를 이용한 풀이를 하려면  4,000,000 * 4,000,000 의 long 타입 heap 메모리 공간( 256,000 GB )을 확보해야한다.이정도의 heap 메모리 공간을 일반적인 컴퓨터에게 기대할 수 없는 수준이므로 4,000,000 * 16byte = 0.064GB  의 메모리 공간을 요구하는 ..