Me
2024년 나의 회고
Last updated
2024년 나의 회고
Last updated
2024년, 개인적인 목표를 전부 이뤘다. 그리고 "파이썬 백엔드 개발자" 라는 직무에서 데이터 엔지니어링 업무를 맡은지 1년차를 지나 2년차를 향해 달려가고 있다.
이 한 해는 나에게 도약을 위해 잔뜩 웅크린 해를 선물 했다. 여러 마인드셋이 확립된 시기이기도 했었다.
SME(폴바셋) 배치, 집계 프로세스 개발
일별 파일 데이터 배치 프로세스 및 일별 매장 거래내역 집계
SME(스마트랩) 실시간, 배치 파이프라인 개발
실시간 소켓 서버 및 일별 파일 데이터 배치 프로세스
맥도날드 매장 일 마감 집계 개발
맥도날드 매장 일 거래내역 마감 시 외부 채널사 데이터 집계 및 응답 실패 채널사 분류
계좌 거래 내역 보고서 신규 개발 (하이픈사 API 연동)
맥도날드 전체 매장의 계좌 입,출금 내역 관리를 위한 보고서 생성
회사에서 진행하는 프로젝트의 성격은 대부분 비슷하다. 예를 들면 이미 구성되어 있는 배치 프로세스의 컨벤션에서 데이터만 달라지는 형태이기 때문에 코드 흐름은 같다.
그중 처음 진행하는 "계좌 거래 내역 보고서" 프로젝트는 성격 자체가 달랐고 우리 팀 모두 설계 단계부터 참여하여 프론트 팀과 협업까지 3개월 만에 이뤄낸 프로젝트이다.
이 프로젝트를 진행하면서 느낀 점이 굉장히 많았는데, "당연한 것을 당연하지 않게 사고 하기" 를 정말 크게 배웠다.
"당연한 것을 당연하지 않게 사고 하기"
이것을 느끼게 된 계기는 "출금"을 하는 날이 있다. 이날은 계좌에 있는 잔액을 출금하는 날이기 때문에 데이터를 수집하는 시간이 크게 영향을 끼치지 않을 것이라고 생각했다.
하지만, 출금 한지 몇 분 뒤 바로 입금이 들어오거나 전 계좌이기 때문에 거래 유형이 매우 다양했고 현금 출금 외에도 사용자 실수, 수수료 출금 등 다양한 유형이 존재했다.
"소프트웨어는 언제나 중단될 수 있고 언제나 실패할 경우가 존재한다."
내가 구성한 배치 프로세스는 언제나 동작하지 않을 수 있다. 언제나 올바른 데이터를 수집하지 못할 수 있다. 이 말이 얼마나 개발하는 데 치명적인가? 내가 설계한 규칙을 따르지 않을 수 있으니 예외를 충분히 엄두에 두는 방식을 굉장히 많이 배웠다.
이때 당시 실패한 케이스에 분석한 결과 일정 시간이 지난 뒤 다시 API를 호출하면 해결할 수 있었다. Failover 정책을 적용할 때 이 규칙을 이용했고 실패 케이스가 완전히 사라졌다. 하지만, 언제나 다시 실패할 수 있다.
"새로운 유형의 프로젝트를 설계 단계부터 참여하여 운영까지 배포했다"
작년의 나는 데이터 파이프라인만 구성해댔다. 배치, 실시간, 집계만 반복했다.
누군가 정해준 틀 안에서 코드만 짜는 게 개발자의 이상향일까? 올해는 달랐다. NoSQL에서 스키마는 존재하지 않지만 컬렉션 설계와 배치가 실패했을 때 재수행 할 수 있는 기술 탐색 그리고 학습과 적용을 이뤄냈다.
이로 인해 현재 운영 단계에서도 실패한 데이터를 추적할 때 매우 편리하게 추적이 가능하며 파이프라인을 구성할 때도 데이터 추출에 대한 고민이 많이 줄어들었다.
회사에 처음으로 내 목소리를 냈다.
"우리 데일리 배치가 20개 이상 동작하고 있으며 언제나 실패할 수 있기 때문에 재수행 정책이 필요하다"
그렇게 회사에 새로운 기술을 도입하기 위해 아파치사의 Airflow
를 권했고 적용했을 때 가져올 기대효과와 성능 비교를 위해 기술을 공부했다.
그러면서 자연스럽게 얻은 정보를 내가 볼 수 있는 개인 블로그나 외부에 공개된 블로그에 줄곧 작성하고 공유했다.
"팀에 새로운 기술 도입 실패하기"
원인
회사에서 지불해야 할 비용 증가
신규 입사자 및 기존 개발자의 새로운 기술 학습
담당 개발자 퇴사 시 타 개발자간 비평준화 우려
안정적인 서비스를 변경 해야 할 이유를 느끼지 못함
기술을 도입하는 것은 개발자의 커리어에 큰 한 줄이 될지 몰라도 회사는 그렇지 않을 수 있다는 것을 배웠다.
기술을 매우 좋아하고 얼리어답터라는 칭호를 좋아한다. 하지만 기술을 도입하기 위해 회사의 시선도 바라볼 줄 알아야 하는 것이 굉장히 큰 인사이트였다.
"삼체"를 읽을 때만큼은 백악관의 일상사가 사소하게 느껴졌다." - 오바마
이 서평에 난 전적으로 동의한다. 삼체를 처음 읽기 시작했던 건 2024년 10월, 지인이 진행하던 북 리딩 클럽에서 책 주제가 "삼체" 였다고 했다. 그러면서 나에게도 덩달아 추천 해줬고 덥석 1부를 읽었다.
과연 그 스케일이 너무 크고 책에 이 정도로 몰입한 적 없었는데 나를 새로운 세계로 안내했다. 그렇게 400페이지 넘는 분량을 1주일 만에 다 읽었고 내 주변 사람들에게도 이 책의 신비성을 전파했었다.
그 후 2부를 읽는 데 1달 정도 걸렸던 것 같다. 아무래도 내 일상에서 책을 읽는 시간을 내야 했기 때문에 우선순위가 높은 개인 작업 또는 공부 시간 외에 읽었기 때문에 시간이 꽤 걸렸었다. 항상 지하철, 회사 점심시간, 주말 약속 전, 자기 전 등 다양한 시간을 활용했는데 이토록 나를 끌리게 만든 책이 있었을까?
일상에서 일어나는 일들로 매우 스트레스받고 인류가 굉장히 작은 존재라는 것을 다시 한번 깨닫고 싶다면 난 언제나 "삼체"를 읽어볼 것을 권한다.
아무래도 자기 계발 서적을 읽고 난 후 1 주일은 내게 굉장히 많은 변화를 시도한다. 예를 들면 "아주 작은 습관의 힘"이라는 책을 읽은 뒤 습관을 세우는 계획을 이렇게 수정한 적 있다.
"19시에 퇴근 하여 19시 15분에 지하철을 타고 19시 40분에 내린 다음 개찰구를 나와 바로 헬스장으로 향하기"
과연 이게 무슨 짓일까? "아주 작은 습관의 힘"이라는 책을 읽으면 습관은 매우 구체화되어 어떤 행동의 끝을 이동으로 다른 행동이 이루어질 수 있게 상세하게 기록하는 것이라고 했다. 이렇게 1주일 동안 계획을 세웠는데 사실 추상화된 한 마디 "헬스장 가기"와 다를 바 없었고 행동력의 차이를 느끼지 못했다.
그 외에 많은 시도를 했었다.
특정 시간 이후엔 전혀 인스타그램, 카카오톡, 유튜브를 보지 않고 온전히 나에 대해 집중하는 아날로그 시간을 보내는 것 - "도둑맞은 집중력" 을 읽고 난 후
1주일마다 책 한 권씩 읽어 나가는 챌린지를 하는 것 - "책 잘 읽는법" 을 읽고 난 후
일을 시작하기 전 왜 해야 하는가를 명시하는 사이클을 가져가는 것 - "Starts with why" 를 읽고 난 후
등 다양한 시도를 해봤지만 매번 내게 큰 영향을 준 사례는 없었다. 하지만, 자기 계발 서적에 대한 묘미는 이렇게 1주일이라도 나를 변화시킨다는 것이다. 어쩌면 반복되고 지루한 삶을 살고 있을 땐 자기 계발 서적을 읽고 내 삶에 적용해 보는 시간을 가져보는 것도 좋은 것 같다.
내년 읽고 싶은 책을 미리 선정 해놓았다. 현재 읽고 있는 소설책 시리즈 완결을 내는 것과 새로운 소설을 읽는 것으로 시작해서 다양한 기술 서적에 대한 실패를 성공으로 바꿀 것이다.
책을 같이 읽을 사람 또는 모임이 있다면 좋겠다는 생각을 자주 한다. 강제성과 의견을 주고받을 수 있고 그러면서 다른 사람의 사고를 배울 수 있다는 것이 굉장히 큰 이점인데 요즘 이런 취미를 공유할 수 있는 사람이 흔치 않아 아쉽다.
올해 블로그는 대부분 파이썬 기술적인 요소를 적는 아티클을 포스팅 했고 연말이 다가올 때 쯤 AWS에 관심을 많이 갖고 AWS에 대한 블로그도 남겼다.
"친절한 기술 블로그 작성하기"
블로그를 포스팅 하는 플랫폼을 두 개로 운영 했었으나 올해 중반 부터는 "Medium" 으로 변경 해서 쭉 사용 중이다. 블로그는 개인적으로 다시 공부할 때 알기 쉽게 적는것을 목표로 글을 써왔는데 내 글이 꽤나 불친절한 경우도 많은 것 같았다.
블로그에서 글을 처음 읽는 예상 독자가 바로 이해할 수 있는 글을 쓰는 연습을 해야겠다. 어떤것이 친절할지에 대한 정의는 아직 내리지 못 했지만 글을 뒷받침 하는 이미지가 있고 그 과정이 상세하다면 친절할 것 같다.
2024.03 ~ 현재 진행 중
"3월의 시작"
인프런 플랫폼에서 "김영한"님의 강의인 자바 문법을 기초부터 수강하여 중급까지 달려왔다. 이때까지만 해도 나는 스터디원이었다. 중급 강의를 듣던 중 이론에 기울었을 때 어떻게 사용해야 하는지를 공부하고 싶다는 의견들을 수렴하여 결국 Nextstep에서 진행하는 "Java playground - TDD with 클린 코드"로 변경 되었다.
"강의에서 미션으로 변경"
그러자 엄청난 사이드 이펙트가 발생했고 스터디 리더가 탈퇴하며 내가 자연스레 이어받았다. 기존 멤버 한 명과 신규 인원 두 명이 추가되어 총 4명이서 다시 진행되었다.
"스터디는 끝 없는 사람 구하기의 연속일까?"
첫 번째 미션이 끝나갈 무렵 모든 인원이 탈퇴했고 내가 신뢰하는 지인을 스터디로 끌어들여 총 3명이서 미션 3개를 클리어하고 어느덧 마지막을 달려나가고 있다.
2024.10 ~ 현재 진행 중
"스터디 개설"
네트워크 지식이 있으며 인프라도 다룰 줄 알고 L2, L3 장비를 실제 만지는 운영 업무를 하는 지인이 있다. 어느덧 카페에서 근황 얘기를 나누던 중 AWS에 접속하여 회사 업무를 해야 한다는 것이 아닌가?
스터디는 그렇게 시작되었다.
스터디는 인프라 이론만 배우는 것이 아닌 우리가 직접 만들어보고 수정해 볼 수 있는 강의를 채택했다. "인프라 공방" 이었고 두 개의 미션을 풀어나가면서 각 레이어 계층에서 테스트를 하며 개발자가 어느 수준까지 인프라를 다뤄야 하는지를 잘 나타내줬다.
"AWS 비용이 가르쳐준 현실"
이 둘은 만나서 1 시간 ~ 2 시간 내로 AWS 서비스를 프로비전 했다 디프로비전 하는 미친 행동을 보였다. 당연히 문제는 비용이었고 그러다 NAT Gateway 비용을 줄일 수 있는 방법을 배우기도 했고 Bastion Host 대신 SSM을 쓰는 방법을 배우기도 했다.
눈으로만 보던 인프라는 우리에게 더 어렵게만 느껴졌었는데 실제 만들고 비용을 경험해보고 많이 배웠다. 미션을 기반으로 사이드 프로젝트도 구성해 보기도 했었는데 학습은 직접 해보지 않는 이상 체득하기 어렵다는 걸 확신했던 시기이다.
하지만 그 고통은 현재 나와 스터디원에게 굉장히 크게 받아들여졌기 때문에 이 스터디가 잠시 중단되었다.
2025년 목표에 우린 서로 이 미션을 모두 풀어내기로 약속했다. 그 약속을 지키는 시간은 더 이상 두려움이란 없을 것이라고 확신한다.
LG Aimers 팀을 그대로 구성해서 개발 트랙과 데이터 분석 트랙 중 하나를 선택하여 우리의 과거 "2023년 비버 웍스 자연어 처리 해커톤" 때 느꼈던 무박 3일을 다시 재현하자고 꼬셨다.
그렇게 우린 모두 부산으로 향했고 순위권에 들진 못했지만 1위 팀과 같은 알고리즘과 데이터 분석 방법론을 선택했었다. 너무 신기한 경험이었다.
우리의 발표, PPT 자료가 문제였다고는 말 하지 않았다. 그 시간은 우리에게 굉장히 귀중했고 재밌었다고 이야기했다.
부산을 나오는 길 먹었던 국밥은 올해 중 최고였다. 매일 햄버거, 치킨, 핫식스, 커피만 달고 살았다 무려 3일 동안.
이직을 위해 두 회사에 서류가 합격되어 과제와 코딩 테스트를 응시했었었지만 탈락했다. 그 이유는 사실 누구보다도 내가 더 잘 안다.
"페이히어"는 과제 분량이 은근 많았었는데 주변 지인들과의 약속이 우선이었다. 그렇기에 하루 만에 모든 과제를 풀어내는 건 불가능에 가까운 해커톤을 하는 듯했다. 테스트 코드를 어렴풋 작성하다 중간에 그냥 제출했었고 README 파일에 개발 과정에 대한 내용을 하나도 적지 않았었다.
"샐러드랩"
나름 알고리즘 기본기는 있다고 생각했었는데 코딩 테스트 7문제 중 5문제의 정답, 3문제의 시간 복잡도 통과라는 머리가 띵한 통계가 나왔다. 당연히 떨어질 것이라 예상했고 그 결과가 맞았다.
이직을 위해 두 회사에서 진행 한 과제 및 코딩 테스트는 2024년 나에게 어떤 걸 더 공부해야 할지 알려주는 듯했으나 면접까지 갔던 것이 아니었기에 금방 식었다.
다른 회사에서 제공하는 입사 절차를 거쳐보는 것만으로도 이번 해에 좋은 기회를 받아봤다고 생각된다. 내년엔 조금 더 전투적으로 준비를 하지 않을까 생각이 든다.
올해는 다양한 컨퍼런스에 참여하기 위해 여럿 신청했었으나 모두 떨어지고 파이썬 컨퍼런스 날 대회 참가하게 되어 못 가게 되었었다.
외부 활동은 반복되는 일상에서 잠시 벗어날 수 있고 새로운 도메인을 접할 수 있는 유일한 기회라고 생각한다. 그렇기에 매년 팀원들과 참가하는 연례행사 느낌이 있다. 내년도 색다른 경험을 하고 싶다.