스타일쉐어 백엔드 개발자의 하루

백재현
백재현
Dec 17, 2020 · 5 min read

개발 블로그를 써보자

많은 IT 스타트업이 개발 블로그를 운영합니다. “널리 세상을 이롭게 하라”는 홍익인간 정신을 실천하거나, 회사 내부의 배움을 정리하는 데 좋기 때문입니다. 하지만 무엇보다도 회사를 알리고 좋은 분들을 모시는 것이 현실적인 목적일 것이라 짐작합니다. 스타일쉐어 개발팀도 그렇습니다. 좋은 동료를 모시기 위해 반복적으로 “개발 블로그를 써보자!”라는 목소리들이 나왔습니다.

하지만 공개할 글을 작성하기는 쉽지 않습니다. 그래서 우선 사내 게시판을 간단히 만들고, 글을 조금씩 써나가기 시작했습니다. 하지만 많은 글들 중 외부에 공개된 글은 매우 적습니다. 조금 더 정돈되거나, 더 좋은 글을 쓰려는 마음이 행동을 주저하게 만드는 것 같습니다.

Image for post
Image for post
사내 게시판. 가벼운 글부터 기술 문제를 해결하는 과정 등 다양한 글이 올라옵니다

그래서 그냥 일기장처럼 써보려고 합니다

그래서 저는 그냥 오늘 있었던 일을 가볍게 적어보려고 합니다. 우선 스타일쉐어를 간단히 소개하자면 “패션 커뮤니티+커머스” 서비스인데요. 패션에 대한 다양한 스타일을 발견하고, 구매까지 할 수 있는 공간입니다. 저는 오늘 브랜드 추천 API에 상품 이미지를 추가하는 작업을 진행했습니다.

Image for post
Image for post
Github Pull Request 를 통해 코드리뷰를 진행합니다

이 기능을 Spring Boot, Kotlin 으로 만들어진 신규 시스템에 개발하고 있는데요. 간결한 kotlin 문법으로 소소한 생산성을 맛보고 있습니다. 작업이 끝난 뒤에는 AWS Code Pipeline( Code Build + Code Deploy)를 통하여 배포했습니다.

최근에 저는 스타일쉐어의 첫 화면을 만들어가고 있습니다. 아무래도 실험과 데이터 드리븐은 개발에 빼놓을 수 없는 방식인데요. 스타일쉐어는 Firebase A/B 를 주로 사용합니다. 사용자 이벤트 데이터부터 여러 개의 서비스에 데이터까지 Google Bigquery에 적재하고 분석합니다. 현재 제가 참여하고 있는 프로젝트의 영향으로 사용자가 보는 화면이 다릅니다. 그래서 비교 대조군으로 나누어 사용자들의 행동이 어떻게 변화하는지 보조적으로 데이터를 살피고 있습니다. 데이터를 주로 담당하는 팀도 있지만, 스쿼드(=디자이너/PM/개발자가 모여서 목적 중심으로 일하는 단위) 내부 개발자들이 직접 개발한 것에 대해 데이터 추출하기도 합니다. 오늘은 저도 데이터 쿼리를 작성하여 아래의 대시보드를 만들었습니다.

데이터 드리븐도 합니다

버그는 늘 발생하죠. 버그를 발생시키는 사람을 추궁하는 그런 문화는 아니고, 개개인이 각자의 작업에 책임감을 느끼며 작업하는 분위기인데요. 오늘은 동료가 버그에 대해서 미안함을 이야기했고, 그러자 다른 동료가 아래와 같은 말을 했습니다.

“같이 개발하는 제품에 버그를 만들었다고 동료에게 미안한 마음을 가지지 맙시다. 어차피 우리는 완벽할 수 없으며 이 세상은 결함을 짊어진 채로 돌아가지 않습니까.”

Image for post
Image for post
눈가가 촉촉해지는 슬랙(사내 메신저) 메시지

스타일쉐어는 무중단으로 서비스를 운영하기 위해 innodb online ddl 을 애용합니다. 테이블에 인덱스나 컬럼을 추가할 때 데이터베이스 중단을 최소화하기 위함입니다. 잘 사용해오던 이 방식이 read replica table metadata lock 을 발생시키며 장애를 발생하고 있었습니다. 2주 단위의 개발팀 기술 공유를 위한 자리에서 그 원인 해결에 대한 것들이 공유되었습니다. 사실 저는 바쁘다는 핑계로 참여를 못 했는데요. 작성된 문서로 알게 되었습니다.

Image for post
Image for post
서비스 운영 노하우도 축적합니다

online ddl도 마지막에 metadata를 한번 업데이트하기 때문에 다른 트랜잭션과 lock이 발생하고 있었습니다. 트러블 슈팅 과정에서 online ddl 을 한층 더 이해하게 되는 계기가 되었고, 세상에 마법 같은 기술이란 것이 없다는 것을 다시 한번 깨달았습니다. 집념으로 끝까지 버그를 잡아낸 동료들이 저의 마음을 웅장하게 했습니다.

마치며

회사를 선택 할 때 “저 회사에서 나는 어떻게 일하게 될까?”를 구체적으로 그려보는 것은 중요하다고 생각합니다. 이 글이 스타일쉐어 개발팀에게 관심 있는 누군가에게는 도움이 되길 바라며 글을 마칩니다.

StyleShare

스타일쉐어의 모든 과정을 기록합니다.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store