일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http 413
- apollo router
- cosine similarity metric
- Kubernetes
- intellij ide
- AWS
- body size
- javascript
- elasticsearch
- GoF
- 티스토리챌린지
- Infra
- 배포 프로세스
- 구조체
- 캡슐화
- typescript
- 사설 ip
- m4 pro
- 오블완
- gitops
- 배포 파이프라인
- golang
- UnBuffered channel
- 디자인패턴
- go
- goland
- esbuild
- 코사인 유사성 메트릭스
- kube-prometheus-stack
- Intellij
- Today
- Total
목록기타 (89)
Fall in IT.

Git commit message 관리 (with. rebase) git을 작업 이력을 저장하는 용도로만 사용하다보니 commit 이력이 지저분해지기 시작했고 코드리뷰가 어려워지기 시작했다. 또한, 특정 시점으로 코드를 rollback 하려고 했더니… 내가 원하던 시점을 도무지 찾을 수가 없었다. 아, 그리고 하나 더 말하자면 release 배포 후 release note를 자동 불러오기 했을때 특정 기능을 개발하는동안 올려두었던 commit message들도 죄다 올라와서 어떤 기능이 추가됐고 변경되었는지 알아보기 어려웠다. 이런 이유들로, Git commit message 관리가 필요하다고 느꼈다. 1. 최소한의 메시지 작성 규칙 1) 소스코드를 보지 않고 커밋 메시지만으로 어떤 변경사항이 있었는지 ..

안녕하세요. 오늘은 GoLand(IntelliJ) IDE에서 라이브 템플릿을 사용하는 방법에 대해서 알아보겠습니다. 라이브템플릿이란? IntelliJ IDE에서 제공하는 기능으로, 테스트코드와 같이 반복적으로 작성되는 코드를 템플릿 형태로 만들어두고 단축키를 사용해서 쉽게 불러오는 기능을 말한다. 라이브템플릿 적용방법 아래에서는 GoLand IDE(IntelliJ에서 제공하는 IDE)를 사용하고 Go 언어로 개발할때 사용할 Repository Test Template을 만들어보도록 하겠습니다. 1. cmd + , 단축키를 누른다. 2. 좌측 에디터 선택 -> 라이브 템플릿 선택 -> 우측에 Go를 선택하고 +버튼 선택 3. 템플릿 텍스트 입력 type $Template$RepositoryTestSuite..
안녕하세요. 오늘은 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번을 사용한..
안녕하세요. 오늘은 GraphQL 보안과 성능 개선 방법에 대해서 알아보겠습니다. GraphQL 보안과 성능 개선 방법 타임아웃 설정 데이터 개수 제한 쿼리 깊이 제한 쿼리 복잡도 제한 Filed Collection GraphQL로 서버를 만들경우 클라이언트쪽 구현에 더 많은 자유도와 유연성을 부여할 수 있습니다. 여러개의 데이터를 조회할때도 한번의 쿼리로 조회(UnderFetching 해결)가 가능하고, 원하는 필드만 조회할 수 있습니다. (OverFetching 해결) 그러나, 자유도가 높은 만큼 한번의 쿼리에 너무 많은 데이터를 요청하여 문제가 발생할 수 있습니다. 한번에 너무 많은 데이터를 요청할 경우 서버 성능이 떨어질 뿐만 아니라 서비스가 다운 될 수 있습니다. 이런 경우를 대비해서 Graph..

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

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

안녕하세요. 오늘은 맥에서 SSH 공개키를 만드는 방법에 대해서 간단하게 알아보도록 하겠습니다. 많은 Git 서버들은 SSH 공개키로 인증을 하고 있습니다. 사용자의 SSH 키는 기본적으로 사용자의 ~/.ssh 디렉터리에 저장됩니다. 루트 경로에 .ssh 이름의 디렉터리가 존재하지 않을 경우 키를 생성해야합니다. SSH 공개키 만드는 방법 터미널에서 아래 명령어를 입력한다. $ ssh-keygen (Linux나 Mac에는 ssh 키를 생성하는 유틸리티가 기본으로 설치되어 있습니다) 이때 저장될 경로와 암호를 요구하는데 엔터를 쳐서 넘어갑니다. 키를 저장하고 싶은 경로를 입력하고 키의 암호를 입력할 수 있다. 그냥 엔터를 입력할 경우 키는 ~/.ssh 디렉터리 하위에 키가 생성되며 키를 사용할때 암호를 묻..

Docker란 Docker는 컨테이너 가상화 환경에서 애플리케이션을 관리하고 실행하기 위한 오픈소스 플랫폼이다 리눅스 위에서 동작하는것이 특징이며 Go 언어로 만들어졌다. Docker의 특징 이식성 Docker는 기본적으로 애플리케이션이 동작하는 모든 인프라 환경을 컨테이너로 관리한다 애플리케이션 실행에 필수적인 모든 파일 및 디렉터리를 통째로 컨테이너에 담는다 그리고 이 컨테이너의 기반이 되는 Docker 이미지를 Docker Hub에 공유한다 이런 Docker의 특성 때문에 개발 환경에서는 동작하지만 운영 환경에서는 동작하지 않는 리스크를 줄일 수 있다. 상호 운용성 여러 조직이나 시스템과 연계하여 사용할 수 있는 소프트웨어의 특성을 상호 운용성이라고 말한다 Amazon EC2 Container Se..

안녕하세요. 오늘은 DNS 즉, Domain Name System에 대해서 간단하게 알아보고 그와 관련하여 자주 사용되는 용어들을 정리해보도록 하겠습니다. DNS(Domain Name System)란? 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행하는 시스템 DNS 동작 원리 컴퓨터에서 브라우저를 켜고 www.google.com 을 입력한다. 컴퓨터는 컴퓨터 내부에 등록 되어 있는 DNS 서버로 www.google.com에 해당되는 IP 주소를 물어보고 DNS 서버는 해당 도메인의 IP 주소를 알려준다. 컴퓨터는 이를 받아서 IP 주소에 해당하는 컴퓨터에 접속하게 되는 것이다. DNS가 나오게 된 배경 인터넷에 연결 된 컴퓨터 한대 한대를 호스트(host) 라고 한다. ..

안녕하세요. 오늘은 웹 성능 최적화 방법에 대하여 간단하게 알아보도록 하겠습니다. 목표 느린 웹 페이지를 빠르게 만들어보자 목차 로딩 최적화 방법 렌더링 최적화 방법 용어 정리 Navigation Timing Resource Timing (Network) + Processing + Load로 결합된 페이지가 그려지기까지의 과정을 나타낸 그림이다. Resource Timing은 네트워크와 연관 된 부분으로 프론트엔드에서 최적화하기 어렵다. Processing과 Load 부분은 최적화가 가능하다. Critical Rendering Path 브라우저가 하나의 화면을 그려내는 과정을 말한다. DOMContentLoaded Event HTML 파싱이 끝났을때 (DOM Tree 분석이 끝났을때) 발생하는 이벤트로 ..