분류 전체보기

Devops

Clean Code를 구현하기 위해 Sonarqube로 정적 코드 분석을 해보자

Sonarqube는 Clean Code를 구현하기 위한 정적 코드 분석 도구입니다. Clean Code란 안전하고, 유지보수가 용이하며, 믿을 수 있는 코드를 뜻하는 Sonarqube에서 정의한 용어입니다. 즉 Sonarqube를 통해서 모범적인 소프트웨어를 만들기 위한 높은 수준의 코드 품질을 유지할 수 있다는 뜻입니다. 게다가 CI 파이프라인과의 통합으로 자동화된 코드 리뷰를 수행할 수 있으며, 스크립트나 IaC코드 또한 분석이 가능합니다. 이번 포스팅에서는 Sonarqube가 무엇인지, 그리고 Sonarqube의 구축 및 사용 방법을 알아보도록 하겠습니다. 1. 정적 코드 분석 vs 동적 코드 분석 앞서 Sonarqube는 정적 코드 분석을 위한 도구라고 말씀드렸습니다. 정적 코드 분석이란 어떠한 ..

행사 및 세미나 활동

Google Developer Expert(GDE) 프로세스 후기 및 회고

Google Developer Experts가 되기 위한 과정을 모두 밟은 후, 이 과정에 대한 후기와 회고를 글로 남기기 위해 이 글을 포스팅합니다. 결과와 관계 없이 제 자신을 뒤돌아볼 수 있었던 좋은 경험이었으며, GDE 및 Googler와 소통할 수 있었던 귀중한 시간이었습니다. 이 글을 통해서 GDE가 되려는 분들께 도움이 되었으면 합니다. 1. GDE란? GDE는 Google Developer Expert의 약자로 특정 분야에 전문성을 가지고 있으며, 지식을 함께 공유하고자 하는 전문가를 말합니다. 자신이 가진 전문 분야에 따라 그 분야의 GDE로 활동할 수 있는데요. 현재는 Android, Firebase, Machine learning, Go, Flutter, GCP 등의 18개 전문 분야..

Devops

SealedSecret & Reloader를 활용한 Gitops 방식의 Kubernetes Secret 관리 및 배포

Kubernetes의 Secret은 Container의 구동에 필요한 민감 정보를 저장하기 위한 오브젝트입니다. 그래서 Secret 오브젝트는 DB Password 등의 민감 정보를 담고 있지만 데이터를 base64로 인코딩하기 때문에 정보가 누출될 수 있다는 위험이 존재합니다. 이 때문에 Kubernetes Secret은 Gitops 기반의 배포 방식을 사용할 경우에도 Secret manager 등 별개의 저장소에 따로 저장해서 사용해야 하는 불편점이 있었습니다. AWS ASM, Hashicorp Vault 등의 Secret manager 서비스를 사용하지 못하는 환경이라면 Kubernetes Secret을 관리할 수 있는 선택지가 더 좁아지는 셈입니다. 그래서 Kubernetes Secret을 Sec..

AWS

S3 + Cloudfront를 이용해 www redirect를 구현한 Static Website 호스팅하기

유저들이 웹 사이트에 접속할때 주소를 입력하는 방법은 여러가지가 존재합니다. Google에 접속하고자 할때 누군가는 www.google.com으로 접속할 수도 있지만, 누군가는 그저 google.com 으로 접속하고는 합니다. 혹은 심지어 https://www.google.com 을 입력해서 접속하는 유저도 존재합니다. 이렇게 유저들이 다양한 방법으로 웹 사이트에 접속하지만, 웹 사이트를 운영하는 입장에서는 결국 하나의 엔드포인트로 접속을 유도해야 합니다. 유저들의 다양한 접속 주소에 모두 대응하는 것은 현실적으로 어렵기 때문입니다. 이 경우 모든 유저들의 접속 경로를 단일화하기 위해서 사용할 수 있는 방법이 페이지 리다이렉션입니다. 페이지 리다이렉션을 통해서 여러 유저들의 최종 접속 경로를 단일 엔드포..

AWS

AWS EKS의 IP 주소 관리: 쿠버네티스 클러스터의 네트워킹 고려사항

EKS(Elastic Kubernetes Service)는 AWS에서 제공하는 관리형 쿠버네티스 서비스입니다. EKS는 다양한 방면에서 리소스를 관리해주기 때문에 쿠버네티스 클러스터를 편리하게 운영할 수 있는데요. 그 중 AWS VPC CNI는 overlay network를 간편하게 구성해주는 장점을 제공합니다. 본 포스팅에서는 AWS VPC CNI의 특징과 AWS VPC CNI Plugin을 설치한 EKS 클러스터의 운영 시 IP Address management 고려 사항에 대해서 기술하겠습니다. 1. AWS VPC CNI란? AWS VPC CNI는 AWS의 ENI(Elastic Network Interface)를 활용한 Pod networking plugin입니다. EKS 클러스터는 해당 CNI를 ..

행사 및 세미나 활동

