우아한 형제들, SW개발 [직무분석]
상태바
우아한 형제들, SW개발 [직무분석]
  • 권수연 기자
  • 승인 2022.08.29 10:35
  • 댓글 0
이 기사를 공유합니다

 

현직자가 전하는 조언만큼 뼈가 되고 살이 되는 정보가 있을까? 취업준비를 함에 있어서 현직에 종사하고 있는 선배들의 조언은 나침반이 되고 동기부여가 된다. 이에 뉴스앤잡이 직무별 인터뷰를 모아 독자들에게 소개한다.

 

Q. 우아한형제들에서 맡고 있으신 주요 역할에 대해 소개해 주세요.

안녕하세요, B마트서비스팀에서 백엔드 개발자로 일하고 있는 우태균입니다.

B마트서비스팀은 고객분들이 직접적으로 사용하는 앱과 웹 서비스를 만들고 있는데요.

저와 같은 백엔드 개발자들은 서비스에 필요한 각종 API를 제공하고 상품, 카탈로그와 같이 노출에 필요한 데이터를 관리하고 제공합니다.

저를 포함 네 명의 백엔드 개발자들은 여러 영역을 넘나들며 함께 작업하고 있는데요. 최근 저는 다양한 상품을 고객들이 원하는 시점에 원하는 구성으로 보여주기 위해 노력하고 있어요. 개인화 추천 상품 구좌와 AB 테스트를 통한 데이터 기반의 서비스 발전을 위한 기반 작업을 하고 통계 데이터를 수집, 분석하는데 기여하고 있습니다.

 

Q. 우아한형제들에서 백엔드 개발자로 일하며, 언제 성취감을 느끼시나요?

B마트 서비스가 성장하는 과정에서 발생하는 이슈를 관리하고, 업무들을 수행할 때 성취감을 느끼고 있어요. B마트 서비스는 2019년 배민마켓으로 오픈해서 B마트로 서비스명칭이 변경되고, 마트 규모의 장보기 서비스로 발전해 왔는데요.

B마트 서비스를 제공하는 지역도 확장되고 이용하는 고객과 판매하는 상품 구색도 다양해지면서 몇몇 이슈들이 있었고, 서비스 성장을 위한 여러 시도를 하게 되었어요. 그중에서도 저는 사업의 확장과 동시에 안정적인 서비스 제공을 위해 인프라를 분리시키고 구조를 잡는 일들을 하고 있습니다. 이런 안정성과 관련된 작업들은 진행하는 당시에는 다소 과해 보이는 작업으로 보일 수도 있고 장점이 크게 보이지 않는 경우도 있어요. 하지만 시간이 지나고 보다 복잡하고 다양해진 데이터를 다루는 일에도 큰 부담 없이 확장해나가는 스스로를 발견하며 ‘과거에 내가 한 일이 현재의 나를 만들었다’는 생각과 함께 큰 성취감을 안겨줘요.

오픈 초기와 달리 서비스가 성장 궤도에 접어들면서 다양한 마케팅을 시도하게 되고, 고객 이용 패턴 분석을 통한 의사 결정 등 데이터를 기반으로 한 다양한 업무가 생겨나게 됩니다. 이때, 데이터팀과 협력하여 추천 모델을 만들기도 하고 저희 데이터를 마케팅 매체에 제공할 수 있게 가공하여 전달하는 등 다양하게 확장된 업무들을 진행하게 될 때면, 특정 업무 내에서도 여러 가지 시도를 통해 인사이트를 얻고 더 발전된 형태로 나아가게 되는데요. 다양한 방식으로 함께 고민하고 한 걸음씩 나아가 종국에 서비스 성장에 기여되는 모습을 지표로 확인할 때 성취감을 느끼고 있습니다.

 

Q. 우아한형제들에서 어려운 과제를 극복하고 기술적으로 성장한 경험을 이야기해주세요.

우아한형제들은 작년부터 ‘피트스탑(Pitstop)’이라 불리는 과제와 업무 재정비 기간을 약 한달간 가지고 있는데요. *피트스탑(Pit Stop)이란, 피트(pit)라는 서킷(circuit) 안의 간이정비소에서 레이싱 경기 중, 차량을 정비보수하고 타이어 등을 교체하는 것을 말합니다.

이는 “새롭게 일을 추가하는 것 만큼이나 이미 우리가 하고 있는 일의 생산성을 높이고 안정성을 확보하는 것이 중요하다는 것을 같이 공유하고 동참을 유도하기 위한 캠페인 개념”으로 대표이신 범준님이 전사에 공유해 주셨어요.

