백엔드 멘토링

mactto3487·2021년 4월 16일
2

UPF

목록 보기
4/4
post-thumbnail

지난번 과제로 "안나소"의 서비스 DB 설계를 받았다.

우리는 백엔드 기술 스택으로 Node.js(Express), 메인 DB로 MongoDB, 캐시로 Redis를 사용하기로 결정했는데
Redis 사용 경험도 없을 뿐더러 캐시를 서비스에 적용해보는 것도 처음이라
서비스 DB 설계가 어떤식으로 이루어져야 하는지 막막해 멘토링을 요청하게되었다.

멘토링은 현재 네이버 백엔드 개발자로 재직 중이시며 UPF를 운영하고 계시는 Organizer님이 해주셨다!
내용이 너무 좋아서 잊어버리기 전에 벨로그 글 쓰기로 결심..

근데 사실 "안나소" 서비스 관련해서 멘토링을 요청한 거였는데
우리가 백엔드 자체에 대한 질문을 더 많이해서 멘토링 목적은 변질되었지만
뭔가 더 알차고 좋은 시간이었다.


1. 사전 질문

멘토링 진행 전 사전 질문을 작성해서 전달해주면 좋겠다고 하셔서
다들 궁금한 점들을 먼저 적어서 전달했다.

7개 정도의 질문이 있었는데 내 질문에 대한 답변만 정리해보았다.

  • 실제 현업이나 사이드 프로젝트에서 Redis를 캐시로 사용하는 사례가 많은가요?

현업에서는 거의 대부분이 Redis를 캐시로 사용된다고 하셨다.
실제 회사에서 런칭된 서비스 중 대부분은 상당한 사용자 트래픽을 감당해야하기 때문에
캐시를 따로 두어 병목현상을 대비한다고 한다.
그 캐시의 예가 Redis나 Memcached 등이 있지만 가장 대중적으로 사용되는게 Redis!

반면 사이드 프로젝트에서는 캐시는 별로 사용하지 않는다고 한다.
캐시를 사용해야할 만큼 트래픽 걱정을 할 일이 많이 없기 때문.
굳이 필요하지 않아도 넣을 순 있지만 서버 리소스를 추가로 사용하기 때문에
결국 오버 엔지니어링이 된다고 하셨다.

  • 서비스 DB 설계의 구체화 정도는 어느 정도로 작성해야 좋을지 궁금합니다.

※ 이 질문은 Redis를 어디까지 고려해서 서비스 DB 설계를 해야하는지에 대한 질문이었는데
위의 답변을 통해 굳이 Redis를 넣을 필요성을 못느끼게 되어 캐시는 사용하지 않기로 했다.

추가적으로 현업에서는 적어도 ERD 정도의 수준에서 DB 설게를 진행한다고 하셨다.

  1. 제공하고자 하는 기능의 요구사항을 받는다.
  2. API에서 어떤 기능을 사용하는지 정리
  3. 이 기능을 위해서, 그리고 성능을 만족하기 위해서 어떤 DB를 사용할 지 & 어떤 구조로 설계할 지 정한다.
    ( RDB냐 NoSQL이냐에 따라 설계는 많이 달라진다. ) + 데이터 모델링/디자인을 공부해 볼 것!

2. 백엔드 관련 꿀팁

여기서 너무 유익한 말씀을 많이 해주셨다...

  • 항상 이유를 찾을 것

항상 어떤 것을 선택할 때 이유를 생각하는 자세가 중요하다고 하셨다.
예를들어 특정 서비스를 개발할 때 프레임워크는 왜 Node.js를 선택했는지?
DB는 왜 RDB를 사용하지 않고 NoSQL을 사용했는지? 등등

사실 이 부분에 대해서는 산업체 면접을 봤을 당시 느껴본 적이 있다.
면접에서 "왜 프로젝트에 C++을 사용했나요? 어떤 장점이 있나요?" 이런 질문을 받았었는데
솔직히 나는 그냥 C++을 배우는 과목이라서 사용한 것일 뿐이지
C++이 다른 언어에 비해 어떤 장점이 있는지, 어떤 프로젝트를 수행할 때 적합한지
별로 궁금해하지도 않고 알려고 하지도 않았던 것 같다.

하지만 백엔드 개발자가 갖추어야하는 자세로 항상 이유를 찾는 자세가 중요하다하셔서
약간 뜨끔했고... 앞으론 고쳐보자.

  • 더 자세한 직군을 찾아보고 해당 직군에 맞는 역량을 키울 것

BE 개발자를 목표로하고 있다고 해도 세부적으로 여러 직군이 존재한다고 하셨다.
찾아보니 실제로 시스템 엔지니어, 서버 개발자, 데이터 사이언티스트, 사이트 신뢰성 엔지니어, DBA 등 정말 많은 직무가 나뉘어져 있었고 처음 보는 직무들도 되게 많아서 놀랐다.

Organize님은 관심있는 직무가 있었고 실제로 그 분야를 파서 현재 그 직무를 하고 계시다고 말씀하셨다.
실제로 힘들게 입사했는데 직무가 맞지 않아서 퇴사하시는 분들도 보셨다면서
우리는 지금부터 잘 알아보고 잘 준비하면 좋겠다고 조언해주셨다.

이걸 듣고 왜 이제서야 이걸 알았지? 싶었는데
이제라도 알았으니 다행이다 생각하고... 자극이 되었다.

나는 머신러닝/딥러닝에 관심이 있고 데이터 처리하는게 재미있으니
데이터사이언티스트 관련 직무들을 앞으로 더 찾아보면서 공부해볼까 한다.


이 밖에도 네이버에 입사하시게 된 썰도 풀어주시고 여러 자료들도 많이 주셨는데
공유해도 되는지 몰라 일단 UPF 멤버들만 보기로...?

UPF 활동을 하면서 정말 많은 것을 배워간다.
이번 멘토링을 통해 앞으로의 공부 방향도 잡을 수 있었고
요즘 열정이 좀 식었었는데 자극도 되었다.

0개의 댓글