Search
Duplicate

2024년 1월 1주차 회고록 - 23년을 마무리하고 24년을 시작하며

목차

Previous

신년이 밝았고 나는 이 전쟁이 끝나면 그녀에게 청혼하겠어라는 멘트만큼 당연한 클리셰를 벗어나지 못하듯 나이를 먹어버리고 말았다.
대학교 및 랩실 동기 혹은 후배들이 이제 개발 경력 10년차가 넘어가는 이 시기에 5년차를 마무리하고 6년차가 되가는 지금 나는 2023년을 만족스럽게 마무리했고 2024년을 시작하는 것인가? 고민해보자.

2023년 난 뭘 했지?

말 그대로 나는 2023년 무엇을 했는가? 내가 장담하는건 2018년도부터 2022년 초반까진 정말 숨도 안쉬고 달려왔다. 그 전의 내 인생을 통틀어도 가장 밀도높았던 시간들이라고 할 수 있다.
하지만, 2023년도 과연 그렇게 밀도 높은 삶이였는지에 대해서는 회의감이 든다. 이에 대한 객관적인 분류및 평가를 위해 내가 큼지막한 이슈들은 무엇을 했는지에 대해 나열하고 정리 해 볼까 한다.

기능 고도화 프로젝트 진행

MRS-BATCH MRS-CMS
현재 있는 팀에서는 채용 관리 솔루션 유지보수와 고도화를 진행하면서 여러 작업들을 했는데, 내가 기안하고 내가 주도해서 별도의 신규 프로젝트로 생성한것만 두 개로 대용량 파일 작업들을 관리하고 향후 스케줄러의 배치 작업들도 수행할 목적으로 만든 MRS-BATCH, 전체 지원자 관리 목적하에 팀원들 중 주니어 개발자의 비전 제시 및 새로운 기술 스택에 대한 실무 적용 사례를 만들기 위한 프로젝트인 MRS-CMS 모두 내가 제시했고, 선행 학습도 직접 진행했고, 구축 및 개발 전반을 리드했다.

MRS-BATCH

Java, Spring Batch, Mybatis, Datadoc, Kafka, POI
솔직히 Spring Batch를 학습할 때는 이게 도대체 뭔 말인지, 강의는 또 왜 이렇게 지루한지 힘들기 그지 없었다.
내가 왜 사서 고생하는걸까?
이러한 고민은 꽤 오랜 기간 내 머릿속에 맴돌았던 이슈였다.
유지보수만 잘 하고 기획측 요청에 따라 기존 프로젝트에서도 대부분 처리가 가능했었다. 그룹장님이나 기획 혹은 사업측에서 직접 요청을 해서 신규 서버로 전환하고 개선을 해야한다는 요청이 온게 아닌 이상 굳이 그럴 필요가 없었지만, 참을 수 없었고, 꼭 하고 싶었다.
년차와 나이로는 적지 않았지만 해당 채용 도메인에 대한 이해도가 낮았기에 기여도가 낮은 것 같다는 불안감과 정체되고 싶지 않다는 생각들이 서로 맞물려 돌아가며, 그리고 자주 문제가 생기는 스케줄러의 배치 작업들이나 대용량 파일 처리 작업들을 격리및 안정화해서 관련 VoC 이슈들로 괴롭고 싶지 않고 업무 시간 외에는 내 개인 공부에 집중하고 싶다는 욕심이 더해졌던 것 같다.
하지만, 욕심과는 별개로 필요 기술 스택에 대한 이해도가 생각보다 빠르게 올라가지 않았고, 중간중간 VoC 대응 및 핫픽스 배포 이슈로 인해 시간들은 흘러만 갔고, 결국에는 팀원 한명과 막판에 페어 프로그래밍으로 하루에 20시간씩 개발을 하며 겨우 완성을 했었다.
그러면 이 시간들이 과연 유의미 했을까? 라고 화두를 던진다면, 그렇다고 답할 수 있다.
동기식으로 진행되던 엑셀 로직이 비동기로 바뀐것 만으로도 사용성은 증가했고, 여러 타입에 적절한 생성 로직들을 공통 추상화하고 유연한 인터페이스 구조를 설계해보는 경험을 실무레벨에서 할 수 있다는건 충분히 의미가 있었다.
물론, 분리만 한 것이고 생성 로직자체에 대한 최적화가 안되있었기에 빅데이터에 대한 대응이 되지 않았기에 성능 최적화도 필요했고, 하고싶었고, 하려고 했지만, 나는 또 다른 일들로 바쁘지게 되며 다른 주니어 개발자가 진행을 하게 되었다. 그리고 아직까지 고생을 하며 힘들어하고 있지만, 대신 이 내용을 주제로 포폴 및 발표자료로 만들고 있으니…. 잘된게 아닐까 행복회로를 돌려본다.

