일상

퇴사를 했다 그런데 이제 이직을 곁들인

퇴사 이스트소프트를 다닌지 1년째 되던 어느날 퇴사를 했다. 대충 일수로 계산해보니 1년 하고도 일주일 정도 되었다. 처음 정규직으로 근무했던 회사여서 입사와 퇴사가 굉장히 어색했다 ㅎㅎ 한 두달 정도는 내가 도입했던 작업들 정리와 인수인계 문서 작성 등으로 바빳던것 같다. 뜻밖에 기회가 생겨 급하게 나간감은 없지 않아 있지만, 처음 퇴사를 하니 혼란했다. 좋았던 점 기회 내가 불편하다고 생각하고, 개선했으면 좋겠다고 제시한 부분들은 대부분 반영이 잘 되었다. 팀원들에게 기존 방식이 가지고 있는 문제점, 이를 해결 할 수 있는 대안을 정리해서 발표하면 내가 서비스에 적용 시킬 수 있어서 재밌었다. 그 대안 중에는 Jooq, liquibase, Prometheus, Loki와 같이 처음써보는 기술들도 많아..

2021.12.18 게시됨

개발/devops

로드밸런서에 대해 알아보자

회사에서 L4 스위치와 로드벨런서 관련된 이슈들을 경험해보며, 로드벨런서에 대한 정리가 필요해보여 기록하게되었습니다. 도입 로드벨런싱 자체는 L2, L3, L4, L7 모두 가능합니다. 하지만 일반적으로 로드벨런서는 L4 Switch를 말하며, 이 글에서 설명하는 LB 또한 L4 Switch 관점에서 작성하였습니다. 1. 로드벨런서의 주요 역할 로드벨런서의 사용하는 이유는 아래와 같습니다. 1.1 부하 분산 서비스의 규모가 커지다되면 단일 서버로는 모든 트래픽을 버틸 수 없습니다. 이런 경우 보통 서버를 두대 이상 띄우는 Scale-Out 형태로 서버를 증설하게 됩니다. 이때 늘어난 N 대의 서버에 부하를 분산시키는걸 부하 분산이라고 하며, 아래의 알고리즘 중 하나를 택해 사용됩니다. 부하분산 알고리즘 ..

2021.10.13 게시됨

개발/Spring

스프링에서 편리하게 Master / Slave 분기 처리하기

도입 실제 서비스를 운영하다 보면 데이터베이스가 여러 개의 노드로 분산되어 Master / Slave (또는 Multi Master) 구조로 이루어져 있는 경우가 많습니다. 이때 어플리케이션 레벨에서 어떻게 DataSource를 분기처리 할 지 고민이 많았습니다. 이 경우에 크게 두가지 방법으로 나뉘는데요 1. RW / RO 별로 데이터소스를 만들어 개발자가 이를 인지하며 개발을 하거나 2. 단일 데이터 소스에서 트랜잭션의 분기처리를 Lazy 하게 처리하는 방법 으로 두가지가 있습니다. 저는 스프링의 [ AbstractRoutingDataSource ] 를 사용하여 2번 방법으로 진행하였으며, 코드는 [깃허브]에 있습니다. 먼저 결과를 알려드리자면, 2번 방식으로 진행했을 경우 아래와 같이 동작하게됩니다..

2021.08.27 게시됨

개발/devops

프로메테우스에 대해 알아보자

도입 회사에서 서버 개발자로써 생활하다보니 다양한 장애 이슈를 마주하게 되었고, 이를 해결하다 보니 메트릭을 수집하여 서버의 상태를 확인 할 수 있는 모니터링 시스템이 필요하게 되었습니다. 이를 위해 프로메테우스 + 그라파나를 통해 메트릭 모니터링 시스템을 구축하였고, 그 과정에서 공부한 점을 정리하게 되었습니다. 관련 부분은 [Github] 에서 확인 할 수 있습니다. 프로메테우스란? 프로메테우스란 SoundCloud사에서 만든 오픈소스 모니터링 시스템입니다. 로그가 아닌 시스템의 상태를 나타내는 메트릭 정보를 시계열 형태로 저장하며 PromQL 이라는 SQL 형태로 저장할 수 있습니다. 쿠버네티스 환경에서도 프로메테우스 사용을 장려하고 있으며, 주로 Grafana를 통해 프로메테우스의 메트릭 정보를 ..

2021.08.07 게시됨

일상/회고

2021년 상반기 회고

라고 썼지만 지금은 8월을 넘어가고 있다. 올해가 끝나기 전에 먼저 상반기에 있던 일을 정리하도록 해야겠다. 직장인이 되니 정말 시간이 빨리간다 ㅋㅋ - 메인 이벤트 요약 1. 회사 생활                                        - 2020.12~2. 사이드 프로젝트 "만날까" 마무리    - ~ 2021.043. 생애 첫 오픈소스 컨트리뷰터 달성   - 2021.04 1.  회사 생활?  2021년 부터 취준생에서 신입 개발자가 되어 열씸히 회사를 다니고 있다. 백엔드 개발 포지션이며, 정직원으로는 처음 회사를 다니기 때문에 재밌는 일이 참 많다.내가 일하다보니 불편해서 도입한 것도 많고, 이 부분은 팀내 세미나 등을 통해서 공유하기도 했다. 몇가지 기억나는 부분 중에서는 ..

2021.07.19 게시됨

개발/RDB

Galera Cluster에 대해 알아보자

도입 현재 다니는 회사에서 RDBMS로 MariaDB를 사용하고 있습니다.서비스가 규모가 있다보니 단일 DB로는 버틸 수 없기 때문에Galera Cluster로 클러스터를 구성하여 사용하고있습니다. 오늘은 MariaDB/MySQL에서 사용되는 동기식 멀티마스터 클러스터인 Galera Cluster에 대해 알아보도록 하겠습니다. 갈레라 클러스터를 간단히 도커로 세팅을 해보았습니다. [Github 링크] Galera Cluster 란 갈레라 클러스터는 동기 방식의 복제구조를 사용하는 멀티마스터 RDB 클러스터입니다. 단, 논리적으로는 완전 동기이지만 실제 write 와 tablespace에 commit하는 과정이 별개이고각 노드간에는 비동기로 동작합니다.갈레라 클러스터에서 이를 virtually synch..

2021.06.19 게시됨