지난 6개월

2023년 2월부터 7월까지 6개월 동안의 글또 8기 활동의 마지막 글이다. 패스를 한 번도 쓰지 않고 2주 마다 글쓰기 마쳤다. 6개월 동안 12개의 글을 썼구나. 다시 읽어보면서 어떤 글을 썼는지 살펴보자.

끝

2023.01.29 다시 계획적인 글쓰기를 위해. 글또 8기를 시작하면서 6개월 동안 어떤걸 이루고 싶은지 다짐글을 남겨두었다. 꾸준한 글쓰기와 다양한 사람들에게 긍정적인 영향을 주고 받고 싶다는 생각을 했었다.

2023.02.20 우리 팀에 맞는 Git Branch 전략 선택하기. 팀에서 오랜 기간 Git Flow를 사용했었는데 배포하는 과정에서 생기는 불편함, 비효율, 두려움 등을 없애기 위해 Branch 전략을 개선했던 이야기를 기록해두었다. 지금 어떤 문제가 있고, 이 문제를 해결하기 위한 방법에는 어떤 것들이 있고, 현실적으로 우리팀에 어떤 것들을 적용해볼 수 있을지 스터디를 많이 했었다. 지금 되돌아봐도 정말 잘 했던 것 중 하나인데, Git Branch 전략을 선택하는 많은 사람들에게 도움이 될 만한 글이라 생각해서 뿌듯함이 더 생겼다.

git-branch-strategy

2023.03.04 Feature Toggle 150% 활용하기. Branch 전략을 Github Flow로 바꾸면서 함께 고민했던 내용 중 하나이기도 하고, 처음엔 서버에서 사용하고 있는 설정값들을 배포 없이 바꿀 수 있도록 개발했다가 나중엔 Canary, Permission, Operation 등 다양한 기능으로 확장해서 사용중인 Feature Toggle에 대한 이야기를 썼었다. 덕분에 새로운 기능이나 업데이트된 기능을 사용자에게 안전하고 빠르게 전달하고 있다. 지금은 피쳐 토글링이 팀 프로젝트에 없어서는 안 될 핵심 기능이면서 없다면 이상할 정도의 당연한 기능이 되었다.

feature-toggle

2023.03.23 기술적 겸손함을 가진 개발자되기. 대부분의 신입 개발자분들이 김영한 님의 스프링 강의를 통해 스프링 프레임워크에 대한 탄탄한 기본기를 갖추고 있었다는 걸 알게 되었다. ‘난 내가 가장 많이 사용하고 있는 기술에 대해서 얼마나 깊이 알고 있을까’, ‘아직 배울 게 많구나. 나도 배워야겠다.’, ‘솔직히 그들이 나보다 더 많이 알고 있을 것 같다.’, ‘강의는 어떻고 얼마나 잘 가르치길래 모두가 듣는 건지 궁금하다.’ 등 다양한 생각이 들었고 바로 강의를 신청해서 들어보았다. 대부분 아는 내용이라 2배속으로 빠르게 들을 수 있었는데 아직도 기억에 남는 한 마디. “회사 업무에 익숙해지는 단계에서 성장이 멈추는 개발자와 지속해서 성장하는 개발자의 차이는 기술적 겸손함에 있고, 뛰어난 시니어 개발자가 되려면 기술적 겸손함이 필요하다.” 평소에도 계속해서 부족함을 느끼고 겸손한 자세를 가지는 것이 필요하다고 생각했는데 다시 깨닫게 해줘서 김영한 님께 감사하다는 말씀을 드리고 싶다.

