일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS Infra
- Lambda@Edge
- Logrus
- 알림 시스템
- Buffered channel
- gitops
- 클래스 관계
- golang
- 대규모 시스템 설계
- Helm V3
- argocd
- go
- 시스템 설계
- Bastion Server
- tenneling
- Live Template
- notification system
- 컴포지트패턴
- Kubernetes
- Golines
- 윈도우키보드
- image resizing
- goroutine
- System Design
- Infra
- AWS
- 디자인패턴
- UnBuffered channel
- GoF
- GoF 디자인패턴
- Today
- Total
Fall in IT.
Git commit message 관리 (with. rebase) git을 작업 이력을 저장하는 용도로만 사용하다보니 commit 이력이 지저분해지기 시작했고 코드리뷰가 어려워지기 시작했다. 또한, 특정 시점으로 코드를 rollback 하려고 했더니… 내가 원하던 시점을 도무지 찾을 수가 없었다. 아, 그리고 하나 더 말하자면 release 배포 후 release note를 자동 불러오기 했을때 특정 기능을 개발하는동안 올려두었던 commit message들도 죄다 올라와서 어떤 기능이 추가됐고 변경되었는지 알아보기 어려웠다. 이런 이유들로, Git commit message 관리가 필요하다고 느꼈다. 1. 최소한의 메시지 작성 규칙 1) 소스코드를 보지 않고 커밋 메시지만으로 어떤 변경사항이 있었는지 ..
안녕하세요. 오늘은 Go언어에서 Golines라는 툴을 사용해서 보기좋게 포맷팅하는 방법을 알아보겠습니다. Go언어는 개발자의 생산성 향상에 초점을 두고 설계되어 기본적으로 gofmt이라는 소스코드의 스타일을 자동으로 포맷팅해주는 툴을 제공합니다. 다만, 아쉬운점은 소스코드 한 라인의 최대길이에 따라서 자동으로 줄바꿈을 해주는 기능이 없다는 것.. 그래서 찾게 된 툴이 golines입니다. Golines란? golines는 Go 소스코드에서 긴 줄을 줄이는 포맷터이다. 적용방법 Goliens 툴 설치하기 $ go install github.com/segmentio/golines@latest Goland > Preferences 클릭 (cmd + , 키로 접근 가능) 좌측에 도구 > 파일 검사기를 선택합니..
안녕하세요. 오늘은 GoLand(IntelliJ) IDE에서 라이브 템플릿을 사용하는 방법에 대해서 알아보겠습니다. 라이브템플릿이란? IntelliJ IDE에서 제공하는 기능으로, 테스트코드와 같이 반복적으로 작성되는 코드를 템플릿 형태로 만들어두고 단축키를 사용해서 쉽게 불러오는 기능을 말한다. 라이브템플릿 적용방법 아래에서는 GoLand IDE(IntelliJ에서 제공하는 IDE)를 사용하고 Go 언어로 개발할때 사용할 Repository Test Template을 만들어보도록 하겠습니다. 1. cmd + , 단축키를 누른다. 2. 좌측 에디터 선택 -> 라이브 템플릿 선택 -> 우측에 Go를 선택하고 +버튼 선택 3. 템플릿 텍스트 입력 type $Template$RepositoryTestSuite..
안녕하세요. 오늘은 Kubernetes를 말할때 빠지지않고 등장하는 Helm에 대해서 알아보도록 하겠습니다. Helm이란? Kubernetes 패키지 매니저 도구 다양한 애플리케이션(tomcat, fluentd 등)을 Kubernetes에 쉽게 배포하도록 도와줌 Kubernetes에 애플리케이션을 쉽게 관리(배포, 업데이트) 하도록 도와주는 도구 Helm은 kubectl과 같이 Kubernetes master 노드의 API Server를 통해 애플리케이션을 배포하고 관리하는 일을 수행한다. Helm V2까지는 Kubernetes 환경에 Helm Client(agent)와 연동될 Tiller Server를 설치해야했으나, V3 부터는 Kubernetes API 직접 통신하는 방식으로 변경되었다. Helm이..
안녕하세요. 오늘은 지난번에 구축한 인프라를 바탕으로 Private Subnet 영역을 새롭게 추가하고 2개의 가용영역에 RDS 인스턴스를 추가해 다중 AZ 배포를 통해 고가용성을 달성해보겠습니다. RDS(Amazon Relational Database Service)란? RDS는 AWS에서 제공하는 관계형 데이터베이스 서비스이다. 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장을 할 수 있는 관리형 서비스 모음입니다. 인프라 구성 인프라 구성은 아래와 같다. (이전에 실습한 인프라를 바탕으로 시작합니다. 해당 내용은 여기서 확인 가능합니다.) 가용영역 a와 b에 RDS 인스턴스를 생성할 서브넷 영역을 생성한다. 즉, a영역에 10.0.100.0/24, b영역에 10.0.200.0/24의 서브넷..