2024년 개발 회고
— 회고 — 27 min read
개발자로서 2024년은 일하는 방식과 방향을 내가 결정하고 시행착오를 거칠 수 있었던 한 해 였던것 같다. 일하는 방향과 방식을 스스로 결정해서 진행해 본다는 것은 일면 당연해 보이기도 하지만 생각보다 그렇지 않은 경우가 많다. 많은 사람들이 조직 안에서 이미 정해진 워크플로우와 정해진 양식들을 가지고 일을 하지, 이를 새로이 만들거나 정해야 하는 상황에 놓이지는 않는다. 또 정해진 것이 없는 환경에서 무엇을 나서서 정하고 정리하려고 하는 사람도 많이 보지 못했다.
좋게 보자면 나는 현재 조직에서 블랙박스 형태로 일을 하고 있다. 조직이 원하는 방향을 크게 벗어나지 않는 이상 세부적으로 일하는 방식에 대해 누가 뭐라고 하는 사람이 없다. 이 지점이 내가 업무적으로 가야할 방향이라고 생각하는 지점으로 다양한 시도를 해볼 수 있었던 환경적 조건이었던 것 같다.
현재 개발과 관련되서는 꽤 오래되고 복잡한 레거시를 다루고 있고, 이를 한 땀 한 땀 개선 하기보다는 일괄 비용(소위 차세대 프로젝트)로 해결하고자 하는 전통적인 기업에 가깝다. 이런 상황에 나는 테스트 커버리지를 늘리고 이를 바탕으로 리팩토링을 하기 위한 노력, 존재하지 않는 문서 양식과 위키 페이지를 만들어가려는 노력, 서로 업무에 대해 데일리로 함께 논의하고 회고하며 업무 합을 맞춰가려는 노력들을 했다. 그 결과 내 생각대로 잘 이루어진 것도 있고, 진척이 더디거나 잘 이루어지지 않은 것도 있다. 중요한 것은 아예 안개 속 같았던 영역들이 하나둘씩 그 본색을 보이기 시작했다는 것이다.
늘상 나는 정리되지 상황에 놓였을 때 정리하려는 사람이고, 정해진 워크플로우에 만족하지 못하고 개선점을 찾는 사람이라는 것을 올해 다시 한번 확인했다. 그런 나의 1년을 되짚어 본다.
프로젝트 타임라인
쇼핑몰 리뉴얼('23년 9월 ~ '24년 2월 까지)
- 작년 말부터 시작했던 서비스 리뉴얼을 하느라 1, 2월은 쉴틈 없이 흘러갔다. 프로젝트의 과정은 개인적으로는 정말 엉망으로 느꼈는데, 그러다 보니 2023년에는 회고가 없었다. 그냥 하루하루가 너무 힘들고, 입사 이래로 처음으로 회사를 출근하기 전에 너무 가기가 싫다는 생각을 해봤던 것 같다.
- 외주 업체와 사업팀 사이의 중간 역할을 수행하면서, 내가 맡은 부분 개발도 하려고 하니 이도저도 아니게 된 것들이 많은 것 같다. 주어진 것들을 개발하는 것이 아니고 누가 무엇을 개발할지 배정하는 것 또한 어려운 일이였다. 이 기간에 나 뿐만 아니고 관련된 우리 팀원들은 고생을 많이 했다. 유관 부서와 감정적인 문제들도 생기기도 했다.
- 간만에 정말 힘든 프로젝트를 다시 경험했다. 힘든만큼 보람이 있었으면 좋았겠지만 이 기대는 서비스 오픈 이후 무참히 깨어지고 마는데..
쇼핑몰 리뉴얼 수습하기('24년 3월 부터 현재까지도 진행..)
- 2월 말일에 서비스 오픈을 하고, 그 다음부터는 크고 작은 문제를 해결하는 시간의 연속이었다. 리뉴얼이 기간에 쫓겨서 하다보니 여기저기 문제가 많이 터졌다. 사내의 구체적인 내용을 공개하기는 어렵지만 중요한 기능들에서 validation 이 충분하지 않았던 문제나, 급하게 스토어드 프로시저로 해결한 부분들이 사실 잘못되어 있다거나 하는 문제들이 지속적으로 터져나왔다. 요새도 자잘한 오류들은 해결되지 않은 것들이 있다.
- 서비스가 지속하면서 나는 소프트웨어의 기능이라는 것이 일종의 세상과의 '합의점'이라는 것을 찾아 간다고 생각한다. 기능을 만드는 사람들이 원래 제공하려고 했던 것과 그렇지 않기로 했던 것들, 그리고 사용자가 필요하다고 느끼고 필요하지 않다고 느끼는 것들, 불편하다고 느끼는 것들 그리고 기술적인 제약 사이의 '합의점'이 기능의 가지는 최종적인 형태인 것이다.
- 이러한 '합의점'이 도출되는 과정에서 내가 만드는 서비스가 좋은 서비스인지 그렇지 못한 서비스인지 또한 알 수 있게 된다. 라이브 서비스의 버그를 확인하고 고치는 과정에서 합의점을 알게 되느냐, 혹은 기획과 개발에서 미리 감수할 위험과 제공해야 하는 최소 기능에 대한 정의를 분석하면서 찾아나가고 있는가가 그 기준이 되는 것이다.
- 언젠가는 '좋은 서비스'에서 '합의점'을 찾는 경험을 해보고 싶다는 생각이 많이 든다.
도움 요청('24년 4월 중순)
- 4월 중순에서 말 즈음이었다. 수습을 하다하다가 멘탈적으로 한계치에 다다른 느낌이 들었다. 같이 리뉴얼을 진행했던 차장님께 도움을 요청했다. 그 요청도 '나 도와주세요' 라기 보다는 '이런저런 부분들을 맡아주면 도움이 될 것 같다' 정도의 간접적인 표현이었다. 차장님이 이 계기로 업무를 도와주기로 한 것도 감사하고 중요한 변화이지만, 개인적으로는 내가 도와달라고 이야기를 해볼 수 있었던 것 자체가 엄청난 변화였던 것 같다.
- 기존의 나라면 도와달라는 선택을 하지 않았다. 남기 위해서 누군가에게 손 벌리기 보다는 그냥 포기하고 떠나는 선택을 했다. 그러나 자존심이나, 부담감 등을 떨치고 도와달라는 이야기를 할 수 있게 된 것이다. 이 날을 기점으로 내가 관리자 레벨의 사람들에게 기회가 될 때 더 적극적이고 솔직한 피드백을 하게 된 것 같다. 상급자이기 전에 사람 대 사람으로, 내가 느끼는 바를 어느 날 갑자기 쏟아놓기 보다는 차근차근 이해할 수 있게 전달해 보는 것이 서로에게 더 좋은 방향이라고 느꼈다.
사내 스터디 시도 ('24년 6 ~ 8월)
- 6 ~ 8월 간은 사내 스터디를 시도했다. 절이 싫으면 중이 떠난다지만, 나는 절에 남기로한 중이였다. 절에 남을 것이라면 절을 바꾸기 위한 모든 노력은 다 해보아야겠다는 생각이 들었다. 마침 사내 스터디를 지원한다는 인사총무팀의 글이 올라왔다. 스터디를 지원 받기 위해서 인원을 우선 채워야 했다. 그래서 지금에 와서 보기에는 잘못된 시도를 했다. 공부를 안해도 좋으니 그냥 참여만 하라고 한 것이다. 그 결과 정말 참여만 하는 사람들만 모인 스터디가 만들어졌다. 나는 그나마 보고를 위해 스터디를 준비하고, 발표했던 정도의 경험치를 쌓았다.
- 이 때를 반면교사 삼아, 2025년에는 더 나은 스터디를 해보려고 한다. 처음 수요 조사부터, 스터디 분야를 업무에 적용하는 것 까지 추적하고 공유하는 그런 식의 스터디를 하려고 한다.
글또 신청과 활동 시작('24년 9월 부터 현재까지)
- 작년 부터 고대하던 글또 활동을 9월 말부터 시작하게 되었다. 글또의 활동은 이 블로그의 글들로 차근차근 쌓여 있다.
- 글또라는 커뮤니티에 보다 적극적으로 참여하지 못하고 있는 것이 살짝 아쉽긴 하지만, 근본적인 목표인 글쓰기를 지속적으로 진행하고 있는 것은 만족스럽다.
- 글또를 운영하고 있는 성윤님이 보여주는 하나하나의 행보 또한 인상적이다. 항 상 피드백을 받을 수 있는 루프를 마련해 두고, 그것들을 기반으로 개선해가려는 노력을 멈추지 않는다. 또 고민글에 하나하나 답변을 남길 때도 무척이나 인간적이고 솔직한 이야기들을 남기고 계신다. 성윤님이 가고 있는 길이 내가 가고자 하는 길과 꼭 같지는 않겠지만, 예전 생활코딩의 이고잉 님이나 넥스트 스텝의 박재성 님 처럼 커뮤니티 빌더로서의 하나의 지향점을 보고 있는 것 같은 느낌은 든다.
신규 입사자와의 만남('24년 11월 부터 현재까지)
- 11월에는 새로 온 대리님이 같은 서비스를 담당하게 되었다. 온전히 나랑 같은 일을 하는 동료가 생긴 것은 이 회사에서 처음이다. 이력서부터 같이 봐오면서 뽑힌 분이라 여러모로 마음이 더 가는 부분이 있다. 적응도 너무 빠르고 책임감이나 성실함, 개발자로서의 능력치가 기대 이상이다. 아이러니하게도 이런 분과 일하게 되면서 현재에 대한 고민은 더 커졌다. 구성원 하나하나 이렇게 좋은 분들만 모인 곳에서는 내가 어떤 성과를 더 낼 수 있을지 궁금해졌다.
관심있게 본 것
ATDD
nextstep 에서 ATDD 강의를 9기로 참여했다. E2E 테스트를 restassured 와 Cucumber 를 통해서 진행하는 것을 배웠다. 테스트 코드를 작성하는 방법도 방법이지만 그 가운데 리뷰어 분들의 리뷰를 통해 코드를 바라보고 개선하는 다양한 관점을 익힌 것 같다.
이걸 기반으로 사내 프로젝트의 테스트 커버리지를 늘리려고 해보았는데, 접근 자체가 쉽지가 않았다. 일단 현재로써는 '가장 어려운 것은 나중에 하기 전략'을 취하게 되었다. 전략이라고 하기 도 민망하지만 두터운 서비스 계층의 복잡한 로직을 테스트로 만들다 포기하는 것보다는 표현 계층와 영속 계층의 일관된 형식을 테스트 코드로 만들고 이 부분의 문제가 생기지 않도록 하는 것을 1차적인 목표로 삼으려고 한다. ATDD 내용 중에 안에서 테스트의 작성 방향을 '밖으로 갈 것이냐, 밖에서 안으로 갈 것 이냐'로 언급하는 부분이 있었는데, 이런 접근을 실제로 하게 되는 구나 싶었다.
DDD
코드를 어떻게 하면 잘 정리할 수 있을까 고민의 결과로 DDD를 많이 찾아보고 적용하려 했던 것 같다. DDD(Domain Driven Design)는 용어 자체 처럼 설계의 방식이다. 이 자체로 아주 명확한 무엇을 제공하고 있지 않다. 이 때문에 DDD라는 것을 어떻게 적용할 수 있을까 하는 고민을 많이 했다. 고쳐가다가 보니 지금에 와서는 형체를 알 수 없는 괴물같은 형태가 되어버린 것 같기도 하다.
도메인 모델 기반으로 서로 영향을 최소화 하며 응집도를 높이고, 결합도를 낮추자는 목표는 좋지만 구체적으로 그것을 만들 수 있는 아키텍쳐를 만드는 것은 어려운 일이라는 것을 많이 느꼈다. 특히 트랜잭션 스크립트 패턴에서 시작하여 도메인 모델을 분리하련은 과정에서 도메인 모델과 패키지 간 의존성을 제거하는 방식이 아직도 어렵다.
개발 외 적으로는 도메인의 전문가가 없는 상황에서 도메인 모델이라는 것이 어불성설인가 하는 생각도 든다.
애자일
애자일을 학습했다는 표현은 조금 애매한 표현인 감이 있다. 애자일은 책에 있지 않고 현장에 있기 때문이다. 그런 차원에서 내가 올해 쇼핑몰 운영에 데일리 스크럼을 도입하고 회고를 주도 했던 것은 애자일로의 첫 발은 내딛은 것이라고 생각한다. 날마다 30분 내외의 시간 동안 서로 어떤 일을 했는지, 어떤 문제가 있는지 이야기 하면서 업무의 진행이 더 매끄러워질 수 있었다. 특히 회고를 하면서 각자가 문제라고 생각하는 지점이 공유되고 문제에 대한 방안을 각자가 제시하면서 우리 팀의 합이 더 맞아가는 것을 느낄 수 있었다. 2025년 목표에서 후술하겠지만, 내년에는 애자일로 이루고자 하는 것과 그렇지 않은 것이 더 명확한 상태가 되고자 한다.
2024년의 SSC
Start
- 수치 기반의 목표와 성과 측정하기
- 정성적인 차원이 아닌 숫자로 표기되는 목표를 세워야 한다. 테스트 커버리지, API 별 문서 작성률, DB 표준 준수율 과 같이 쉬운 부분들부터 시작할 것이다.
- 나아가서는 조직의 목표 관리 에도 직접적으로 이 부분을 적용하려고 한다. 내가 측정하고자 하는 것과 실제 조직이 요구하는 바를 굳이 별도로 나눌 필요 없이 동일하게 관리하는 것이다.
Stop
- 혼자 빠르게 치고 나가기
- 어떤 부분이 안되어 있으면, 설명하기가 귀찮다고 나 혼자 다 해버리면 사람들이 들어올 틈을 막아버리는 것 같다.
- 틈을 오히려 내어놓고, 내가 직접 움직이는 방향이 아니고 사람들을 움직이게 할 수 있는 방향을 고민해 보면 좋을 것 같다.
- 속도가 다른 사람들과 맞추어 가는 것은 힘이 드는 일이라는 것을 인정하자.
- 조급해하고 자책하기
- 공부를 하지 못하고 쉬었거나, 어쩔 수 없는 약속 등으로 자기계발 계획을 이행하지 못했을 때 스스로를 자책하는 것을 그만두어야 한다.
- 일단 자기계발의 계획도 현실적으로 타협을 조금 해야하고, 너무 완벽으로 본인을 내몰고 있는 행위를 중단해야만 일과 삶의 균형을 맞출 수 있을 것 같다.
Continue
- 계속 소통하려고 하고, 솔직하게 피드백 한 것
- 성격상 어쩔 수 없이 주변에 대해 신경쓰는 것을 긍정적인 방식으로 해소하려고 한 것
- 2024년에는 팀의 팀비 사용에 대해 좀 더 적극적으로 건의해볼 예정이다
- 스터디 비용 지원, 워크샵(방탈출, 크라임씬 등등의 활동 ++), 럭키 드로우
- 개발 컨퍼런스 듣기
- 차 타고 가면서 듣는 세미나가 운전의 지루함도 덜어주고, 새로운 지식을 익히는 것과 공유하는 방법에 대한 아이데이션으로 좋은 작용을 하는 것 같다.
2025년 목표
애자일 코칭 배우기
- 새해 첫날 부터 AC2 교육 신청서를 쓰면서 내가 요즘에 원하는 배움이라는 것일 절실히 느꼈다. 비용 상의 문제만 없다면 당장이라도 듣고 싶은데, 이 정도 돈을 교육 비용으로 지불하기에는 현재는 너무 여유가 없다. 다른 곳에서 CAC라는 이름의 교육을 하고 있는 것 같은데, 애자일 코치 교육을 위한 돈을 따로 모아보려고 한다. 그동안 에는 애자일 코치 교육에 나온 많은 자료들을 두루 읽고, 현장에서 적용해보고 그런 시간들을 가질 것이다.
- 애자일 코칭이라는 것은 사람들의 변화를 만드는 방법이라 생각해서 배우고 싶다. 근데 이걸 위해서는 결국 사람들의 의식적 무의식적 피드백이 필수적인 것 같다. 이 지점이 지금까지 느끼는 가장 어려운 허들인데, 피드백을 위해서는 더 관찰하고, 설문하고 대답을 이끌어야 하기 때문이다. 동기부여가 강하지 않거나, 나에 대한 신뢰가 아직 그 정도로 쌓이지 않은 경우는 직접적인 피드백을 받기가 어렵다. 스타트업에서 새로 나온 서비스들에 적극적으로 의견을 주고, 사용자 인터뷰도 가급적 응해주는 나로서는 그러지 않은 사람들을 움직이는 방법을 어렵게 느끼는 것도 당연해 보인다.
글또 활동 지속
- 회고 글을 쓰면서 글또 다짐글을 다시 읽어 보았는데 아직 나아갈 길이 많다. 원래 계획했던 1주일이 아니고 2주에 한편의 글을 쓰고 있고, 송파또에서는 아무 약속도 잡지 못했다.
- 글은 너무 검열하지 않고, 더 가볍게 하나씩을 추가해보자. 애자일 코칭 자료를 모으는 정도의 글이라도 다음 주 까지 써보면 될 것 같다.
- 1월이 아무래도 여유가 더 있을 시간이다. 송파또에 가고 싶은 식당이라도 찾아서 주최해볼까 싶다. 그래도 관심사가 비슷한 사람들이면 좋겠는데, 송파에서만 같이 할 수 있는 활동이 뭐가 있을지 고민은 더 해봐야 할 것 같다.
- 글또 처음 신청할 때, 취준생 분들을 도와주고 싶다고 썼는데 그 마음에는 크게 변함이 없다. 다만 내가 무슨 도움이 될지 의문스러워 선뜻 나서지를 못했다. 을지로에서 커피 한잔 사주는 정도로 라도 시작을 해보자.
이 밖에
- 사실 너무 구체적인 목표는 세우지 않으려고 한다. 상황에 대응하는 것을 더 중요하게 생각하게 됐다고나 할까. 그리고 내 기준에 무계획이라고 해봐야 매일매일 크고 작은 계획을 세우느라 바쁠 것이기에 연간의 목표를 너무 구체적으로 만들어 버리면 금방 지칠 것 같다. 그래도 큰 방향성은 있다. 사내에서와 개인적인 방향 두 가지인데 아래와 같다.
- 사내에서는 내가 문제라고 지정하는 것 말고, '진짜 문제'를 찾고 해결하는 경험을 하고 싶다. 트렌드니까, 남들이 좋다니까 하는 것 말고 우리 조직의 조건과 상황에 맞는 기술적 해결책을 만들어 가는 경험을 하고 싶다.
- 2024년에 어쩌다가 혼자서 마음대로 gatsby 테마를 만들고, 가볍게 flutter 앱을 만들어 보는 것은 정말 재미있었다. 무슨 결과를 보여줘야한다는 압박이 없으니, 예전에나 느꼈던 순수한 개발의 즐거움을 느끼게 된 것이다. 그래서 계획이 없이 그냥 손가는 대로 이것저것 만들어 보려고 한다.
매년 회고를 적긴 했었는데 공개적으로 올릴만 하게 다듬어 본 것은 오랜만인 것 같다. 이런 변화를 만들어주는 글또 라는 모임이 존재함에 감사하며, 2025년은 회고의 내용 또한 보다 만족스러울 수 있기를 기대해본다.