2023.04.07 매일 배포하는 팀이 되는 여정(1) — 브랜치 전략 개선하기. 처음에 우리 팀에 맞는 Git Branch 전략 선택하기 글을 작성하면서 회사 기술블로그에도 올려야겠다는 생각으로 글을 썼었다. 개인 블로그에는 내 마음대로 써도 상관없는데 회사 블로그에는 좀 더 친절하고 두루뭉실으로 하지 않게 써야된다는 부담감이 있었다. 그래도 글감은 어느정도 갖춰져 있어서 글을 작성하는데에 어려움은 없었다. 정말 감사하게 팀원들이 피드백을 많이 줬는데 덕분에 글을 쉽게 다듬을 수 있었다.

2023.04.22 매일 배포하는 팀이 되는 여정(2) — Feature Toggle 활용하기. 위에 Git Branch 전략 개선한 글과 마찬가지로 Feature Toggle 150% 활용하기 글도 “매일 배포하는 팀이 되는 여정” 이라는 주제로 묶어서 발행했다. 글이 발행되고 나서 사내 뿐만 아니라 회사 밖에서도 많은 분들이 관심을 가져주셨고, 미디엄 인기글에도 오르고 채용 서류 지원이 3배 이상 늘었다.

daangn-medium

2023.04.29 사내 JVM 챕터 테크톡 후기. “매일 배포하는 팀이 되는 여정” 글을 작성하면서 기술적 선택의 과정이나 히스토리들을 자세하게 공유할 수 없는 아쉬움이 있었다. 그래서 내부 구성원들에게는 좀 더 자세한 이야기를 공유하면 좋겠다 생각해서 사내 JVM 챕터 테크톡에서 “매일 배포하는 팀이 되는 여정(아직 못다한 이야기)” 라는 주제로 발표를 했다. 다른 회사들에서는 어떤 배포 전략을 사용하고 있는지, 그리고 왜 이런 불필요해 보이는 프로세스가 존재하는지 등을 공유하였다.

2023.05.13 Kafka의 ACKS, ISR 설정에 따른 NOT_ENOUGH_REPLICAS 에러 원인 살펴보기. 어느 날 개발 환경에서 카프카 메시지 발행을 실패했다는 알림을 받았다. 이거 어디서 본 메시지인데.. 하는 생각이 들었는데 기억이 나질 않아서 원인을 찾아보다가 카프카의 Replication, Acks, ISR에 대해서 자세히 알아보았다. 기본적인 개념이지만 매번 클라이언트 사이드에서 사용만 하다보니 잊고 살았는데 자세히 알아보고 학습할 수 있는 기회가 되었다.

kafka-NOT_ENOUGH_REPLICAS

2023.05.22 ThreadPoolTaskExecutor의 waitForTasksToCompleteOnShutdown 속성 알아보기. 새로운 기능을 추가한 후 배치 애플리케이션에서 비동기로 실행되는 작업이 제대로 동작하지 않는걸 발견했다. 간단하게는 배치 애플리케이션에서 실행되는 비동기 작업을 동기로 바꾸면 됐는데, 프로젝트 아키텍처 특성을 해치지 않고 우아하게 처리할 수 있는 방법을 찾아보다가 ThreadPoolTaskExecutor의 shutdown에 대해서 깊이있게 알아볼 수 있었다.

waitForTasksToCompleteOnShutdown

2023.06.17 Kotlin 코드 컨벤션 맞추기(feat. Spotless). Kotlin 프로젝트의 Linting을 위해 ktlint를 사용하고 있었는데 Groovy, Json, Markdown 등 다양한 언어들의 포맷팅도 지원하는 Spotless로 변경했다. Kotlin 이외 다른 언어에 대한 포맷팅이 필요하지는 않았는데 개인적으로 check, auto formatting 등 사용성이 ktlint 보다 좋아서 변경했다.

2023.06.18 모든 일은 때가 있다. 회사 문화의날에 산 책, 철에서 삶을 본다라는 책에 나오는 구절이 마음에 들어서 블로그에 옮겨놓았다. 국제시장 노점에서부터 매출 1조원대의 대한제강으로 성장해오기까지, 대한제강을 50년 넘게 이끈 오완수 회장이 2012년까지 집필한 글들을 모은 자서전인데, 맨땅에서부터 무언가를 일군 이야기들을 현장감 넘치게 묘사하고 있는 책이었다. 오래 빛나는 성공 다운 성공은 오랜 기다림과 정성 끝에 얻어지는 것이라고 한다.