MRS-CMS

Kotlin Spring Boot QueryDSL JPA MySQL S3 Spring Data Redis
나와 회사 양측이 윈-윈(win-win)하기 위한 프로젝트였는데, 결과만 보면 win-win이 맞았다.
하지만, 그 과정까지 win-win이였을까? 그건 아니였던 것 같다.
이 프로젝트 역시 내가 하고 싶어 셀장님에게 요청하고, 선행학습도 미리 따로 진행하고 유료 교육과정까지 들어가며 기술 스택을 마련해서 진행했던 프로젝트였다.
우리 팀은 기본적으로 유지보수팀이기 때문에 신규 기술 스택에 대한 도입이 어렵다.
일정들은 밀려오는데, 한가롭게 신규 기술스택을 학습하고 도입할 시간은 없다. 규모가 작지 않다보니 CSAP, ISMP, ISMS등의 정보보호 인증도 받아야 하고, 계속해서 발생하는 레거시 코드나 신규로 개발한 코드의 문제들을 고쳐야하다보니 고정적으로 백엔드 개발자중 40%~70%는 일정들이 꽉 차있는 상태다보니 새로운 시도나 학습은 힘든 상황이였다.
하지만, 어쩔수 없다는 이유로 정말 어쩔수 없이 가만히 있는다고, 외부에서 나를 이해해주진 않을 것이라는 사실을 알고 있었다. 그렇기에 서로 win-win할 수 있는 주제를 찾다보니 전체 지원자 관리에 대한 니즈가 이미 누적된 VOC들을 통해 쌓여 있었고 이를 해결하기 위한 기능 개발을 기존 서버에서 진행하기엔 사이드 이펙트 고려및 내가 의도하지 않은 인터셉터나 AOP 동작으로 인해 문제가 생길 가능성이 있는데 (이미 이러한 이슈로 장애가 발생한 적이 있었다. ) 셀장님이나 그룹장님라인에도 공감이 되는 포인트가 있어서 신규 프로젝트 개발로 진행할 수 있었다.
이 과정 역시 결코 순탄치 않았고, 숨겨져있던 로직이나 정책들로 인해서 내가 말한 공수를 지키지 못해 배포 한달 전부터는 사실상 평일이고 주말이고 낮과 밤이 없이 개발을 진행했던 것 같다.
하지만, 이 경험은 내게 많은 도움이 되었고, 무엇보다 레거시 프로젝트의 기능들을 이관하여 최신화및 해당 기능이 동작하기까지의 과정들을 분석및 문서화할 수 있어 잃어버린 히스토리 파악들을 다시 할 수 있는 기반을 만든 것 같다.
아직도 할 건 많고, 고민해야 할 이슈들도 많다. 하지만, 하나씩 해결하려는 의지를 가지고 고쳐나간다면, 우리 솔루션도 빅테크 기업 부럽지 않은 아키텍처를 구축할 수 있지 않을까? 생각해본다.

정말 수 많은 VoC 처리

나는 정말 이렇게까지 많은 VoC를 처리할줄은 상상도 하지 못했다.
아니 무슨 하루에도 서너개 이상의 VoC가 들어오는데, 제정신을 유지하기가 힘들었다.
물론, VoC의 대부분은 팀원 중 한 분이 거의 처리하는 편이긴 하다(대신 신규 기능 개발등에 관심이없어 그쪽을 맡기지는 않는다.)
그리고 핫픽스 배포 또한 정말 많았는데, 진짜 한 분기에 두자릿수 이상으로 핫픽스를 배포할꺼라곤 상상도 못했다. 심지어 20~30%비율로 문제가 발생해 롤백 후 장애보고서까지 작성했었다.
여기까지 보면 얘네가 책임, 주인 의식이 없고, 개발 실력이 없어서 이러는 걸꺼라고 오해 할까봐 미리 말하자면, 한정된 인원, 시간인데 진행해야 할 내용들은 너무 많고, 히스토리를 모두 알만한 도메인 기준 미들급 이상의 개발자들은 모두 나갔기 때문에 과도기인 상황이라는 말을 꼭 하고 싶다.
(아니, 이 정도면 잘 하는거야!!!)
물론, 그냥 뭐라고 하지마! 하는 수준에서 끝내는게 아니라 이런 문제들이 재현 되지 않게 되기 위해서 계속해서 신규 프로젝트로 기능 이관 및 히스토리 파악, 성능 개선 등을 진행하고 있다.

