[Brandi] 인턴 후기

이영주·2021년 1월 13일
5
post-thumbnail

위코드에서 3개월차 인턴을 나가는데 나는 브랜디로 출근을 하게 되었다.
거의 2지망이 된다고 생각하고 있었는데 운이 좋게도 내가 원하던 브랜디로 출근을 할 수 있게 되었다.
브랜디에서 진행되는 프로젝트는 위코드에서 배웠던 Django가 아닌 Flask를 사용하고
백엔드 개발자가 Vue도 한다고 알고 있었어서 나는 새로운 언어를 배운다는 것에 흥미를 느꼈다.
그동안 사용자로서 이용했던 브랜디는 내가 클릭한 옷과 비슷한 옷들을 많이 추천해주어서 좋았다.
개발자로서의 브랜디는 어떤 프로젝트를 맡게 되었으며 무엇을 배웠는지 소개해보려고 한다.

▶ 소개

브랜디는 ‘남들이 못하는 것을 하자!’라는 철학으로, 1등 모바일 커머스 플랫폼을 향해 성장하는 커머스 스타트업이다. 쇼핑몰, 브랜드, 뷰티 상품을 한자리에 모아두어서 따로 검색하지 않고도 쉽게 접근이 가능하고 사용자의 취향에 맞게 추천하는 모바일 패션 큐레이션 서비스를 운영한다.
특히 업계 최초로 100명 규모의 개발자 채용을 선언했고 어플리케이션과 풀필먼트, 빅데이터를 활용해 영향력을 확대해가고 있는 회사이다. 링크→워크맨 브랜디편

▶ 어드민 클론 프로젝트

참여 인원
총 12명(백엔드 9명과 프론트 3명)
팀 구성
서비스팀, 어드민1팀, 어드민2팀(프론트 1명, 백엔드 3명씩)
프로젝트 기간
2020.12.14 ~ 2021.01.08 (4주)

▶ 첫째주, 모델링


사공이 많아 다사다난했던
위코드 14기 백엔드 9명이 모여만든
👇
모델링 링크 비밀번호: 12d6d0

첫째주에는 다같이 모델링을 진행하고 하루에 1번~ 2번정도 팀장님께 리뷰를 받는 시간을 가졌다.
서비스와 어드민으로 팀을 나누긴 했지만 공통으로 사용되는 부분은 모두가 알아야 한다고 생각했기에 다같이 모델링을 진행하였다.

크게 보면 이렇게 세가지로 나눌 수 있을 것 같다.
1. product
2. permission
3. 기획전

모델링은 쿼리를 어떻게 짤지 생각하면서 구성을 하면 좋다고 하는데
장고 ORM 기준으로 생각하는게 맞는지 모르겠어서 혼란이 조금 있었다.
우리 생각대로 최대한 의견을 조율해보고 팀장님께 피드백 받으면서 조금씩 고쳐나가다 보니
수정하고 또 수정하고를 반복해서 결국 일주일정도 시간이 걸리게 되었던것 같다.
만약 다음에 다시 모델링을 하라고 한다면 쿼리를 어떻게 짜면서 해야할지 좀 더 명확하게 그려가면서 할 수 있을것 같다.

▶ 둘째주, Flask 세팅

둘째주에는 모델링, API, 플라스크 초기세팅 총 3팀으로 나뉘어서 진행되었다.
모델링 팀은 아직 결론나지 않았던 모델링 작업을 계속해서 이어나가주었고
API팀에서는 공통 API 문서 작성을 해주었다.
내가 맡게된 플라스크 초기세팅 팀은 처음 접해보는 언어인 Flask에 멘땅 헤딩 작업을 시작했다.
링크→ Flask 초기 세팅 작업 정리

이때 코로나가 터져서 아쉽게도 2주간 자가격리를 들어가게 되었다.
그래서 초기세팅 팀원들과 대화할때도 구글 밋을 사용하여 화면을 공유해가면서 대화하였고,
팀장님께 도움 받을때도 온라인으로 대화를 진행했다.

처음에는 이 자가격리 기간이 너무 아쉽고 내가 원망스럽고 시간 낭비하는 느낌도 들었었다.
Flask가 처음이라서 '탄탄한 백엔드' 책 한권과 공식문서를 훑어 보면서 답답함도 느꼈다.
하지만 지나고 보니 앞으로도 재택 근무로 이루어질 때나 팀원들이랑 떨어져 있을 때
집에서 어떻게 집중할 수 있을지 그리고 의사소통을 어떻게 하면 더 잘할 수 있을지
미리 연습할 수 있었던 좋은 기회가 되어 주었다고 생각한다.
그리고 새로운 언어도 동료들과 충분히 소통하면서 협업을 원만히 할 수 있다는 것도 알게되었다.