2023.07.01 IntelliJ 안에서 gRPC 호출 테스트하기. IntelliJ IDEA에서 제공하는 HTTP Client를 사용하고 있었는데 그동안에는 REST API 테스트 용도로만 작성해두었다. 그런데 REST API 이외에 gRPC, WebSocket, GraphQL 호출 테스트도 지원한다는걸 알게 되었고 아주 잘 사용하고 기능이라 요약해두었다.


회고

글또 8기를 시작하며 작성했던 다짐글에 “꾸준한 글쓰기는 물론, 다양한 사람들에게 긍정적인 영향을 주고 나도 많이 받고 배우고 싶다.” 라는 목표를 설정했었다. 전자는 100% 달성했다. 8기 활동하며 작성한 글은 회사에서 겪었던 일들을 정리한 게 대부분이었는데, 회사에서의 오랜 시간을 어떻게 보냈는지에 대해 기록이 남아서 좋았고 글감을 정리하면서 공부도 많이 되어서 기술적인 발전도 있었다. 후자는 정량적으로 측정하기 어렵지만 50%도 달성하지 못한 것 같다. 다른 분들이 작성한 글을 많이 읽어보지 못했고 안에서 이루어지는 다양한 활동 중 몇몇 활동에 수동적으로 참여했다. 이건 정말 하기 나름인 것 같다. 내가 수동적이었던걸 어떡하나..😇 그래도 새로 알게 된 개발자분들과 대화를 나눌 기회가 종종 있어서 사람들이 어떤 경험을 하고 어떤 고민이 있는지 알 수 있었다. 갈수록 만나던 사람만 만나고 새로운 사람들에 대한 스펙트럼이 좁아지다 보니 (다양한) 사람들이 어떤 생각을 하면서 살아가는지 궁금했는데 조금이나마 해소할 수 있었다. 각자 각기 다른 경험과 고민을 하고 있었는데 모두가 앞으로의 계획이 잘 풀렸으면 하는 생각도 들었다.

회고는 지나간 일을 돌이켜 보며 더 나은 다음을 준비하는 과정이다. 글또는 모두 함께 글을 잘 써보자는 취지를 가지고 있기 때문에 아주 짧은 형태의 글을 작성하는 건 지양하고 있다. 그래서인지 가끔 형식에 얽매이고 완성된 나이스한 글을 작성해야 된다는 스스로 압박이 있었는데, 앞으로는 겪었던 기술적인 문제와 해결 방법이 거창하지 않더라도 아주 사소한 내용들도 틈틈이 블로그에 기록해 봐야겠다. 최근에 꺾이지 않고 계속해서 앞으로 나아갈 수 있는 나만의 방법이 뭘까 고민을 오랫동안 했었다. 이걸 Grit(목표한 바를 열망하고 해내는 열정과 난관이 닥쳐도 포기하지 않고 목표 달성을 위해 노력하는 끈기)이라고 표현하던데 나에게 맞는 특별한 방법은 없는 것 같았고 내가 내렸던 결론은 그냥 하는거라고 생각했는데, 최근에 깨달은 건 작은 성취를 오랫동안 하는 게 나만의 방법인 것 같다. 아주 어릴 때부터 무언가 끈기 있게 하는 습관이 몸에 배었는데 지금도 무언가를 시작하거나 하고 있다면 그 안에서 작은 성취를 만들어 가면서 나 스스로 나아갈 힘을 유지했던 것 같다. 이제 깨달았으니, 앞으로도 화이팅해야겠다. 글또 덕분에 글쓰는 습관 이외에도 알게 모르게 깨우치는 것들이 있어서 좋았던 시간이었다.