집필 제의, 그리고 글 숨김 처리

나는 블로그를 그래도 꾸준히 관리하는 편이다. 2023년을 보면 생각보다 많거나 고퀄리티의 포스팅이 되지 않긴 했지만, 그래도 나름 꾸준히 관리하는 편이다. (호스팅도 유료로 하고 있다고!)
무튼, 한달 방문자도 약 2만명 근처까지 되면서 그래도 꽤나 찾는 블로그가 되었다고 할 수 있는데, 그러다보니 집필제의도 받게 되었었다. 스프링 시큐리티 관련해서인데, 사실 블로그 초반에 작성했던 포스팅이 스프링 시큐리티 내용이기도 했고, 가장 조회수가 잘 나오던 포스팅들이기도 했다.
나는 따로 포폴로 쓸 수 도 있고, 이직할때 도움이 되지 않을까? 하는 마음에 긍정적으로 생각을 하고 있었는데, 이 시점에 두 가지의 큰 이슈가 닥치며 이런 내 생각은 모두 캔슬하게 되었다.

첫 번째 이슈

: 이 블로그는 어떠한 영리 목적도 없고 광고도 달지 않는다. 처음에는 개인 학습 메모장 같은 느낌으로 시작했고, 이왕 정리한거 다른 취준생및 주니어들도 보면 좋겠다는 생각에 공유를 했고, 그러다보니 이지경에 이르렀는데, 그러다보니 포스팅이 처음부터 외부 공개목적이라기보단 내 개인 공부 목적이기에 인프런 강의 내용들이 다 포함되는 포스팅들이 많았고, 이는 몇년간 유지되다가 최근 여러 이슈들로 인해 글을 숨김처리하고 개인적으로만 보게 되었는데 이러한 글 중 스프링 시큐리티도 있었다.

두 번째 이슈

이 당시 나는 우리팀의 셀장님이 1년도 안되 퇴사를 하게 되고, 그룹장까지 바뀌게 되는 상황을 맞닥드리게 되었다. 새로운 그룹장님은 새로운 기능개발및 성과를 내고싶은 열정이 있는 분이였는데, 이게 나쁜건 아니였지만, 현 시점의 우리 프로젝트 상황과 8년넘게 리팩토링 되지않고 유지된 솔루션에서 새로운 기능 개발에 필요한 리소스가 신규 프로젝트 대비 더 크다는 부분에 대해 감수되지 않았기에 일정들은 타이트 했고, 나는 자연스럽게 집필 제의를 거절할 수 밖에 없았다.
이런 두 가지 이슈들로 인해 집필 제의는 자연스럽게 무산되었고, 나는 업무 외 시간에 집필한다고 스트레스 받지 않아도 된다는 안도감과, 그래도 내 커리어에 좋은 이력을 쌓을 수 있었는데 라는 아쉬움이 공존하며 해당 일은 지나가게 된다.

셀장님 퇴사 및 그룹장님 변경 및 내가 스쿼드장?

