일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Helm V3
- argocd
- 클래스 관계
- go
- GoF 디자인패턴
- Kubernetes
- 컴포지트패턴
- Buffered channel
- golang
- Golines
- AWS
- Bastion Server
- Lambda@Edge
- 윈도우키보드
- 디자인패턴
- UnBuffered channel
- 시스템 설계
- goroutine
- System Design
- Infra
- image resizing
- AWS Infra
- 알림 시스템
- 대규모 시스템 설계
- gitops
- notification system
- Live Template
- Logrus
- GoF
- tenneling
- Today
- Total
Fall in IT.
안녕하세요. 오늘은 Go에서 Slice에서 중복을 제거하는 방법에 대해서 알아보겠습니다. Go에서는 Map을 사용해서 Slice의 아이템 중복을 제거할 수 있습니다. Slice의 아이템을 순회하면서 map에 존재하지 않다면 삽입, 존재한다면 pass 하는 방식을 이용합니다. (이때, map의 값으로 빈구조체(struct{})를 넣는 이유는 빈구조체의 경우 메모리를 차지하지 않기 때문입니다.) 샘플 코드 func deleteDuplicateItem(arr []string) []string { ret := []string{} m := make(map[string]struct{}) for _, val := range arr { if _, ok := m[val]; !ok { m[val] = struct{}{} ..
안녕하세요, 오늘은 HTML 태그 중 A tag의 download 속성을 사용해 파일을 다운로드할때 발생하는 문제에 대해서 알아보겠습니다. 상황 AWS에 업로드된 파일의 URL을 a tag의 download 속성을 이용하여 다운로드 하고자 한다. 그런데, AWS의 올라간 파일명과 다르게 다운로드 되도록하고자 한다. a tag의 download 속성을 사용하여 filename을 명시해주었다. 다운로드 문제 a tag의 download 속성에 설정한 filename이 적용되지 않았다. 원인 확인해보니 a tag의 download 속성은 두 가지 조건이 충족되어야했다. Same Origin URL (동일 출처) blob, data schemes 에서만 작동 해결방안 http header에 Content-D..
Service Object 란? 파드에 접근할 수 있는 정책을 정의하는 개념. 서비스는 기본적으로 자신의 클러스터 IP를 가지고 있고 이 서비스를 파드에 연결하면 서비스의 아이피로 파드에 접근이 가능하다. 파드에도 자신의 클러스터 IP를 가지고 있다. 그렇다면 왜 서비스를 통해서 파드에 접근해야할까? 그 이유는, 파드라는 존재는 언제든지 죽을 수 있고 재생성될 수 있다. 파드의 아이피는 가변적이라 재생성되면 변한다. 그렇기 때문에 파드의 아이피는 신뢰성이 떨어지고 서비스 오브젝트는 지우지 않는 한 삭제되지 않는다. 따라서, 특정 파드에 일관된 아이피를 통한 접근을 가능하게 하기 때문에 서비스를 사용한다. Service의 특징 고정된 IP 사용 가능 파드를 다양한 방식으로 외부에 노출 가능 트래픽 분산 가..
목적 GraphQL Code Generator를 도입하여 클라이언트의 생산성을 높이고 유지보수를 쉽게 할 수 있도록 한다. 문제 필자의 회사에서는 다양한 클라이언트 서비스를 운영하고 있고, 각각의 클라이언트 서비스에 제공되는 데이터는 GraphQL API를 통해 마이크로서비스 형태로 제공하고 있다. 클라이언트 서비스는 모두 TypeScript를 사용해서 GraphQL 스키마에 대응되는 Type 또는 Interface를 선언하여 사용하고 있었다. 이때, GraphQL 스키마의 변경 또는 추가가 발생할 경우 클라이언트의 모든 서비스들은 Type 또는 Interface를 재정의하거나 새롭게 정의해야하는 문제가 있었다. 요구사항 정의된 GraphQL 스키마를 generate해서 모든 프로젝트에서 공통으로 사용할..
소개 AWS 환경설정 하는 방법을 알아봅니다. 아래 내용은 AWS 계정이 존재한다는 가정하에 진행됩니다. 배우게 될 내용 계정 보안 설정 AWS CLI 설정 Chapter 1. 계정 보안 설정 소개 보안을 위해 루트 사용자 계정의 보안설정을 진행하고, 계정에 로그인할 사용자를 AWS IAM을 통해 생성해본다. 배우게 될 내용 루트 사용자 계정 보안 설정 방법 추가 IAM 사용자 설정 구현 루트 사용자 보안 설정 루트 계정으로 로그인 한 후, IAM 서비스에 들어가면 루트 사용자 보아을 설정하라는 메시지가 나타난다. MFA 활성화를 클릭하면 MFA 설정 화면이 나온다. 가상 MFA 디바이스를 선택하고 사용자의 휴대폰에서 사용 가능한 인증 앱을 설치한 후 연동한다. 추가 사용자 및 역할 설정 루트 계정은 일..