프로그래밍을 좀 공부해본다면 테스트 코드를 작성하는 것이 중요하다는 내용을 많이 듣게 된다. "테스트 코드를 작성하면서 코드를 짜야 버그가 적다", "유닛 테스트 코드를 꼭 추가해야한다", "TDD를 도입해 테스트를 통해 기능구현을 해야한다" 등의 이야기를 들었을 것이다. 그동안 나는 사실 테스트 코드에 대한 큰 효용을 못느끼는 사람이었다. 기능 구현하는데도 시간이 부족한데, 테스트 코드를 언제 작성하고 있으며, 기능 구현을 눈으로 하면 되지 않나? 기능에 대해서는 이미 요구사항 명세로 나와있고 이를 구현만 하면 되지 않는가? 라는 생각을 가지고 있었다. 하지만 최근에 생각이 많이 바뀌었다. 회사에서 In-House 툴을 개발하게 되었는데 일단 먼저 기능을 쭉쭉 구현다가보니 툴이 복잡해지면서 특정 기능이..
쿠버네티스에서 네트워크를 다루다보면 http, https 그리고 tls에 대해서 알아야 올바르게 서비스를 배포하고 관리할 수 있다. 특히 쿠버네티스에서는 tls에 필요한 인증서와 개인키 등을 쉽게 저장하고 관리할 수 있는 configmap과 secret 리소스가 있고, kubectl의 kustomize 기능을 제공하기 때문에 이를 정확히 숙지하면 더욱 전문적으로 쿠버네티스를 운영/관리 할 수 있다. HTTP/HTTPS HTTP (Hypertext Transfer Protocol)는 인터넷에서 데이터를 전송하기 위해 사용되는 프로토콜이다. 그러나 HTTP는 데이터 전송 중에 보안을 제공하지 않으므로, 데이터가 암호화되지 않은 상태로 전송되어 중간에 제3자가 데이터를 가로채거나 조작할 수 있는 한계가 있다...
저번 포스트([네트워크] 쿠버네티스 Ingress가 이상해진 이유)를 살펴보면 마치 Ingress가 Base URL을 날려먹어서 원래 잘되던 서비스가 안 되는 것처럼 적어두었다. 전에는 잘 되는데 HAProxy만 붙였더니 이상해지는 이런 상황이 나는 Ingress에게 있다고 생각했다. 하지만... 네.. 음... 나의 착각이었다. Ingress는 특정 url로 들어오는 트래픽을 넘겨주는 역할에 충실할 뿐이었다. 리다이렉션 되는 target URL을 결정하는 것은 애플리케이션이었다. 즉, Base URL이 날아가는 문제를 해결하기 위해서는 애플리케이션에서 URL의 prefix를 설정해 줘서 특정 URL subpath 아래에서 동작하도록 해야 했었다. 난 이것도 모르고, HAProxy의 설정을 마구마구 만지..
Ingress 이놈. HAProxy를 붙였더니 갑자기 이상하게 안되던 놈. 분명 Control plane이 하나인 클러스터에서는 정상적으로 동작했으나, 쿠버네티스 HA구성을 위해 HAProxy를 붙이자마자 이상하게 예전처럼 라우팅을 해주지 않았다. 원래는 위의 그림과 같이 내가 ingress 리소스를 통해 정의한 라우팅 규칙에 따라서 클러스터 내부에서 돌아가고 있는 서비스에게 외부의 트래픽을 전달해주어야 한다. /argo로 전달되면 ArgoCD로, /grafana면 Grafana로 전달해야 한다. 이때 각 서비스에서는 각각 설정된 url 경로에 따라서 동작하기 때문에 서비스 별로 중복되는 경로가 있을 수 있다. 가장 대표적으로 /login 경로가 있겠다. 대부분의 서비스는 로그인으로 권한 관리를 하기 때..
배경 회사에서 쿠버네티스 HA구성을 해야 하는 일이 생겼다. (정확히는 control plane HA) 나는 HAProxy를 모른다. 그래서 공부를 해보게 되었다. 쿠버네티스 HA 구성? 테스트 환경에서 쿠버네티스 클러스터를 만드는 경우 control plane을 하나로 두고 다수의 worker 노드를 두고 구성한다. 하지만 이런 구성의 경우, control plane 노드가 죽었을 때 쿠버네티스의 상태와 config, secret 등 중요한 정보가 들어있는 etcd의 데이터가 유실될 위험이 있다. 따라서 프로덕션 환경에서는 쿠버네티스 관리의 고가용성을 위해 apiserver를 HA로 구성하고, 중요한 정보의 유실을 방지하기 위해 etcd의 정보의 redunduncy를 확보해야 한다. 이러한 구성은 ku..
오늘(5월 12일 2022년) React Typescript 튜토리얼까지 모두 끝냈다. 이번 졸업 프로젝트를 Typescript로 하게 되면서 자연스럽게 프론트에 관심을 갖게 되었다. 이참에 프론트엔드로 취업을 도전해 볼 수 있는 수준까지 해보려고 여러 가지 공부를 시작했다. 지금까지 공부한 내용을 열거하자면, 함수형 컴포넌트를 사용하는 React Typescript의 기초 문법과 기능 React with Typescript 함수형 컴포넌트 React React를 처음 배운 건 2020년도이다. 그때 생활코딩으로 React를 잠깐 찍먹해봤는데 그때 배운 자료에는 컴포넌트가 class로 만들어져 있는 것을 보면 트렌드가 class로 컴포넌트를 만드는 것이었었나 보다. 이번에도 생활코딩으로 공부했다. 같은 ..
- Total
- Today
- Yesterday
- 프로그래머스
- 알고리즘
- 후기
- github
- 파이썬
- 합격
- 기계식 키보드
- 네트워크
- 루센트블록
- DontTryThisAtOffice
- 코딩테스트
- IT대외활동
- 오픈소스기여
- 개발자
- boj
- python
- DevOps
- K8s HA
- 프론트엔드
- SW마에스트로
- 대전
- 타입스크립트
- 회고
- 백준
- 오픈소스
- 쿠버네티스 HA
- 개발자밋업
- ssi-at
- devcon
- 회사를망하게하는팁
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |