일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- System Design
- GoF
- gitops
- Bastion Server
- 디자인패턴
- goroutine
- UnBuffered channel
- golang
- Lambda@Edge
- notification system
- 알림 시스템
- AWS
- 클래스 관계
- image resizing
- 시스템 설계
- go
- GoF 디자인패턴
- tenneling
- 대규모 시스템 설계
- Buffered channel
- 윈도우키보드
- Kubernetes
- AWS Infra
- 컴포지트패턴
- Golines
- Infra
- Logrus
- argocd
- Live Template
- Helm V3
- Today
- Total
Fall in IT.
안녕하세요. 오늘은 네트워크 기본 지식 몇 가지(?)에 대해서 알아보겠습니다. 알아볼 내용 IP Address IPv4 / IPv6 Router Public / Private IP Address NAT Port forwarding Dynamic / Static IP Address IP Address 란? 다른 사람에게 전화를 하기 위해서는 전화번호가 필요한 것 처럼 컴퓨터 간의 통신을 하기 위해서는 주소가 필요한데 이를 IP 주소라고 한다. IPv4와 IPv6 란? 컴퓨터 간의 통신을 하기위해 필요한 IP주소는 두 가지 버전이 있는데 IPv4와 IPv6가 있다. IPv4는 32비트의 형태로 구성된 IP 주소이다. 약 42억개의 주소를 가질 수 있는데 인터넷에 연결되는 기기의 수가 기하급수적으로 늘어나면서..
안녕하세요. 오늘은 입력받은 문자열에 중복된 문자가 존재하는지 확인하는 알고리즘을 작성해보겠습니다. (아래 알고리즘은 Golang 언어를 사용하므로 언어에 따라 다를 수 있습니다) 사전지식 문자열 집한인 문자열을 순회할 수 있는가? 한글과 영문 모두 문자열 순회할 수 있는가? (index 순회를 할 경우 구분 필요, range로 순회할 경우 rune타입으로 변환하여 순회하기 때문에 상관없다) rune 타입에 대하여 알고 있는가? (rune은 유니코드를 표현하는 타입으로 int32 타입의 별칭과 같다) 유니코드 인코딩에서 한글은 3byte를 사용하고 영어는 1byte를 사용한다. 유니코드와 아스키코드의 개념 문제 문자열이 주어졌을때 이 문자열에 같은 문자가 중복되어 존재하는지 확인하라 자료구조를 사용하지 ..
안녕하세요. 오늘은 데이터베이스 테이블간의 식별관계와 비식별관계에 대해서 간단하게 알아보겠습니다. 테이블간의 관계 설정 예를들어, 데이터베이스에서 유저테이블과 주문테이블간의 관계는 1대N 관계이다. 왜냐하면 한명의 유저는 여러번 주문을 할 수 있기 때문이다. 이때 두 테이블 간의 관계를 정의해야하는데 비식별관계로 정의할수도 있고, 식별관계로 정의할수도 있다. 식별관계 부모 테이블(=참조되는 테이블)의 기본키를 자식 테이블(=참조하는 테이블)의 기본키로 이용하는 방법을 말한다. 위의 예에서는 유저테이블이 부모테이블이 되고 자식 테이블이 주문테이블이 된다. 비식별관계 부모 테이블(=참조되는 테이블)의 기본키를 자식 테이블(=참조하는 테이블)의 외래키로 이용하는 방법을 말한다. 식별관계와 비식별관계의 차이점 ..
안녕하세요. 오늘은 Golang에서 Singleton Pattern을 구현하는 방법에 대해서 간단하게 알아보겠습니다. Singleton Pattern이란? 이 패턴은 인스턴스가 하나만 존재해야 하는 경우 사용된다. (예를들어서, DB 인스턴스나 Logger와 같은 인스턴스가 이에 해당할 수 있다.) 구현 방법 1. Mutex를 사용하는 방법 var lock = &sync.Mutex{} type single struct { } var singleInstance *single func GetInstance() *single { if singleInstance == nil { lock.Lock() defer lock.Unlock() if singleInstance == nil { fmt.Println("[Mu..
안녕하세요. 오늘은 Go 1.18 버전에서 추가 된 generic을 사용해보도록 하겠습니다. Generic에 대한 개념은 여기서 확인해주시기 바랍니다. Generic 사용 전 (source code) interface를 사용하여 스택을 구현한 경우 package main import "fmt" type stack struct { data []interface{} } type Stack interface { Push(data interface{}) Pop() interface{} Get() []interface{} } func New() Stack { return &stack{ data: []interface{}{}, } } func (s *stack) Push(data interface{}) { fmt...