피트스탑 기간 동안 우아한형제들의 개발자들은 약 한달 동안 각 서비스가 보완해야 할 사항들을 개선해 나가는 작업을 진행 했습니다. B마트 서비스 또한 점차 다양한 형태로 발전하며 발생한 서비스와 시스템 안정성 문제를 해결하고자 피트스탑 기간 Pub&Sub 구조로 리드모델을 구축하는 작업을 진행했어요. 관리와 노출 도메인을 분리하여 구조적으로 안정성을 가져가는 이 모델은 Entity 변경점을 Hooking 하여 Consumer를 통해 노출을 위한 비정규화 데이터로 전환하는 과정으로 구성돼요. 관리에 용이한 정규화 데이터의 장점을 유지하고, 이를 비정규화하는 과정이 노출 도메인에 그대로 적용되면서 인스턴스 리소스 사용량을 크게 감소시키는 효과를 얻을 수 있었어요.

이 과정에서 복잡하게 얽혀있던 도메인을 분리하고 레거시 코드를 대거 제거할 수 있었습니다. 또한, 다양한 서비스 레이어에 걸쳐 적용되어 있던 캐시를 비정규화된 리드모델 하나만을 캐싱하는 형태로 수정하면서 복잡도도 낮추고 구조 변경에 따라 노출에 영향을 주는 범위를 크게 줄일 수 있었어요. 광범위한 영역을 동시다발적으로 수정해 나가며 구조를 잡는 과정이었기에 함께 작업한 동료들과 역할을 적절히 나누어 진행했고, 활발한 소통을 통해 최선의 형태로 구현되도록 노력했던 경험은 앞으로 백엔드 개발자로서 바르다고 생각되는 개선 사항을 진행하는 데 망설임을 줄이고 자신감을 얻는 계기가 되었어요.

 

Q. B마트서비스팀의 백엔드 개발자로서는 어떤 기술 역량과 자질이 요구되나요?

개발 영역에 관계없이 커머스 분야에 필요한 기술역량으로 소개 드릴게요.

B마트는 네이티브 앱과 웹이 적절히 결합된 형태를 취하고 있어요. 그렇기 때문에 각 환경이 갖는 특성과 JavaScript Interface를 비롯한 데이터 교환의 흐름, 서버와의 통신을 위한 데이터 처리 구조에 익숙하거나 잘 알고 있어야 해요.

저희 백엔드 기술 스택으로는 Java 8 + Spring + Redis + Mysql(Aurora,maria DB) + Queue(aws SNS + SQS)로 이루어져 있어요. 주된 작업은 대부분 이 기술 스택으로 이루어지기 때문에 기본적으로 갖추어야 할 역량이라고 볼 수 있습니다. 이 밖에도 모니터링, 로그 시스템, 추천/통계 시스템을 위해 InfluxDB, Kafka, Airflow, Athena, Grafana, Prometheus 등 다양한 기술을 상황에 맞게 선택하여 사용해요.

배포 환경 구성과 부하 테스트, 각종 스크립트 영역까지 포함하면 더 다양해질 있는데 이런 기술들을 모두 잘하는 건 어렵습니다.

그렇게 때문에 개발자는 본인이 잘할 수 있는 개발 분야는 요구받은 것 이상으로 주도적으로 수행해 성취를 이뤄내고, 부족한 분야지만 책임감이 따르는 입장에서는 빠르게 학습하고 습득해 자신의 영역을 넓혀가려는 자세가 뒷받침되어야 합니다.

그 외 앱 개발 환경도 말씀드리면 Swift, Kotlin 전환, Rx, DI 적용, 아키텍처 변환 등의 과정을 거쳐 지금의 기술 스택을 갖게 되었어요.

웹은 Vue.js, React.js 모두 활용되고 있고 디자인 시스템을 비롯한 공통 컴포넌트 확장 등을 통해 끊임없이 더 좋은 모습으로 발전하고 있어요.

B마트뿐 아니라 우아한형제들은 개발자로서 성장하는데 좋은 환경을 갖추고 있습니다. 개인의 역할을 스스로 한정 짓지 않고 주위를 둘러보며 필요한 일들을 하나하나 함께 이루어 나간다면 기술 역량은 자연스럽게 높아진다고 생각해요.

[자료제공 : 우아한형제들]


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.
주요기사
이슈포토