분류 전체보기 40

Go 언어 배우기 (II) - 변수부터 컬렉션까지 (With Python)

목차 이미 익숙한 Python과 새로 배우는 Go의 문법/용어를 대조하면서 내용을 정리하고자 한다. Go vs Python 용법 Golang python 패키지 가져오기 1. import [package] 2. import ( [package A] [Package B]/[Package C] ... ) 1. import [package] 2. from [package] import [module] 표준출력 fmt.Println() print() 변수선언 1. var name [type] 2. var name := [value] 3. const NAME = [value] variable = value 문자열 1. 일반 문자열 : "string", 2. raw string : `string` 1.일반 문자열 ..

Programming/Golang 2020.05.12

(2020-05-06) Automated Testing for Terraform, Docker, Packer, Kubernetes, and More

목차 Terraform, Docker, Packer와 같은 infrastructure code를 Terratest를 이용하여 테스트하는 방법을 소개해주는 강의이다. Terratest를 만든 gruntwork.io의 창업자 중 한명이 직접 강의하는 강의를 해주어서 그런지 설명을 쉽게 잘 해준다. Terraform 기준으로 내용을 정리하겠다. Static analysis (정적 분석) 배포 없이 코드를 테스트하는 것으로, 문법적, 일반적인 에러를 처리할 수 있다. 아래와 같은 카테고리로 분류할 수 있다. Compiler / Parser / interpreter Linter Dry run 1. Compiler / Parser / Interpreter terraform validate, packer valida..

Go 언어 배우기 (I) - 왜, 어떻게?

목차 What is Go? Go는 2009년 구글이 개발한[2] 프로그래밍 언어이다. 가비지 컬렉션 기능이 있고, 병행성(concurrent)을 잘 지원하는 컴파일 언어다 ... Go의 문법은 대체로 C와 비슷하다: 코드 블록들은 중괄호로 둘러싸고 for, switch, if를 포함한 일반적인 제어구조를 가지고 있다. C와 다르게, 한 라인 끝의 세미콜론은 필수가 아닌 옵션이다. 변수 선언은 다르게 작성되고 대개 옵션이다. 형변환은 명시적으로 해야 한다. 병행성 프로그래밍을 다루기 위해 go와 select 키워드가 사용된다. 새로운 타입은 map, 유니코드 문자열, 배열 slice, 그리고 내부 쓰레드 통신을 위한 채널(channel)이 있다. - 위키피디아 Why Go? Go언어를 학습하게 된 계기는 ..

Programming/Golang 2020.05.06

[HackerRank - Arrays] 2D Array - DS

https://www.hackerrank.com/challenges/2d-array/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays 2D Array - DS | HackerRank How to access and use 2d-arrays. www.hackerrank.com 해커랭크사이트의 Interview Preparation Kit, Array 파트의 첫 번째 문제이다. 6 x 6 크기의 배열이 문제에서 주어지게 되는데, 문제에서는 아래와 같은 모래시계 모양의 subnet array 최대값을 구하도록 요구된다. (1이 있는 자리를 보면 알 수 있다) y와 x index를 for문..

[용어정리] CI/CD, BDD

목차 CI/CD, BDD Terraform & Jenkins Study를 하면서, CI/CD라는 용어를 접하게 되었고 (이미 AWS Well Architecture 등을 통해 많이 접하였지만) Terraform의 Testing Tool을 살펴보던 중 Terraform Compliance라는 툴을 통해 BDD라는 용어를 접하게 되었다. 이를 정리하고자 한다. CI(Continuous Integration) 지속적 통합은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 데브옵스 소프트웨어 개발 방식입니다. 지속적 통합은 소프트웨어 릴리스 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 자동화 구성 요소(예: CI 또는 빌드 서비스)와 문화적 구성 요..

Devops/CI, CD 2020.04.28

[DEVOPS] 빌드 자동화 환경 구축 일지 I

목표 1. Terraform을 Jenkins Pipeline을 통해 실행한다. 2. 여러 Account의 AWS 인증정보를 Vault를 통해 안전하게 관리한다. 3. 구축한 환경의 재현이 간단해야 한다. (Docker) 4. 추후 확장이 용이해야 한다. 구성요소 1. Docker - Vault, Consul, Jenkins를 기동시키는 역할 - Docker Compose를 통해 구성 2. Hashicorp Vault & safe - Safe를 통해 좀 더 쉽게 사용할 수 있다. - Vault KV를 통해 Credential 정보를 저장해두고, safe를 통해 Pipeline 중간에 get 해오는 방식으로 활용 - Storage Backend : Consul - Secret Backend : AWS 3. ..

Devops/CI, CD 2020.04.26