25년 3월 근황 정리
·
일상
오랜만의 블로그마지막 포스트를 작성한 시점부터 1년 반이 지났다.그동안 블로그를 아예 생각하지 않은건 아니었는데, 이런 저런 이유로 쓰지 못했다.대학 졸업부터 취업 준비, 첫 취업, 이직, 이사등등 여러가지 일이 있었는데 오랜만에 다시 정리해보려한다.대학 졸업졸업한지 1년도 더 넘은 시점에서, 이 글을 쓰는것도 웃기긴한데 그래도 써본다. 영원히 오지 않을것 같은 대학교 졸업을 하게 됐다.나는 친구들보다 대학을 1년 늦게 입학했었다. 정확히는 수능을 다시 보고 싶어 다니던 대학을 1학기만 다녔었다.그래서 따지고보면 2017년부터 2023년까지 7년을 대학생으로 지냈다.입학때부터 생각했던게 있는데, `내가 졸업할 때면 27살일텐데 그날이 올까? 안왔으면 좋겠다` 였다.그래서 마지막 3학년 4학년에는 학기가 ..
[소마] 프로젝트 8월 회고
·
소마
8월 회고록 7월에 이어 두번째 회고록 작성이다. 벌써 시간이 한달이 지났다니 믿기지 않는다. 지난 7월에는 한창 개발에만 집중했었다면, 이번 8월은 이것저것 신경쓸게 많았었던 같다. 아 그리고 프로젝트 메인 캐릭터가 태어났다! 무엇을 했는가 8월에는 무엇을 했을까요? 프론트엔드 연동 및 배포 본격적인 프론트엔드 연동을 위해 API 엔드포인트를 다시 정리했다. 프론트엔드가 SSR 방식의 Next.js를 사용해 API 엔드포인트가 겹치는 현상이 발생했다. 이에 프론트엔드 팀원과 조율해가며 고쳤다. 그리고 드디어 도메인 구입을 했다! 프로젝트 이름이 You Quiz 에서 Quiz it으로 변경됨에따라, .it 도메인이 굉장히 끌렸다. 하지만,,,, quiz.it 도메인은 이미 누가 선점하였고 결국 팀 내부적..
AWS EKS ArgoCD 환경 구축하기 [2/2]
·
Trouble Shooting
지난번 포스트에 이어 작성하겠다. AWS EKS ArgoCD 환경 구축하기 [1/2] ArgoCD란? ArgoCD는 CD 도구 중 하나로, GitOps 방식의 배포를 도와주는 오픈소스이다. 현재 프로젝트에서 CI 환경은 Jenkins ci를 통해 구현되어 있으며, ArgoCD를 통해 완전히 자동화된 CI / CD 환경을 구축 imsongkk.tistory.com ArgoCD Application Application은 ArgoCD가 쿠버네티스 리소스들을 배포하는 기본적인 단위이다. https://argo-cd.readthedocs.io/en/stable/user-guide/application-specification/ Application Specification Reference - Argo CD -..
AWS EKS ArgoCD 환경 구축하기 [1/2]
·
Trouble Shooting
ArgoCD란? ArgoCD는 CD 도구 중 하나로, GitOps 방식의 배포를 도와주는 오픈소스이다. 현재 프로젝트에서 CI 환경은 Jenkins ci를 통해 구현되어 있으며, ArgoCD를 통해 완전히 자동화된 CI / CD 환경을 구축하게 되었다. GitOps란? DevOps 방법론 중에 하나로, 명령형 방식이 아닌 선언형 방식으로 애플리케이션을 배포하는 방식이다. 이전에 Jenkins CI 환경을 구축하면서 Jenkinsfile을 사용했다. pipeline { agent any stages { stage('build') { steps { echo 'building app' } } stage('test') { steps { echo 'testing app' } } stage('deploy') { s..
Jenkins Webhook Multiple branch 빌드 하기
·
Trouble Shooting
Jenkins Webhook 현재 진행하고 있는 프로젝트는 Github Push -> Webhook -> Jenkins Build 과정으로 자동화된 CI 환경을 구축했다. 아래 포스트에서 진행한 내용이다. AWS EKS Jenkins 환경 구축하기 [2/2] 하나의 포스트로 담기에는 분량이 너무 많을 것 같아 2개로 나누었다. 이전 포스트에 이어 진행된다. https://imsongkk.tistory.com/75 AWS EKS Jenkins 환경 구축하기 [1/2] Jenkins란? Jenkins는 가장 널리 사용되 imsongkk.tistory.com 그렇게 CI 환경을 구축하고 프로젝트를 개발하던 중, 슬랙에 예상치 못한 메세지들이 날아왔다. dev 브랜치가 아닌 다른 곳에서의 push 슬랙으로 날아..
[소마] 프로젝트 7월 회고
·
소마
7월 회고록 본격적으로 소마 프로젝트를 시작한 달이었기에, 이것저것 개발할게 많았던 7월이었다. 집 밖에 거의 안나가고 하루종일 개발이랑 공부만 했었다.... 팀에 합류했을 때는 백엔드 개발을 맡았었지만, 8월에 배포하기로 팀 내부적으로 합의를 해서 개발의 속도와 협업을 위해 인프라쪽을 메인으로 작업했었던 것 같다. 아 그리고 AWS 사옥에서 3일동안 교육을 받았다. 센터필드 건물이 너무 좋아서 3일내내 꼭 여기서 일하고 싶다는 생각이 계속 들었다. 무엇을 했는가 7월엔 무엇을 했을까요? AWS EKS 클러스터 구축 우리 팀은 인프라를 쿠버네티스로 관리하기로 결정했다. 관리상의 편의를 위해 AWS의 Managed k8s인 EKS를 사용하기로 했다. 쿠버네티스는 프로젝트 시작전에 사람들과 스터디도 하고 책..
ALB Ingress Controller로 여러 개의 Ingress 처리하기
·
Trouble Shooting
AWS ALB Ingress Controller ALB Ingress Controller는 k8s 클러스터내에 정의한 Ingress 리소스를 관리하기 위한 컨트롤러이다. Ingress만 정의해주면 알아서 해당 Ingress를 처리할 ALB를 동적으로 프로비저닝 해준다. 클러스터에 설치하기 AWS는 controller를 설치하는 방법으로 Helm Chart 와 manifest yaml 파일을 제공하고 있다. 기존에 인프라를 테라폼과 Helm으로 관리하고 있었어서, 본 포스팅은 Helm Chart를 사용한다. Helm Chart가 아닌, 일반적인 manifest yaml 파일로도 설치하는 방법은 아래 링크를 참고하자. https://docs.aws.amazon.com/ko_kr/eks/latest/userg..
MSA 환경에서 Swagger 서버 구축하기
·
Trouble Shooting
Swagger Swagger는 API 명세들을 시각화 해주는 프레임워크이다. 더 많은 설명은 아래 공식 문서에서 확인할 수 있다. https://swagger.io/ API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster. swagger.io 현재 Spring Rest Docs를 이용하여 테스트 기반으로 YAML 형식의 API 명세를 뽑아내고 있는 상황이다. 하지만 프론트엔드 팀원에게 YAML 파일을 그대로 던져주면 보기에도 불편하고 계속 파일을 주고 받아야 한다. 따라서 우리는 ..
AWS EKS Jenkins 환경 구축하기 [2/2]
·
Trouble Shooting
하나의 포스트로 담기에는 분량이 너무 많을 것 같아 2개로 나누었다. 이전 포스트에 이어 진행된다. https://imsongkk.tistory.com/75 AWS EKS Jenkins 환경 구축하기 [1/2] Jenkins란? Jenkins는 가장 널리 사용되는 CI / CD 오픈소스 자동화 도구이다. Master와 Agent로 나뉘어져 있으며 Master는 구성 및 설정들을 저장하고 빌드를 관리한다. Agent는 실제로 빌드를 수행하는 노드 imsongkk.tistory.com Jenkins와 Github Webhook 연결하기 현재 우리 팀은 Github을 통해 소스코드를 관리하고 있다. 따라서 CI 자동화를 위해 Github Webhook을 이용해 특정 브랜치에 Push나 Merge가 일어날 경우..
AWS EKS Jenkins 환경 구축하기 [1/2]
·
Trouble Shooting
Jenkins란? Jenkins는 가장 널리 사용되는 CI / CD 오픈소스 자동화 도구이다. Master와 Agent로 나뉘어져 있으며 Master는 구성 및 설정들을 저장하고 빌드를 관리한다. Agent는 실제로 빌드를 수행하는 노드이며 빌드 결과를 Master에게 전송한다. 빌드 구성을 위한 여러가지 플러그인이 많고 관련 문서들도 많이 있다는 장점이 있다. Jenkins를 왜 도입하는가? CI / CD 툴의 장점으로는 테스트 및 배포를 자동으로 할 수 있다는 것이다. 우선 진행하고 있는 프로젝트에서는 총 4개의 서비스가 있어 각각이 jar 파일로 빌드가 되어야 한다. 매번 명령어를 통해 수동으로 jar 파일을 뽑아내고 도커 이미지를 빌드하고 배포하려면 관리상의 불편한점이 많다. 따라서 우리는 프로젝..