일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- apollo router
- 사설 ip
- 티스토리챌린지
- AWS
- Infra
- Buffered channel
- goland
- notification system
- 윈도우키보드
- GoF 디자인패턴
- Kubernetes
- 오블완
- Logrus
- gitops
- m4 pro
- 배포 파이프라인
- intellij ide
- GoF
- 대규모 시스템 설계
- 컴포지트패턴
- golang
- go
- UnBuffered channel
- 디자인패턴
- System Design
- http 413
- 배포 프로세스
- Intellij
- body size
- elasticsearch
- Today
- Total
목록기타 (87)
Fall in IT.
안녕하세요. 오늘은 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 분석이 끝났을때) 발생하는 이벤트로 ..
안녕하세요. 오늘은 Mac에서 간단한 shell script를 만들고 해당 스크립트가 전역(모든 경로)에서 동작하도록 하는 방법을 알아보겠습니다. Mac에서 전역 실행될 script를 설정하는 방법 루트 경로에 전역으로 동작시킬 쉘스크립트가 저장될 디렉터리를 하나 생성한다. 필자는 $HOME(/Users/mac) 경로에 bin 디렉터리를 생성하였다. 간단하게 hello world를 출력하는 파일(test_script)을 만들고, 아래 명령어를 사용하여 실행가능한 파일로 권한을 변경한다. $ chmod +x test_script 필자는 zshell을 사용하므로 .zshrc 파일 하단에 전역으로 동작하고자하는 경로를 등록한다. PATH=$PATH:$HOME/bin ($HOME 대신 직접 경로를 적어도 무방하..
SSH란? Secure Shell의 약자 손쉽게 PC에 접근하는 방식을 제공하기 위해 만들어진 프로토콜 SSH의 역할 인증 (Authentication) 사용자와 서버를 이증하는 역할을 한다. public key와 private key를 사용하는 비대칭 암호방식을 사용한다. private key는 외부 유출없이 가지고 있고 public key만 네트워크를 통해 전달해놓고 인증하는 방식이다. 클라이언트에서 서버에 접속할때 사용자를 인증해야 하는데 이때 전통적인 패스워드 인증방식과 더불어서 사용된다. 암호화 (Encryption) SSH는 네트워크를 통해 전달되는 데이터를 암호화한다. 그래서 누군가 중간에 데이터를 가로채더라도 내용을 알 수 없다. 무결성 (Integrity) 네트워크를 통해 전달받은 데이터..