이 글은 헤드퍼스트 디자인패턴을 Golang으로 표현한 글입니다. 목차 1. 전략 패턴의 정의 전략 패턴은 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해 줍니다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다. 이게 뭔 개소리야. 쉬운 말로 하면 자주 변경되는 부분과 변하지 않는 부분을 분리하여 관리하자! 입니다. 고객의 요구, 사양변경 등의 이유로 발생하는 변화에 유연하게 대응하기 위한 설계입니다. 2. 핵심 원칙 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다. 상속보다는 구성을 확용한다. (Golang에는 상속이 없습니다.) 구현보다는 인터페이스에 맞춰서 프로그래밍한다. 3. 오리 문제 3-1. 스펙 모..
이 글은 https://golangbyexample.com/function-golang-complete-guide/을 번역 및 재가공하여 작성하였습니다. 목차 1. 기본문법 1-1. 제약조건 함수명은 숫자로 시작할 수 없습니다. 대소문자를 구별합니다. 대문자로 시작하는 함수는 외부에서 불러올 수 있습니다. 1-2. 형태 func 함수명(파라메터) 반환값 { // 내용 } 2. parameter 파라메터 뒤에는 타입을 적어야 합니다. func sum(a int, b int) int { return a + b } 같은 타입인 경우 생략할 수 있습니다. func sum(a, b int) int { return a + b } 3. return return값은 복수일 수 있으며 아래와 같이 받을 수 있습니다. 여..
이 글은 https://golangbyexample.com/understand-if-else-statement-golang/, https://golangbyexample.com/switch-statement-golang/, https://golangbyexample.com/for-loop-in-golang/ 을 번역 및 재가공하여 작성하였습니다. 목차 1. 조건문 1-1. 기본문법 package main import "fmt" func main() { age := 29 if age = 18 && age < 40 { fmt.Println("청년") } else { fmt.Println("노년") } } 다른 언어를 경험했던 분들에게 ..
이 글은 Constant in Go (Golang) - Welcome To Golang By Example을 번역 및 재가공하여 작성하였습니다. Constant in Go (Golang) - Welcome To Golang By Example This is the chapter 9 of the golang comprehensive tutorial series. Refer to this link for other chapters of the series – Golang Comprehensive Tutorial Series Next Tutorial – For LoopPrevious Tutorial –Functions Now let’s check... golangbyexample.com 목차 1. 정수 선언 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bbwED4/btrvH0IFtWF/AJl2qy5DlgilD2QkPjY2qK/img.png)
목차 들어가기 전에 처음 쿠버네티스를 공부할 때는 쿠버네티스만 하면 끝날 줄 알았습니다. 하지만 인기 있는 오픈소스가 애드온이 없을 리가 없지요. 한 번에 익혀야 할 지식이 너무 많아서 버거운 것이 사실입니다. 또한 교육자료에서는 샘플 코드를 기준으로 가르치기 때문에 실제 환경에서 어떻게 구성해야 하는지 시행착오를 많이 겪어야 했습니다. 때문에 오늘은 쿠버네티스 애드온의 Production환경 구축에 대해서 하나하나 풀어가보겠습니다. 가능한 helm을 이용해서 설치합니다. helm을 먼저 설치해주시기 바랍니다. https://helm.sh/docs/intro/install/ Installing Helm Learn how to install and get running with Helm. helm.sh 이..
이 글은 Variables in Go (Golang) - Welcome To Golang By Example의 글을 번역 및 재가공하여 작성한 글입니다. 목차 1. 명명 규칙 변수명은 오직 문자 또는 _ 로 시작할 수 있습니다. 그다음으로는 모든 숫자와 문자, _ 를 사용할 수 있습니다. 대소문자를 구분합니다. Golang의 키워드는 사용할 수 없습니다. 길이 제한은 없습니다. 2. 변수 선언 2-1. 초기값이 없는 단일 변수 선언 package main import "fmt" func main() { var number int var str string var flo float64 var boolean bool fmt.Println(number, str, flo, boolean) } 결과는 0, 빈문자..
개발환경에서 간단하게 확인하는 글들은 인터넷에 많이 있었습니다. 그래서 실제 Production 환경을 구성하면서 겪었던 문제점들과 어떻게 해결했는지에 대해서 적어보려고 합니다. 여기에 남긴 방법이 정답은 아니며 더 좋은 방법을 찾아가고 있습니다. 1. 2022.03.11 - [개발/Kubernetes] - [Production] 쿠버네티스 Addon 설정 2. Github Action, Gitops 레포지토리, ArgoCD를 활용한 CI/CD 구성 3. Argo Rollouts를 이용한 Blue / Green 배포 4. MSA에서 Blue / Green 배포를 사용한다면 같은 배포 환경끼리 통신하는 방법 5. SaaS 앱에서 서브도메인으로 사용자를 구분할 때 컨테이너에서 서브도메인 정보를 얻는 방법
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kT8Cn/btrvu3l6jkr/GOfG4T3hAKkhHSBrQ1urdk/img.png)
DB형상관리툴? 테이블 생성, 수정, 삭제 및 기본 데이터 입력 등의 DB를 구성하는 SQL이력을 관리해주는 프로그램입니다. 테이블 단위로 SQL문을 관리해주는 것이 좋습니다. 아래 비교 예제를 통해서 살펴보다 보면 이해가 쉬울 것입니다. 들어가기 전에 MariaDB를 이용하여 작업하겠습니다. docker run --rm --name mariadb -p 3306:3306 -e MARIADB_ROOT_PASSWORD=my-secret-pw -d mariadb:latest Flyway DB형상관리를 검색하면 가장 먼저 나올 정도로 많이 사용되는 툴입니다. 특징 sql 파일명 규칙이 있습니다. 장점 지정한 스키마가 없으면 자동생성합니다. 다른 폴더에 저장되어 있더라도 버전명 순서에 따라 실행됩니다. 문서에 적..
- Total
- Today
- Yesterday
- k8s
- Traefik
- S3
- HMAC
- kubernetes
- CloudFront
- 드래곤라자
- istio
- kiali
- AWS
- 달러구트 꿈 백화점
- jaeger
- grafana
- cka
- eks
- production
- Prometheus
- 쿠버네티스
- 전략패턴
- golang
- DB형상관리
- liquibase
- VPC
- flyway
- minikube
- 프로덕션
- cloudflare
- IAM
- Constant
- Auto Scaling
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |