-
회고
[회고] 2024년 하반기 - 무용(無用)을 사랑하는 마음
들어가며오랜만에 집에 오는 자식을 위해 정성껏 식사를 준비하고, 자식의 가계에 조금이나마 보탬이 되고자 반찬을 투박하게 담으며, 눈 오는 날 안전히 돌아가길 바라는 마음으로 시야에서 보이지 않을 때까지 눈을 맞으며 배웅하는 당신의 모습이 유독 선명히 보였습니다. "조금이라도 챙겨줄 수 있을 때 챙겨주고 싶다"는 말을 반복하던 당신의 모습에서 자식들에게 쓸모없는 사람이 되면 어떻게 해야 할까 와 같은 두려움이 느껴지는 듯했습니다. 유용했던 당신의 젊음을 맞바꿔 타낸 졸업장을 당신 품에 안겨드리는 지금에서야 무용해지고 있다고 느낄지 모를 당신을 지켜야 할 차례가 되었음을 깨닫습니다. 이번 하반기는 유용한 존재로 남을 수 있도록 끊임없이 노력하는 당신을 닮은 형태로, 내가 속한 팀에서 나의 쓸모를 증명하기 ..
-
회고
[회고] 2024년 상반기 - 등대가 되었던 사람
들어가며 평생을 미련하게 살아온 당신을 생각합니다. 고등학교에 가지 못하고 벽돌을 날랐던 탓인지 당신의 왼쪽 어깨는 주저앉았고, 미화원으로서 거리를 청소하기 위해 긴 시간을 무릎 닳도록 걸은 탓인지 당신은 다리를 절뚝여야 했습니다. 방 안 가득 퍼져 있는 코를 찌르는 당신의 파스향을 맡을 때에도 당신의 고단했던 하루를 크게 신경 쓰지 않았던 것 같습니다. 어느 늦은 저녁 당신으로부터 걸려온 전화를 받았습니다. 집 근처 벤치에 앉아있다는 간단한 상황만을 공유한 채 당신은 전화를 끊었습니다. 설마 하는 생각에 벤치 앞에 갔을 땐, 길을 걷다가 무릎에 힘이 들어가지 않아서 걷지 못하고 주저앉아버린 당신의 모습을 볼 수 있었습니다. 도움 없이는 걷지 못하는 당신에게 도움이 되고자 손을 건넸습니다. 당신의 손을..
-
회고
[회고] 2023년 하반기 - 미련한 사람이 우물을 판다
들어가며 언제나 다정하게 가족 옆을 지킨, 환갑이 된 당신을 생각합니다. 당신은 돈을 벌기 위해 왕복 5시간 거리를 출퇴근했습니다. 하루 종일 서서 일하며 백화점 매대에서 소리 내어 이목을 끌어야 했고, 매대에 물품이 빠질 때면, 창고에서 물품을 꺼내와 채워 넣어야 했습니다.퇴근하고서는 밀린 집안일들을 해야 했고, 잠들기 전에는 파스를 이곳저곳 붙이며, 다음 날 아무 일 없다는 듯 새벽같이 출근했습니다. 출근 전 당신은 늘 빼놓지 않고, 혼자 있어도 라면 끓여 먹지 말고 밥 잘 챙겨 먹고 있으라고 밝게 웃으며 인사했습니다. 자식이 밥을 굶을까 걱정된 탓인지 당신은 언제나 식탁 위에 반찬들을 올려두고 출근했습니다. 음식이 놓인 식탁 위에는 시간이 갈수록, 반찬 대신 당신이 복용해야 할 약이 늘어만 갑니다..
-
서버 개발
프로젝트 삽질기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 파트에서 활동하며, 처음 협업을 준비하고 있습니다. 저처럼 협업을 처음 준비하는 많은 분들에게 도움이 되고 싶어 이 글을 작성합니다. 코딩 컨벤션좋은 코드를 작성하고 싶습니다. 팀원이 제 코드를 잘 이해할 수 있도록 가독성 높은 코드를 작성하고 싶습니다. 이를 위해 코딩 컨벤션을 잘 지키려 노..