-
회고
[회고] 2025년 하반기 - 나보다 나를 믿어준 사람
들어가며 나조차 나를 믿지 못하던 순간에도, 누구보다 나를 믿어준 사람이 있습니다. 당신 덕분에 크고 작은 도전을 할 수 있었습니다. 목표했던 대학을 가기 위해 입시를 다시 준비하기도 했고, 남들이 대기업 연수원 사진을 올리는 시점에 개발자가 되겠다며 새로운 공부를 시작하기도 했습니다. 도전을 거듭하며 원하는 결과가 나오지 않을 때면 초조함과 더불어 스스로가 초라해지는 순간들이 있었습니다. 모두가 잠들 시간 집에 돌아와 표정이 굳은 채 조용히 밥을 먹고 있으면 당신은 "1, 2년 돌아가는 건 아무 일도 아니다"라며 굶지 말라고 몰래 비상금을 쥐여주곤 하셨습니다. 당신의 믿음이 있었기에 멈추지 않고 도전할 수 있었습니다. 은퇴 후에도 새 일터에서 고군분투했던 당신이 자리에서 일어나지 못하여 응급실에 다녀왔..
-
회고
[회고] 2025년 상반기 - 정성이 들어가는 일
들어가며 일을 할 때 정성을 다한다는 것은 어떤 의미일까. 우연히 인적 없는 거리에서 풀숲 깊숙이 박힌 쓰레기를 줍기 위해 온몸에 먼지와 풀잎을 묻혀가며 일하는 당신의 모습을 본 적이 있습니다. '왜 이렇게까지 열심히 할까?' 생각하며 당신이 참 미련하다고 여겼습니다. 퇴직 후 무릎 보호대를 차고 절뚝이며 걷는 당신을 보며, '미련하다'는 말 하나만으로는 당신의 삶을 설명하기 어렵다는 것을 깨닫습니다. 상반기의 시간을 돌아보며, 당신의 삶을 어떻게 설명할 수 있을지 답을 남기고 싶어 이 글을 씁니다. 부디 이 글이 당신에 대한 참회록이 되기를 바라며. 정성을 다하는 일가끔 사람인지라, 일하기 힘들 때가 있습니다. 지친 마음에 집에 가던 어느 날, 유튜브 알고리즘에 뜬 영상을 보다가 일하..
-
회고
[회고] 2024년 하반기 - 무용(無用)을 사랑하는 마음
들어가며 오랜만에 집에 오는 자식을 위해 정성껏 식사를 준비하고, 자식의 가계에 조금이나마 보탬이 되고자 반찬을 투박하게 담으며, 눈 오는 날 안전히 돌아가길 바라는 마음으로 시야에서 보이지 않을 때까지 눈을 맞으며 배웅하는 당신의 모습이 유독 선명히 보였습니다. "조금이라도 챙겨줄 수 있을 때 챙겨주고 싶다"는 말을 반복하던 당신의 모습에서 자식들에게 쓸모없는 사람이 되면 어떻게 해야 할까 와 같은 두려움이 느껴지는 듯했습니다. 유용했던 당신의 젊음을 맞바꿔 타낸 졸업장을 당신 품에 안겨드리는 지금에서야 무용해지고 있다고 느낄지 모를 당신을 지켜야 할 차례가 되었음을 깨닫습니다. 이번 하반기는 유용한 존재로 남을 수 있도록 끊임없이 노력하는 당신을 닮은 형태로, 내가 속한 팀에서 나의 쓸모를 증명하기..
-
서버 개발
프로젝트 삽질기33 (feat ECR tag 관리)
들어가며 AWS ECR에 빌드한 Docker Image를 업로드할 때 tag를 latest로 설정했습니다. 그 후 latest 태그가 붙은 이미지를 이용해서 배포하는 과정에서 문제가 생겼는데, 어떤 문제가 생겼고 문제를 어떻게 해결했는지 공유하고자 합니다. 문제 정리첫 번째, 롤백이 안 되는 문제가 있었습니다. 배포 과정에서 문제가 생기면 롤백해야 했는데, ECR에는 모두 latest 태그가 붙은 이미지만 존재했습니다. 그래서 문제가 발생하는 latest 버전이 아닌 이전 버전으로 롤백을 하려고 하더라도, 현재 문제가 발생하는 latest 태그의 Docker 이미지로 컨테이너를 만들어야 했습니다. 즉 latest 태그를 유지함으로써 서버를 롤백할 수 없는 문제가 있었습니다. 두 번째는 버전 관리..
-
서버 개발
프로젝트 삽질기32 (feat DOO 단위 테스트)
들어가며 이 글에서 비즈니스 로직과 이벤트 전달 로직을 분리하는 과정을 공유했습니다. 이번 글에서는 테스트 코드를 활용해서 이벤트를 전달하는 코드가 호출되었는지, 그리고 이벤트를 전달하는 코드를 호출하기 위해 어떤 객체가 전달되었는지 확인한 방법을 공유하고자 합니다. 그 과정에서 테스트 코드를 어떻게 작성했는지 함께 공유하겠습니다. 테스트 코드 작성 준비기존 코드는 아래와 같이 구성되어 있었습니다. 만약 아래 코드로 단위 테스트를 작성한다면, 테스트 코드를 작성하기 어렵습니다. hackle, amplitude SDK를 직접 제어하기 어렵고, sdk를 활용해서 외부에 데이터를 전달하는 것이기 때문에 테스트를 하기 위해서는 외부의 환경에 의존해야 합니다. 문제를 해결하기 위해선, 직접..
-
서버 개발
프로젝트 삽질기31 (feat DOO, Enum 클래스)
들어가며팀에서 데이터 드리븐한 의사결정을 할 수 있도록 핵클, 앰플리튜드에 데이터를 적재하는 환경을 구축하고 있습니다. 데이터를 전달하기 위해 비즈니스 로직에 이벤트 전달 코드를 함께 작성했습니다. 그러다 핵클, 앰플리튜드에 전달해야 하는 이벤트 전달 코드가 점진적으로 많아지면서 코드의 가독성을 해치게 되었고 하나의 클래스에서 여러 책임을 갖게 되는 문제가 발생했습니다. 이 글을 통해 제가 겪은 문제를 어떻게 해결했는지 공유하고자 이 글을 씁니다. 이벤트 전달하기먼저 유저의 회원가입을 처리하는 클래스가 있다고 가정하고 간단한 샘플 코드를 살펴보겠습니다. 만약 유저가 언제 회원가입을 했는지 알기 위해 핵클과 앰플리튜드에 이벤트를 전달하고 싶다면 다음과 같이 코드를 구성할 수 있을 것입니다..
-
개발 협업
[협업] 협업을 위한 Git Flow 설정하기
들어가며Git 커밋 컨벤션을 정리한 글에 이어, 협업에 필요한 내용들을 계속해서 정리하고 있습니다. 개인적으로 저는 git 때문에 어려움을 겪었던 적이 많습니다. git 설정을 잘못해서 기존 작업물들이 다 날아갔던 경험, 예전 작업 상태로 되돌리고 싶어도, 어떻게 되돌리는 줄 몰라서 헤맸던 경험, 브랜치를 사용하지 않아서, 굉장히 좋지 못한 코드를 계속해서 올렸던 경험 등 git flow를 알았더라면 생기지 않았을 경험들이 많습니다. 앞으로 저와 함께 하는 팀원들은 저와 같은 경험을 하지 않도록 하고 싶어 글을 적습니다. 앞으로 저와 함께 협업하는 팀원분들에게 도움이 되고 싶습니다. Git Flow란?Git-Flow를 설명하기 전에, Git 브랜치 전략에 대해 짧게 설명드리겠습니다. 만약 ..
-
개발 협업
[협업] 협업을 위한 git 커밋컨벤션 설정하기
들어가며어떻게 하면 협업을 더 잘할 수 있을까 고민하며 협업에 필요한 내용들을 계속 정리하고 있습니다. 앞으로 저와 함께 협업하는 팀원분들에게 도움이 되고 싶습니다. 이 글은 Udacity Git Commit Message Style Guide를 주로 참고하여 작성했습니다. 세부적인 내용은 프로젝트에 맞춰 수정할 수 있습니다. 대충 썼던 git Commit Message왼쪽은 지금까지 제가 작성한 커밋 메시지이고, 오른쪽은 커밋 컨벤션을 공부하면서 적용한 커밋 메시지입니다.(다시 보니 고쳐야 할 점이 많습니다) 왼쪽을 지금 보니 매우 한숨만 나오는 커밋 메시지입니다. 이런 Commit Message가 많이 누적될수록 가독성은 매우 떨어집니다. 특히 여..
-
개발 협업
[협업] Prettier & ESLint, Airbnb Style Guide로 코드 컨벤션 설정하기
들어가며대학교 수업 시간, 교수님은 제게 '일 잘하는 사람의 특징'에 관하여 물은 적이 있습니다. 고심 끝에 "팀원이 일을 잘 진행할 수 있도록 배려할 수 있는 사람"이라고 답했습니다. 지금도 이 생각에는 변함이 없습니다. 어떻게 하면 팀원과 함께 일을 잘할 수 있을지, 디테일한 부분을 계속 신경 쓸 수 있는 사람이 되고 싶어 노력하고 있습니다. IT벤처창업동아리 SOPT Server 파트에서 활동하며, 처음 협업을 준비하고 있습니다. 저처럼 협업을 처음 준비하는 많은 분들에게 도움이 되고 싶어 이 글을 작성합니다. 코딩 컨벤션좋은 코드를 작성하고 싶습니다. 팀원이 제 코드를 잘 이해할 수 있도록 가독성 높은 코드를 작성하고 싶습니다. 이를 위해 코딩 컨벤션을 잘 지키려 노..