////
Search
🎙️

메쉬코리아 - 주영익 개발자님 (서버/백엔드 포지션)

개발자 커리어 점프 [점핏]! 개발자를 위한 직무 이야기를 전해드립니다.
개발자님의 직무 이야기
1. 담당하고 계신 업무를 소개해주세요.
상점이나 기업에서 실시간(이륜, 도보 등) 배송을 신청할 수 있는 부릉 프라임 서비스를 담당하고 그중에서 배송 접수를 받는 서버를 맡고 있습니다.
2. 현재 회사와 지금의 직무를 선택하게 된 계기는 무엇인가요.
메쉬코리아를 선택한 첫 번째 이유는 기술 스택입니다. 제가 참여하고 있는 Modern PHP User Group이라는 개발 커뮤니티 멤버를 통해 메쉬코리아가 제가 익히고 싶었던 기술 스택으로 큰 규모의 서비스를 운영하고 있다는 걸 알게 되었습니다. 당시엔 AWS와 같은 클라우드 위에서 Modern PHP를 지향하는 서비스를 경험해보고 싶었습니다. 두 번째 이유로는 함께 일하게 될 동료들인데요. 그 커뮤니티 활동 중 기술적으로 많은 가르침을 주셨던 동료들의 실력과 인성이 메쉬코리아를 선택할 수밖에 없는 가장 큰 계기가 되었습니다.
3. 하루 일과를 소개해주세요.
자율 출퇴근제라서 매일 출근 시간은 다른데, 출근하자마자 커피를 내리는 것이 저만의 루틴입니다. 무료 커피도 제공하지만, 회사에 드립 커피를 즐기는 동료가 많아 종종 함께 아침을 시작하곤 합니다. 자리에 앉아서는 당일 진행할 업무와 커뮤니케이션 해야 할 목록을 정리합니다. 정리된 내용은 슬랙의 데일리 공유 채널에 공유합니다. 데일리 미팅은 오프라인으로도 진행하는데 주요 하는 일과 특별히 공유할 이슈 위주로 짧게 진행하고, 더 깊이 다룰 주제가 있다면 데일리 미팅이 끝난 후 이야기를 더 나눌 때도 있습니다. 데일리 미팅은 점심시간(정해지지 않았지만 보통 1시~2시, 결제는 식권대장 포인트로!)이 지난 2시 10분에 시작합니다. 매일 다양한 이슈가 발생하는데, 데일리 때만 공유하는 건 아닙니다. 팀 내 커뮤니케이션은 서로 최대한 방해하지 않는 선에서 꽤 빈번하게 일어납니다. 각자의 스킬과 도메인 지식이 다르기 때문에 혼자 외롭게 삽질하지 않고 문제를 빠르게 함께 해결하기 위함입니다. 그러나 집중하고 싶을 때는 물론 방해받지 않도록 서로 배려하고 있습니다. 주마다 반복되는 일정이라면, 팀이나 담당 도메인별 위클리나 팀장님과의 1:1(one on one) 미팅도 있습니다.
4. 업무를 하며 가장 보람을 느낄 때는 언제이신가요.
배송 건수가 늘어나는 걸 체감할 때와 장시간 매만졌던 서비스를 안정적으로 배포했을 때 보람이 큽니다.
[메쉬코리아]의 개발이야기
1. 업무의 프로세스를 소개해주세요.
1-1. 기획부터 개발까지 진행되는 프로세스
PO(Project Owner)가 기능 요건과 목표를 정리하고 상세 화면 구성은 UX 디자이너가 진행합니다. 저는 서버팀이라서 프로젝트 초반에 PO와 기능 명세를 확인하고 대략의 일정을 추정하고 스펙(보통 Open API 3.0)을 작성한 후 client 개발자분들과 공유합니다. 스펙에 이견이 없으면 이제 달리는 거죠. 큰 흐름은 이렇지만 waterfall식으로 일방적으로 결과물이 전달되는 건 아니고 이 과정에서 커뮤니케이션이 다양하게 발생합니다.
1-2. [설계, 분석, 개발, QA, 런칭] 단계별 소요되는 평균시간
요구 사항이 매 프로젝트마다 너무 달라서 평균 시간이라고 할 만한 건 없습니다. 현재 일부 팀/TF에서는 스크럼으로 진행하기도 하지만, 저희팀은 조금 더 자유롭게 각자가 단계별 일정을 정하고 계획에 맞춰 업무를 진행합니다.
2. ★개발 배포 프로세스를 소개해주세요.
개발 환경, 외부의 연동사를 위한 테스트 환경, QA 환경, 상용 환경으로 나뉘고 각 환경은 완전히 격리되어 있습니다. 보통 Docker로 세팅되는 로컬 환경에서 개발을 마치고, 개발 환경에 올려서 다른 팀과 연동 테스트를 진행하죠. 이후 QA 팀에서 배포 가능 수준임을 선언한 이후 상용 배포합니다. 배포 과정은, 특정 규칙으로 github에 push하면 CI/CD 파이프라인이 돌고, 각 환경에 배포할 수 있는 준비까지 됩니다.
3. 우리회사의 개발 환경을 소개해주세요.
개발팀은 대부분 추가 모니터와 함께 Macbook을 지급받는 편입니다. 서버팀은 대부분 Java를 사용하지만, 저희 팀만 PHP를 쓰고 있습니다. 저희 팀 기준으로 설명하자면, 메인 IDE는 IntelliJ(PHP plugin을 설치하면 PhpStorm과 동일하게 사용 가능), DB client는 DataGrip을 사용합니다. Github에서 형상관리를 하고, Laravel Framework을 사용하며, 서버 운영은 AWS ElasticBeanstalk에서 최근 EKS로 전환하였습니다. 모니터링이나 오류 트래킹은 Sentry, 성능 분석은 New Relic을 사용하고, Jenkins와 Argo CD로 빌드/배포 파이프라인이 구축되어 있습니다. 이 과정에서 PHPUnit 기반의 테스트와 정적 분석 도구인 SonarQube의 품질 기준을 통과해야 합니다.
4. 개발 코드 리뷰문화가 있다면 소개해주세요.
PR을 올리면서 해당 코드와 관련된 분들에게 리뷰 요청을 보내기도 하지만, 기본 옵션은 모두에게 리뷰 요청을 하는 것입니다. 배포를 위해서는 반드시 한 명 이상의 승인이 필요한데, 이와 더불어 빌드 시에 확인하는 테스트나 SonarQube의 품질 기준 등의 정책은 팀 위클리 미팅에서 계속 조정되고 있습니다.
5. 장애나 긴급상황에서는 어떤 프로세스로 대응하시나요.
모든 장애는 슬랙에서 먼저 반응이 옵니다. 상용 서비스 알림 채널에서 이상이 감지될 경우 최초 발견자는 개발자 채널에 간단히 현상을 공유하고 원인 분석을 시작합니다. 이 과정에서 도움을 줄 수 있는 팀원들이 함께하기도 하고, 개발팀 외부에 장애를 알리고 진행 상황을 공유하는 커뮤니케이션은 장애를 직접적으로 대응하지 않는 팀장님들이 맡아 주시기도 합니다.
6. 기술 도입이나 업무 영역의 확장이 자유로우신 편인가요.
명백하게 위험한 행동이 아닌 이상, 하지 말아야 하는 일은 없습니다. 도입하려는 쪽이나 하지 않으려는 쪽 모두 합리적인 근거로 서로를 설득해야 합니다.
나의 개발 Tip
1. 개발을 위한 나만의 데스크 세팅!
입사 때는 iMac 받아서 쓰다가 3년이 지나 맥북을 새로 받았는데요. 개발할 땐 여전히 iMac이 쾌적하다는 생각입니다. 맥북은 회의 때나 재택 할 때 집에 가져가서 사용하고 있습니다. 메인 장비 이외에는 Realforce 키보드 정도에 애착이 있고, 머리가 복잡할 때는 책상 위 먼지를 치우기도 합니다. 공부하기 싫을 때 괜히 책상 정리하던 버릇이 남았나봅니다.
2. 최근 가장 관심있는 기술스택(예, OS/ 언어) 은 무엇이며, 왜 관심을 가지게 되셨나요?
지금도 많은 테스트가 돌고 있지만, 현실의 어려움을 극복하고 좋은 품질의 테스트 작성은 여전히 어렵습니다. 팀원들 모두 테스트 작성에 관심이 많아서, 올해는 팀이 함께 성장할 수 있는 기회를 만들어보고 싶습니다.
3. 현재 하고 있는 업무의 역량을 키우기 위한 나만의 노력은 무엇인가요?
보통은 책으로 많이 습득합니다. 복지 포인트로 보고 싶은 책을 두세 권씩은 미리 쟁여둡니다. 책 이외에는 올해 구매했던 TDD 온라인 강의도 꽤 좋았고, 각종 컨퍼런스 영상을 공유해서 보기도 하고, 유료 컨퍼런스는 회사에 요청해서 다 같이 결제해서 보기도 했습니다. 작년에 둘째가 태어나기도 했고, 사내 스터디를 진행하다 보면 블로그를 쓸 여유가 없긴 합니다. 그러나 JetBrains의 PHP Annotated 블로그는 꾸준히 번역해서 올리고 있습니다.
우리회사는 개발자를 위해 이렇게 지원합니다.
함께하고 싶은 미래의 동료를 소망해주세요 협력과 커뮤니케이션이 좋은 사람을 좋아합니다. 마이크로 매니징을 하지 않아도 주도적으로 결정하고 개선하는 분을 원합니다. 눈치 보지 않고 충분히 표현해주시는 분이 좋습니다. 기술적으로는, 현재 구현된 시스템과 코드에 관해 팀원들이 나누는 이야기를 이해하고 시스템을 안정적으로 만드는 일에 관심이 많으신 분을 찾고 있습니다. 그러나 문제를 해결하는 과정에서 기술로만 풀어내려 하지 않고, 다양한 관점에서 해결책을 찾는 분이 좋습니다. 기술적으로든 그 외적으로든, 자신과 다른 사람을 인정하는 분이면 좋겠습니다.
메쉬코리아의 채용 포지션이 궁금하다면?! 점핏에서 확인해보세요
점핏에서 개발자로 취업하고 취업축하금 받으세요!