제목이 다 말했네.
셀장님은 결국 과중한 업무와 스트레스를 못이기고 퇴사를 하셨다.
그룹장은 내가 이 회사에서 2년차가 되면서 3개월마다 바뀌더니 이번에도 3개월만에 바뀌었다.
남은 인원들 중 나이 + 연차가 제일 많은 내게 셀장 제의가 들어왔었다.
솔직히 나는 하기 싫었다. 아직 연차도 낮다 생각했을 뿐더러 개발에만 신경쓰기도 바쁜데, 관리영역에 손을 아직은 걸치기 싫었고, 셀장님도 셀장을 달았던게 너무 힘들어서 1년도 안되서 퇴사한건데, 더욱더 하기 싫었다.
하지만, 나는 결국 셀장 제의를 수락하게 되었는데 그 이유는 다음과 같다.
셀장 직위급: 셀장이 되면 몇 백만원 이상의 직위급이 나오는데 하는 일에 비해 많은건 아니지만, 결코 적지는 않다.
셀장 복지: 다른건 모르겠지만 주차 지원은 정말 매력적이였던 것 같다..
기술급 확정: 셀원들은 몰라도 셀장급들은 기술급을 무조건 챙겨줬던걸로 알고 있다. 셀장급과 기술급을 합치면 결코 적지 않은 돈이라고 생각했다.
역량등급: 여기에는 사람마다 의견들이 조금씩 다르긴했지만, 그래도 셀장급이상에게 들었던 내용으로는 셀장급이 되면 역량 등급이 내 등급보다 높게끔 맞춰주려고 했다고 하는데, 이는 충분히 금전적으로 메리트가 있다고 생각이 들었다.
결국 하는일은 같음: 내가 그럼 셀장을 거절한다고 셀장업무를 안하게 될까? 생각했는데 결국 이 팀에서 나이 + 연차는 내가 제일 많고, 외부 인원이 셀장으로 들어온다쳐도 히스토리를 모르기 때문에 기획이나 사업측 요청에 취약해질 것으로 판단되었고, 어짜피 하는일은 같을꺼같은데 셀장이라도 달자는 마음.
그래 이렇게 여러 고민끝에 나는 셀장이 되겠다는 마음을 먹게 되었고, 새로 오신 그룹장님과도 얘기가 끝났다.
하지만….
인생에 억까가 있을 순 있지만 왜 하필 이때?
셀장이라는 직위 자체가 내가 셀장 달기 직전 사라져버린다. 그래서 셀장을 달 수 없고, 나는 비공식적으로 스쿼드장이라는 명목하에 백엔드 기술리더가 되버린다. 근데 업무적으로는 따로 바뀐건 없는것 같고 문서작업만 좀 줄어든 것 같다.
결국 내가 만약에 생각했던 최악의 케이스였던 직위, 역량, 돈 아무것도 달라지지 않았는데 업무만 늘어나버린 상황 말이다.
그래도 긍정적으로 생각해보자면 셀장만큼의 책임감을 가지거나 책임질 필요는 없지만 어느정도 리더급의 업무들을 맡아서 하게되다보니 견습으로 일을 배운다는 생각으로 할 수 있다고 행복회로를 돌리며 열심히 하고 있긴 하다.
근데, 지금 상황을 보니 기술급도 사라지고 다른 개념으로 바뀌게 되어 내가 못받게 될 것 같다는 느낌이 정말 강하게 든다.

Kotlin 코드 리뷰어

코틀린은 내가 해보고싶지만 하지 못했던 언어이다.
2022년 처음으로 코틀린을 접했을 당시에는 다음과 같았다.
매력적으로 보이긴 했지만, 현재 사용하는 자바를 포기 할 정도로는 보이지 않기도 했고, 절박하게 코틀린을 해야 할 이유도 없었기 때문이다.
그러던 와중 위에서 언급한 MRS-CMS 코틀린 도입과 지인과의 술김에 라는 명목하에 Nextstep의 TDD, Clean Code With Kotlin 6기에 신청하게 된다.
이 때 정말 내가 코틀린관련 학습은 인강 한편 본게 전부라 걱정도 많았고, 수강생들 수십명중 나처럼 코틀린 자체가 처음인 사람은 5명도 안됐고 모두 실무에서 사용하거나 익숙한 사람들이여서, 수료를 못할까봐 걱정을 정말 많이 했는데….

결과는 2등 수료, 코드리뷰어 제의까지!

그래서 7기에서는 코드리뷰어로 리뷰이에서 리뷰어가되며 부수입과 동시에 다른 리뷰이들의 코드를 확인하며 같이 성잘할 수 있고, 내가 아는 지식들을 공유하며 나도 한층 더 발전할 수 있는 시간이 되었던 것 같다.
이로써 내가 경험한 코드 리뷰어 과정은
TDD, Clean Code With Java
TDD, Clean Code With Kotlin
ATDD와 함께 클린 API로 가는 길
이렇게 3개가 되었다.
물론 아직도 많이 부족하기에 이펙티브 코틀린부터 여러 서적들을 보고 있다. (지금은 다른 책들을 보느라 멈춰있긴 하다)

이력서 업데이트

