일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- goland
- 오블완
- GIT
- 캡슐화
- esbuild
- blank import
- 디자인패턴
- elasticsearch
- Intellij
- Kubernetes
- typescript
- replication lag
- javascript
- RDS
- context7
- AI
- 구조체
- 관측 가능성
- GoF
- 통합 로깅 시스템
- golang
- sqs fifo queue
- Infra
- MSA
- database/sql
- AWS
- logging
- 티스토리챌린지
- go-sql-driver
- go
- Today
- Total
목록Information Technology (327)
Fall in IT.

안녕하세요. 오늘은 UML, 클래스간의 관계에 대해서 알아보겠습니다. UML(Unified Modeling Language)이란? 1997년 OMG(Object Management Group)에서 표준으로 채택한 소프트웨어를 모델링 할때 사용하는 언어이다. 개념을 설명하기 위해 사용되기도 하고 구현된 시스템의 구조를 설명하기위해 사용되기도 한다. 소프트웨어 모델링이란? - 다른 사람들과의 의사소통 또는 설계 논의 - 전체 시스템의 구조 및 클래스의 의존성 파악 - 유지보수를 위한 설계 문서 UML의 종류 UML은 크게 두 종류의 다이어그램이 존재한다. 1. 구조 다이어그램 (Structure Diagram) 2. 행위 다이어그램 (Behavior Diagram) 구조 다이어그램 시스템의 개념, 관계 등의..

Composite Pattern 컴포짓 패턴 그룹 전체와 개별 객체를 동일하게 처리할 수 있는 패턴 클라이언트 입장에서 ‘전체’나 ‘부분’이나 모두 동일한 컴포넌트로 인식할 수 있는 계층을 만든다. (Part-Whole Hierarchy) 예를들어, 가방에 물건(아이템)이 5가지 존재한다고 생각해보자. 물 립밤 향수 노트북 안경 물건들은 각각 쓰임새는 다르지만, 그에 해당하는 이름과 가격이 정해져있다. 이때 우리는 물건의 각각의 가격과 가방안에 든 모든 물건들의 가격을 알고 싶다고 할 경우에 컴포짓 패턴을 유용하게 사용할 수 있다. 가방 → 컴포지트를 나타내고 컴포지트는 안에 컴포넌트들을 갖고 있다. 컴포넌트 → 물, 향수 등이 해당되고 컴포지트에 기능 실행을 요청하면 컴포지트는 포함하고 있는 컴포넌트들..

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의 서브넷..
안녕하세요. 오늘은 TLS와 HTTPS에 대해 간단하게 알아보겠습니다. TLS란? TLS (Transport Layer Security)는 인터넷에서 정보를 암호화해서 송수신하는 프로토콜 넷스케이프 커뮤니케이션스사가 개발한 SSL(Secure Sockets Layer)에 기반한 기술로 국제 인터넷 표준으로 인정받은 프로콜이다. 표준에 명시된 정식 명칭은 TLS이지만 아직도 SSL이라는 용어가 많이 사용되고 있다. 흔히 SSL이라고 불리는 용어들은 대부분 TLS라고 보면 된다. (SSL은 TLS의 과거 명칭이다. SSL 3.0이 TLS의 1.0 기반이 되었다.) TLS를 사용해 암호화된 연결을 하는 HTTP를 HTTPS라고 한다. 보안된 웹 사이트 주소는 HTTPS로 시작하고 기본 포트는 443번을 사용한..

안녕하세요. 오늘은 아주 간단하게 AWS 인프라를 구성해보고 로컬 컴퓨터에서 SSH tenneling을 사용해서 Private Subnet 영역에 위치한 서버 컴퓨터(EC2 인스턴스)에 접속하는 것까지 실습해보도록 하겠습니다. 대상 AWS 인프라 구성에 어려움을 겪고 계신 분 VPC, Subnet은 default로만 사용해보신분 기본적인 네트워크 구성을 알고 싶으신 분 목표 조금은(?) 보안을 신경쓰면서 아래와 같은 아주 간단한 인프라를 구성해보자 목차 사용한 AWS 리소스와 간단 개념 인프라 구성에 대한 설명 실습 사용한 AWS 리스소와 간단 개념 사용한 리소스 VPC (Virtual Pricate Cloud) Subnet IGW (Internet Gateway) NAT EC2 AZ (Availabil..

안녕하세요. 오늘은 Github 계정 엑세스 토큰 생성 방법에 대해서 정리해보겠습니다. Github 계정 엑세스 토큰은 언제 사용할까? git을 사용해서 push/clone와 같은 작업을 할때 필요하다. 예를들면, CI & CD 파이프라인을 구축하는데 스크립트에서 특정 저장소를 clone받거나 push하고자 하는 일이 생길 수 있다. 확인 방법 Github 우측 상단에 프로필을 선택한 후, 아래쪽에 Settings를 선택한다. 좌측 하단에 Developer settings를 선택한다. 좌측 메뉴에서 Personal access tokens -> Tokens를 차례로 선택한다. 우측에 Generate new token을 클릭한다. 원하는 옵션을 선택하고 토큰을 생성한다. 모두 즐거운 코딩하세요~