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

목적 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 디바이스를 선택하고 사용자의 휴대폰에서 사용 가능한 인증 앱을 설치한 후 연동한다. 추가 사용자 및 역할 설정 루트 계정은 일..

소개 AWS CDK를 사용해서 클러스터를 생성(프로비저닝)하고 CDK8s로 생성된 매니페스트 파일을 배포, kubectl 을 사용하여 애플리케이션 운영하는 방법을 소개한다. (아래에서 작업한 소스코드) 배울 내용 Amazon EKS를 사용하여 단일테넌트 제어 영역이 포함 된 Kubernetes 클러스터를 생성하고 관리형 Amazon EC2 작업자 노드를 시작한다 AWS CDK를 사용하여 Kubernetes 클러스터를 위한 코드형 인프라(IaC)를 구현한다 AWS CDK8S 및 AWS CDK를 통합하여 애플리케이션을 배포한다 kubectl 명령어를 사용하여 클러스터를 운영한다 사전 요구사항 AWS 계정 CDK 설치 Chapter 1. EKS 클러스터 생성 배울 내용 Amazon EC2를 작업자 노드로 사용..
안녕하세요. 오늘은 JavaScript에서 유용하게 사용되는 null 병합 연산자(nullish coalescing operator)에 대하여 알아보겠습니다. null 병합 연산자(nullish coalescing operator)란? 짧은 문법으로 여러 피연산자 중 값이 확정되어 있는 변수를 쉽게 찾을 수 있도록 도와주는 연산자이다. 예제 1 변수 a와 b가 있을때 a가 null이나 undefined가 아니면 a를 그 외의 경우는 b를 대입하는 경우를 생각해보자 // null 병합 연산자 사용 안했을경우 let result = (a !== null && a!== undefined) ? a : b // or let result = a ? a : b // null 병합 연산자 사용한 경우 let resul..
안녕하세요. 오늘은 자바스크립트 개발을 하다보면 보게되는 파일인 package-lock.json, yarn.lock 파일에 대해서 알아보겠습니다. package.json 파일은 무엇인가? package.json 파일은 프로젝트에서 사용된 패키지 의존성 관리를 도와준다. 자바스크립트에서는 패키지 매니저로 npm 또는 yarn을 사용한다. (패키지 매니저는 자바스크립트 프로젝트에서 특정 패키지를 설치하거나 삭제하는데 사용되는 도구를 말한다.) 이때, 설치된 패키지들의 종류와 버전이 package.json 파일에 적혀서 관리된다. 그렇다면 package-lock.json 파일은 무엇인가? 패키지 설치시점과 상관없이 모두 동일한 패키지를 설치할 수 있도록 도와준다. (이를 패키지 잠금 기능이라고 부른다) pac..

개요 AWS CDK란? AWS Cloud Development Kit으로 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스를 모델링 및 프로비저닝 해주는 도구 기존의 yaml, json 형태의 선언적 접근 방식보다 더 개발자에게 친화적인 언어를 사용해서 작성할 수 있다 기존 인프라 구축 방법 Level 1 AWS 관리 콘솔에서 리소스 만들기 Level 2 코드 형태의 명령형 인프라 (aws-cli, aws-sdk 사용하여 deploy script 작성) 문제 발생시 재시도하기 어려움, 동시에 여러명이 스크립트를 실행할 경우 에러 발생 Level 3 코드로 선언하여 인프라 관리 yaml 또는 json 형태의 선억적 접근 방식 사용 Terraform, AWS CloudFormation (AWS 만 지원..

안녕하세요, 오늘은 Go 함수를 사용할때 매개변수로 포인터형 변수를 넘겨줄때와 일반적인 형태의 값을 넘겨줄때의 차이점에 대해서 알아보겠습니다. go의 함수를 사용할때 매개변수로 포인터형 매개변수를 사용하느냐 아니면 일반 자료형을 사용하느냐에 따라서 동작 방식이 달라진다. 포인터형 매개변수를 사용할 경우 값이 복사되지 않고 현재 인스턴스의 주소가 전달되기 때문에 값의 변경이 발생한다. 일반 자료형을 사용할 경우 값이 복사되어 전달되기 때문에 전달된 값의 변경은 일어나지 않는다. 상황에 따라 잘 구분하여 사용해야한다. 샘플 코드 결과 모두 즐거운 코딩 하세요~

helm 쿠버네티스 패키지 매니저 node.js의 npm과 같은 쿠버네티스용 패키지 매니지먼트 도구 헬름을 통한 쿠버네티스 어플리케이션 관리 헬름 차트는 복잡한 쿠버네티스 애플리케이션도 편리하게 정의하여 설치하거나 업그레이드 할 수 있다. 헬름 특징 복잡성 관리 쉬운 업데이트 간단한 공유 롤백 헬름 허브에 공개된 수많은 헬름 저장소의 차트들을 활용하여 쿠버네티스용 소프트웨어를 공유하고 사용할 수 있다. helm의 일반적인 개념 일반적으로 하나의 소프트웨어를 쿠버네티스에 배포하려면 간단하게 컨테이너만을 배포해서는 사용하기 어려운 경우가 많다. 외부로 IP를 노출시키기 위해서 쿠버네티스 서비스를 배포해야하고, 쿠버네티스 pod를 관리할 deployment가 필요하며, 디스크 볼륨과 기타 정책 등 부가적인 부..

안녕하세요. 오늘은 Kubernetes 클러스터 배포 도구인 Argo CD에 대해서 간단하게 알아보겠습니다. Argo CD Argo CD는 GitOps 스타일의 배포를 지원하는 CD 도구이다 Git 저장소의 내용과 쿠버네티스 클러스터를 동기화해주는 역할을 하는 에이전트이다 쿠버네티스 클러스터 내부에서 Pod 형태로 배포가 된다. 특징 애플리케이션 정의, 구성 및 환경은 선언적이어야하며 버전을 제어해야한다. 애플리케이션 배포 및 수명주기 관리는 자동화되고 확인하기 쉽다. 작동 원리 Argo CD는 원하는 애플리케이션 상태를 정의하기위한 소스로 Git repository를 사용하는 GitOps 패턴을 따른다. Kubernetes 매니페스트는 여러 방법으로 지정할 수 있다. (필자는 helm 차트를 사용하였습..

안녕하세요. 오늘은 vscode에서 자동완성 단축키 설정방법에 대해서 알아보겠습니다. 맥북을 사용하는 경우 커맨드 + 스페이스, 쉬프트 + 스페이스 단축키는 시스템 단축키로 사용되고 있기 때문에 단축키를 변경하여 사용하는 것이 좋습니다. vscode 자동완성 단축키 설정방법 키보드 단축키 환경설정 탭으로 들어갑니다. Code -> Preferences -> Keyboard Shortcuts (단축키 cmd + K, cmd + S로도 진입가능) suggest를 검색 합니다. Trigger Suggest의 Keybinding에 원하는 단축키로 변경해줍니다. 필자는 option(alt) + space 단축키를 사용하였습니다. 완료! 모두 즐거운 코딩하세요~