나는 현 회사에 오기 직전 경력기술서를 작성한 뒤 2년동안 단 한번의 업데이트도 되지 않았다.
더 솔직하게는 첫 경력기술서 작성시에도 피드백을 따로 받지 않았었다.
그런 상황에서 최근 이력서 업데이트를 하며 받은 피드백들은 뼈가 다 시려올정도 였다.
네 이력서는 고칠게 너무 많다.
나라면 너 안뽑는다.
형님 두들겨 팰 게 한두개가 아닌데 위에서부터 패드릴게요
ㅎㅎ.. 잘하셨는데 몇 가지 피드백 드릴게요 (PDF 3장)
Catsbi 님은 열심히 하시니까 잘하시겠지만, 뭔 말을 하려는지 모르겠고, 성과에 대해서 좀 더 구체적으로 설명할 필요가 있어요.
등등 정말 여러명에게 두들겨 맞았다.
자기소개서 또한…
너무 추상적입니다.
설명만 봐선 별로 어려운걸 한게 아닌거 같아요.
별로 궁금하지 않을 것 같아요.
아프다……너무 아파……….
그래도 감사하게 생각하며 하나씩 하나씩 수정하고 업데이트 해나갔다.
그러면서 생각한게
아, 개선 당시에 성능 지표 다 있을때 작성했으면 더 정확하게 작성할 수 있었는데, 지금 작성하려니 죽겠네..
말 그대로 미뤄놨던 이력서 업데이트를 한 번에 하려니까 팀즈의 과거 이력을 뒤져보고, 성능 지표, 쿼리등을 찾아가며 다시 파악해야 하는 문제들이 과거의 나를 원망하게 되는 이유가 되 버렸다.
문서화좀 해 이 새끼야!!!

그리고, 타 기업들의 JD를 보며 한숨을 쉬게 되었다.

내가 생각보다 공부안한 분야들이 많구나.. 사실 이건 회사를 다니면서도 매번 이번 스터디 주제를 정할 때 생각했던 것이긴하다. 근데 나 나름대로는 현재 회사에서 사용하는 기술 기반으로 먼저 공부할 것을 정해서 진행했고 그게 다른 회사의 JD와 달랐을 뿐이다…
그래도 여기서 한탄만 해봐야 뭔 의미가 있나 생각하면서 인프런 강의를 신청한다…뚜벅 뚜벅..

게으른 개발자 컨퍼런스

1월 말 게으른 개발자 컨퍼런스라는 컨퍼런스에서 발표를 하게 되었다.
사실 대부분이 이미 아는사람이긴하다 ㅎㅎ… 할 생각이 원래는 없었지만, 생각해볼수록 좋은 기회인 것 같고, 다들 나보다 좋은 아이템들을 가져올 수 있지만, 나도 내가 겪었던 경험들을 공유하고 어려운 질문을 받던 쉬운질문을 받던 혹은 질문을 받지 않더라도 누군가에게 인사이트를 줄 수 있지 않을까? 생각하에 참가를 하게 되었다.
현재 1차 PPT 리허설 리뷰까지 진행이 되었는데, 처음 써보는 키노트에 어색했지만 익숙해지니 나쁘지 않았다.
나는 우리 팀에 전체 지원자 관리라는 신규 서비스를 구축하면서 기존 우리팀에서 사용하던 기술 스택이 아닌 요즘 여러 회사에서 많이 사용한다는 기술 스택(Kotlin, Spring Boot, Spring Data Redis, QueryDSL, JPA)등을 도입하게 되었고, 이를 도입하게 되었던 스토리에 대해 기승전결로 풀어나가도록 작성을 했다.
사실 내용들을 좀 더 구체화하고 강화하고싶었는데, 이미 발표시간에 제한시간인 30분이 간단간당해서 오히려 줄여야 할 따름이라는게 애석하기 그지없다.
약 130명정도가 들으러 올 것 같은데, 내가 안 떨고 잘 할 수 있을까 모르겠다.

24년을 시작하며

2023년을 잘 생각해보면 신규 프로젝트 개발 주도 2건, 성능 개선회의 아이템 선정 참여, 코틀린 코드 리뷰어, 백엔드 스쿼드장등 여러 학업 및 업무적인 성취가 있긴 했다.
하지만, 그럼에도 불구하고 19 ~ 22년에 비교하면 너무 나태했던 것 같다는 생각을 지울 수 없다.
특히 요즘 여러 준비들을 하며 더 느끼고 있는 것같다.
24년은 이렇게 적당히 공부하고 발전하는건 부족하다는 생각이 든다.
다시 초심 찾고 달려봐야 하지 않을까 생각하며 오늘을 마무리한다.
아니 벌써 2시가 다 되가네 빨리 자고 내일 출근해야지