Google Kubernetes Engine 입문 강의 준비 후기

2023년 7월 중순 경 Googke Kubernetes Engine을 주제로 입문자용 강의를 촬영해달라는 요청이 왔다. 강의 촬영은 받을때마다 부담을 떨치기가 쉽지 않은 요청이다. 언제든 수정할 수 있는 아티클과 달리, 강의는 한 번 촬영하면 번복할 기회 없이 영원히 남기 때문이다. 하지만 이번 강의는 실시간으로 진행되는 라이브 강의가 아니라는 점(굉장히 부담스럽다..), 그리고 약 150분 가량의 비교적 짧은 강의라는 점 덕분에 부담이 적게 느껴져 수락하게 되었다. 그래서 약 2주간의 시간을 가지고 Google Kubernetes Engine 강의를 준비하게 되었다. 강의를 준비하기 위해 가장 처음 했던 일은 리소스를 찾아보는 것이다. 다른 강의에서는 어떤 주제를 다뤘는지, GKE를 다뤄봤던 사람들이..

Dev

Go로 커맨드를 실행할 수 있는 CLI를 구현해보자 (With Cobra)

CLI(Command Line Interface)란 터미널을 통해 사용자와 컴퓨터가 상호작용하는 인터페이스를 말합니다. CLI는 그래픽을 통해 직관적으로 사용할 수 있는 GUI(Graphic User Interface)와 달리 명령줄로만 입력을 전달할 수 있다는 점이 불편할 수 있으나, 빠르고 가볍다는 장점으로 인해 현재에도 널리 사용되고 있습니다. 이런 CLI 환경에서 애플리케이션을 구동하기 위해 바이너리를 실행하는 것은 다소 불편할 수 있습니다. 왜냐하면 바이너리를 다른 설정으로 실행하고자 할시, 그 설정을 가진 버전으로 다시 빌드하고 실행해야 했기 때문인데요. 이 같은 문제를 해결하기 위해 "Command"라는 개념을 도입해 바이너리의 특정 로직을 실행하거나 구성 설정을 변경할 할 수 있습니다. ..

Linux

Linux에서 프로세스가 실행될때 커널에선 어떤 일이 일어날까?

Linux는 리누스 토르발즈가 만들어 오픈소스로 배포한 UNIX 계열 운영체제입니다. 현재 수 대부분의 프로그램이 Linux 환경에서 실행되고 있다고 할 수 있을 정도로 Linux는 현대 IT 생태계에서 중요한 위치를 차지하고 있는데요. 하지만 정작 Linux의 동작 원리에 대해서는 모르고 사용하는 경우가 많은 것 같습니다. Linux를 잘 사용하고 다루기 위해서는 Linux의 핵심인 커널에 대해서 파악하고 있어야 합니다. 특히 네트워크 인프라를 다뤄야 하는 엔지니어는 Linux 커널을 모르고서는 트러블슈팅이나 디버깅에 큰 제약이 있을 수 밖에 없을 것 입니다. 그렇다면 Linux 커널의 동작은 어떻게 파악할 수 있을까요? 그 시작은 Linux 프로세스가 실행될때 커널에서 어떤 일이 일어나는지 확인하는 ..

Devops

Argo 사용해보기 (2) Standalone DEX로 Argo Workflow에서 SSO 구현하기

본래 Argo Workflow는 Oauth2.0 인증을 수행하기 위해 Argo CD에 내장되어 있는 DEX를 사용하게끔 되어 있습니다. (이하 Argo CD DEX) 하지만 Argo CD DEX를 사용하지 않고 Argo Workflow에서 자체적으로 DEX를 사용해 Oauth2.0 인증을 수행해야 하는 상황이 존재합니다. 예를 들면 Argo CD와 별개의 Identity Service를 운용하고자 하며, Argo Workflow 자체 OIDC 인증이 지원하지 않는 기능을 사용해야 할 때(EX. Google Groups), Argo Workflow만의 DEX를 구축해야 합니다. 이번 글에서는 Argo Workflow의 자체 DEX를 사용해 인증을 수행하는 방법에 대해 알아보겠습니다. 1. Overview ..

Devops

Argo 사용해보기 (1) Argo Project로 CI/CD Pipeline을 구성해보자

Argo project는 Git-Ops 및 CI/CD Pipeline 구성을 위한 Kubernetes-native 도구입니다. Argo project는 현재 CNCF(Cloud Native Computing Foundation)에서 Graduate 등급의 Maturity를 가지고 있으며, Argo Workflows / Argo CD / Argo Rollout / Argo Events 등의 프로젝트들로 이루어져 있습니다. 각 프로젝트들의 목적과 활용성은 다음과 같습니다. Argo Workflows : 직렬 및 병렬로 구성된 Job을 처리할 수 있는 Workflow Engine입니다. Kubernetes 환경에서 Workflow를 실행하는데 특화되어 있습니다. Argo CD : Git-Ops 기반의 CD(C..

Seungwoo Lee
'분류 전체보기' 카테고리의 글 목록 (2 Page)