▶ 셋째주, 본격적인 endpoint 작성하기 ◟( ˘ ³˘)◞ ♡

✔ 계정정보 조회/ 수정

✔ 계정상태 조회/ 수정

✔ 히스토리 내역 조회/ 수정

✍ 기억에 남는 코드

하나의 엔드포인트 안에서 이루어지는 여러개의 기능

장고에서는 엔드포인트 하나에 기능 하나만 구현했었는데,
플라스크에서는 엔드포인트 안에 서비스와 다오를 나눌 수 있게 되어있어서,
플라스크의 자유도가 크다는것을 느낄 수 있었다.

permission_types에 맞게 정보 수정 권한을 주려면?

처음에 생각했던 방식은 아래와 같이 타입이 1인 경우를 비즈니스 단에서 나누었었는데

DAO에서 sql문에는 필수인 항목들만 추가를 시켜 주고,
if 문으로 조건을 걸어 해당하는 부분이 존재하면 sql문에 추가되도록 구현을 할 수있다는 것을 알게 되었다.

timedelta JSON으로 변환하는 방법

timedelta를 JSON으로 변환할 때 오류가 났다.
이걸 보완하기 위해서 내 머리의 한계로는 4줄의 코드를 따로 추가했었는데
더 좋은 방법이 없을까 찾아보았다.
그리고 제이슨 인코더를 커스터마이징해서 사용할 수 있다는것을 알게되었다.

이 커스텀 제이슨 인코더를 app.py에 추가시켜주면, JSON으로 변환할 때 코드가 실행되면서 변환을 도와준다.

▶ 넷째주, 코드 리뷰/ 발표 준비

기업 협업으로 브랜디를 선택한 것을 후회하지 않은 이유를 꼽자면 바로 <발표>이다.
위코드에서 진행되는 발표랑은 다르게 실제 기업에서 발표를 해본다는 것은 좋은 기회였다.
팀장님과 함께 하루 전에 리허설도 진행하고 발표가 어땠는지 피드백도 받을 수 있어서 좋았다.
발표는 한 사람당 20분씩 주어지고 최종 발표가 있다는 것은 목적의식을 가지고 끝까지 열심히 하게 될 수 있는 계기가 되어주었다.

▶ 기업협업을 마치며

, 그리고

브랜디에서 아쉬웠던 점은,
마지막 주에는 팀장님과의 1:1 면담도 진행이 되는데
입사 여부와 함께 팀장님께 궁금한 부분을 질문할 수 있는 기회도 주어진다.

만약 내가 브랜디를 다시 가게 된다면,
이런 기회들을 좀 더 활용해봤으면 좋았겠다는 생각을 한다.

그리고 내게 브랜디에서 가장 중요했고 얻어간다고 생각하는것을 한가지 고른다면,
그것은 바로 작성한 코드에 대해 설명할 줄 아는 것이다.

코드 한줄, 하나 더 쓰는것도 물론 중요했지만,
내가 어려운 부분과 해결하기 위해 어떤 노력을 했는지 정확히 알고있는것
어떤 이유로 이 코드를 작성했는지 알고
그것을 설명할 수 있을 만큼 커뮤니케이션이 되는것이 중요하다는 생각을 했다.

그래서 나는 브랜디에서 배워가는 부분을 꼭 다시 활용할 수 있을 기회가 있을거라고 믿고,
정말 의미있고 뜻깊은 시간이었다고 생각한다.
한번 더 소통의 중요성을 깨달았으며 좋은 동료들이 있어서 다행이라고 느끼는 4주가 되었다.

물망초의 꽃말은 나를 잊지 말아요이다.
이후에도 나를 첫 개발자라고 소개했었던 브랜디와, 함께했던 사람들을 잊지 못할 것 같다.
새로운 언어를 배우면서도 정말 재밌었고
앞으로 취업 해서도 계속 이렇게 재미있게 일할 수 있었으면 좋겠다.

2개의 댓글

comment-user-thumbnail
2021년 1월 20일

물망초 꽃말 메모...

답글 달기

멋져...나를 잊지말아요...

답글 달기