공통

데이터엔지니어 사수가 부사수하게 하는 조언

데이터엔지니어 주형권 2023. 11. 20. 13:57
반응형

조언

 

 

안녕하세요. 주형권입니다.

 

지난번에 링크드인에서 이야기드렸듯이 과반의 득표를 얻어서 관련하여 글을 작성하였습니다. 이 글은 이제 막 시작하는 데이터엔지니어 또는 데이터엔지니어를 꿈꾸는 학생 또는 다른 직문의 사람에게 조금이나마 도움이 되고자 하여 작성하였으며, 저의 개인적인 견해와 생각이 많이 반영되어 있으므로 "꼭 이렇게 하세요." 라는 의도는 없으니 글을 읽을 때 참고 차원에서 읽어 주시기 바랍니다.

 

링크드인 설문 조사


시작하며

 

시작하기에 앞서 이글을 왜 작성하였는지 설명을 드리려고 합니다. 제가 처음에 일을 시작할 때는 사수와 부사수라는 개념이 일반적이었습니다. 흔히 말하는 시니어와 주니어(신입)를 한 세트로 묶어서 사수가 부사수를 교육시켜주는 역할을 하였습니다.

 

요즘은 많은 회사가 사수와 부사수보다는 멘토(mentor)와 멘티(mentee)라는 의미로 많이 쓰는거 같습니다. 하지만 멘토와 멘티의 개념은 회사에 적응을 도와주는 개념으로 자주 사용되고 업무적인 의미보다는 회사의 복지나 시설에 대한 적응 그리고 사용자 환경 세팅을 도와주는 개념으로 많이 사용되는 것 같습니다. 

 

그래서 갈수록 많은 기업에서 주니어들은 업무적인 스킬과 여러가지 업무적인 조언에 대해서는 배우기 어려운 환경으로 변해가고 있는 것 같습니다. 최근에는 각자도생의 개념이 많아지고 함께하는 사람보다는 단순한 같은 소속의 사람으로 팀의 의미가 퇴색되면서 이러한 조언을 구하기 어려운 환경인 것도 있습니다.

 

그래서 이 글을 통해서 조금이나마 처음 시작하시거나 경험이 부족한 분들에게 도움이 되었으면 하는 마음에서 글을 작성 하였습니다. 앞서 언급하고 강조하였지만 이것은 저의 개인적인 견해와 생각이므로 정답은 아닙니다. 꼭 따라 하실 필요는 없고 판단의 각자의 몫입니다. 이 글의 내용은 제가 만났던 수많은 좋은 사수님들의 조언을 바탕으로 작성하였습니다.


첫 번째) 나만의 필살기(무기)를 만드세요.

 

나만의 필살기를 준비하자

 

저는 처음에 DBA로 시작해서 DW 엔지니어를 거쳐서 데이터엔지니어가 되었습니다. DBA를 했던 경력으로 인해서 데이터베이스에 관련하여 남들보다 더욱 많은 지식을 가지고 데이터엔지니어를 시작하였습니다. 그래서 저에겐 데이터베이스라는 필살기가 있었습니다. 처음에 쏘카에서 데이터엔지니어를 시작했을 때 데이터베이스 -> BigQuery로 데이터를 적재하는 파이프라인을 만들었는데, 데이터베이스를 알고 모르고의 차이는 굉장히 크게 났습니다. 

 

데이터베이스를 알고 데이터를 BigQuery 적재하는 것과 모르고 적재할 경우 데이터베이스의 성능의 차이와 함께 BigQuery의 비용 또한 굉장한 차이가 났습니다. 그래서 이 부분에 대해서 저 나름대로 계속해서 공부하고 기초적인 부분부터 꾸준하게 책 또는 블로그를 보면서 공부를 하였습니다. 

 

나만의 필살기가 있을 경우 남들과 본인을 비교하는 것을 덜하게 되며 나만의 필살기를 통해서 남들과 상호 보완적인 관계로 발전하면서 더욱 큰 시너지를 얻을 수 있습니다. 나만의 필살기가 없는 사람의 경우 남들이 하는 업무를 따라 하거나 비슷하게 흉내만 내는 경우가 많고 본인의 색채가 없어서 업무를 할 때 본인이 중요한 역할을 하기보다는 보조적인 업무만 맡을 가능성이 큽니다. 그러므로 본인이 생각할 때 본인이 재미있다고 느끼는 분야를 하나 정해서 꼭 기초부터 심화까지 꾸준히 공부하는 것이 중요합니다. 

 

물론 데이터엔지니어이기 때문에 여러 가지 분야가 있지만 생각나는데로 적어보면 데이터베이스,데이터웨어하우스,개발,인프라등의 역영등이 있을 것 같습니다. 같은 데이터엔지니어라도 본인만의 특성이 있으며 데이터엔지니어도 파이프라인 개발, 인프라 운영, 데이터웨어하우스 설계등의 여러가지 분야로 세세하게 나누어집니다. 


두 번째) 밖으로 나가세요. 

 

넓은 세상으로 나가자

 

세상은 넓고 배울 건 많습니다. 회사 앉아서 가만히 있지 말고 밖으로 나가서 세상이 어떻게 흘러가는지 보는 것은 굉장히 중요한 것 같습니다. 지금 우리 회사의 사람들에게도 배울 것이 많지만 밖에 세상에도 배울 것이 많습니다. 우리 회사의 사람에게 배울 것과 밖의 세상의 사람들에게 배울 것은 같이 습득하고 듣는다면 본인의 실력은 더욱 빠르게 향상될 것입니다.

 

1) 스터디하기

제가 처음에 회사를 입사하고 그다음 주부터 시작한게 스터티 입니다. DBA로 처음에 입사하고 입사 그 다음주부터 DBA 스터디를 다녔습니다. 업계에 선배가 없고 무엇을 공부해야 할지 전혀 모르는 상황이라서 아무런 준비도 없이 무작정 DBA 스터디를 다녔습니다. 처음에 귀동냥을 하면서 발표하는 내용을 듣고 정리하고 직접 집에 와서 해보면서 여러 가지 새로운 기술과 경험을 배웠습니다. 스터디라는 게 서로 다른 업계에서 같은 일을 하는 수많은 사람들의 경험을 공짜(가끔 유료 스터디도 있지만...)로 배울 수 있는 아주 좋은 기회입니다. 

 

그리고 스터디에 참석만 하지 말고 "꼭" 발표를 해보세요. 발표를 많이 하면 그만큼 준비하는 과정에서 지식도 늘지만 남들 앞에서 이야기하는 방법에 대해서 많은 것을 배울 수 있습니다. 실수를 두려워하지 말고 당당하게 발표를 해보세요. 스터디인데 조금 틀리고 버벅거리면 어때요. 발표를 하면 그에 따른 여러 가지 질문을 받는데, 이런 것들은 다양한 시각으로 볼때 받을 수 있는 질문이라서 면접 질문에 대한 대비+경험이 됩니다. 

 

2) 커뮤니티 활동 하기 (인맥 쌓기)

여러가지 인터넷 커뮤니티가 있지만 데이터 관련 커뮤니티도 많습니다. 온라인뿐 아니라 오프라인도 많이 있고 교류를 할 수 있는 공간이 꽤 많습니다. 많은 사람들이 "인맥 빨"이라는 소리를 별로 좋아하지 않는데 그건 인맥으로만 뭐든 것을 해결하려고 할 때 안 좋게 보이지만 실력과 인맥이 함께라면 더 큰 시너지를 발휘합니다. 

 

예를 들어서 같은 실력과 같은 조건이라면 나와 아는 사람과 일하고 싶지 모르는 사람과 일하고 싶지 않습니다. 회사란 곳도 일을 하는 공간이기에 앞서 사람과 함께 지내는 공간인데 아는 사람과 일하는 게 일 할 때도 좋습니다. 그러므로 스터디 활동과 함께 다양한 온/오프라인 커뮤니티 활동을 통해서 나와 같은 직업을 가진 다양한 연령, 업계, 성별의 사람들과 어울리며 다양한 인맥을 쌓도록 해보세요. 생각보다 인맥은 사회생활에서 굉장히 큰 힘이 있습니다. 

 

3) 구직 활동 꾸준히 하기

저는 이직을 자주 했습니다. 자의도 있지만 타의도 많았습니다. 여기서 말하고 싶은 것은 이직을 꾸준히 하라는 게 아닙니다. 현재 나의 직종에서 트렌드가 무엇이고 현재 무엇을 이용하여 데이터를 관리하고 개발하는지 빠르게 파악하는 게 구직 활동만큼 좋은 게 없습니다. 

 

다른 회사 가서 면접을 보라는 의미가 아닙니다. 여러 가지 구직 사이트에서 채용 공고를 보고 어떠한 자격요건과 우대사항이 있는지 확인하고 이를 미리 파악해서 준비해 두면 좋다는 의미입니다. 본인의 기술 중에 현재 저 회사에 몇 개가 겹치는지 공통적으로 나오는 키워드가 있는지 등을 파악해서 많은 회사에서 다루는 기술을 미리 책과 강의등을 통해서 습득해두거나 블로그등을 찾아보면서 조금의 지식을 가지고 있으면 대단히 많은 도움이 됩니다.

 


세 번째) 꾸준히 배우세요.

 

공부하자

 

사실 저도... 요즘 공부를 많이 안 해서 조금 걱정이긴 한데... 꼰대 같은 표현이지만 라테는... 처음에 일을 시작하고 기본 서적을 정말 많이 봤습니다. 무엇을 봐야 할지 모르니 기본이 되는 서적을 달달 외우듯이 봤습니다. 지하철에 다니면서 매일 같이 책을 봤던 기억이 있는데 그때는 진짜 책이 너덜너덜 해질 때까지 계속 봤던 거 같습니다. 제가 머리가 나빠서 읽기만 해서는 외워지지가 않다 보니 계속해서 쓰면서 봐서 책에 온갖 낙서가 있었습니다.

 

입사하고 처음 봤던 책

 

1) 책을 보는 방법 

많은 사람들이 어떻게 책을 보는 궁금해합니다. "책? 그냥 읽으면 되는 거 아니야?" 할 수 있는데 책을 보는 방법은 어떻게 읽는지도 있지만 어떻게 들고 다니면서 읽지? 도 있습니다. 위에 있는 책도 그렇지만 보통 데이터엔지니어링 관련 서적은 굉장히 두꺼운 경우가 많습니다. 물론 포켓북이나 짧고 쉽게 풀어쓴 책도 많지만 아닌 경우도 많습니다. 저 같은 경우 지하철에 들고 다니면서 읽었는데 이렇게 두꺼운 경우 책을 여러 개로 나누어서 가지고 다니면서 봤습니다. ( 책 나누는 방법 )

 

저는 보통 집에서는 공부가 잘 안돼서 지하철에서 많이 봤는데 지하철에서 유튜브 보거나 음악만 듣기보다는 아까운 시간에 뭐라도 하자는 생각으로 시작한 게 생각보다 집중이 너무 잘되어서 꾸준히 보게 되었습니다. (요즘은 안보지만...) 

 

2) 상대방에게 배우기

앞서 이야기했듯이 나와 다른 필살기가 있는 상대방에게 배우는 것과 다른 분야(다른 팀) 사람에게 배우는 것도 중요합니다. 예를 들면 제가 데이터베이스가 필살기라면 상대방은 개발이 필살기 일 수 있습니다. 그럴 땐 상대방에게 배우세요. 내가 연차가 높고 그 상대방이 낮더라도 도움이 될 실력과 인품을 갖춘 사람이라면 그 사람에게 배우려고 하세요. 배우는 것에는 딱히 연차가 상관이 없습니다. 앞서 이야기했듯이 나에게 부족한 것을 배우고 상대방에게 부족한 것을 가르쳐주려고 해 주세요. 엄청난 상호 효과가 납니다. 

 

3) 회사의 비즈니스 로직을 배우기

내가 다니는 회사의 전체적인 시스템을 모두 세세하기 알기는 어렵지만 데이터엔지니어라면 본인이 다루는 기본적인 데이터를 보고 어떻게 어디로 흘러서 데이터가 적재되는지 인식하면 많은 도움이 됩니다. 단순히 데이터를 적재하고 관리만 하는 것이 아니고 데이터의 생긴 형태와 비지니스 로직을 파악한다면 추후에 여러 부서와 회의나 협업을 할 때 많은 도움이 됩니다.

 

예를 들면 본인의 회사의 서비스를 직접 이용해 보고 본인의 고유키를 이용해서 본인의 데이터 사용내역을 직접 조회해보면서 데이터를 파악해 두면 정말 좋습니다. 내가 서비스를 사용하면서 이런저런 버튼을 눌러보면서 실제 데이터를 보면서 어떻게 데이터가 남는지 미리 파악해두면 추후에 데이터를 가공하거나 적재하는 여러 가지 처리를 할 때 매우 큰 이점이 있습니다.

 

4) 배운 것을 정리하기

저 같은 경우 입사 이후 11년째 꾸준하게 블로그 활동을 하고 있는데요. 이것이 현재 엄청나게 큰 도움이 되었습니다. 첫 입사 이후에 회사에서 너무 많이 혼나서 공부하고 정리해서 나중에 보려고 블로그를 시작하였습니다. 그런데, 블로그를 하다 보니 책에 있는 내용만 정리하기를 나아가서 내가 겪었던 문제나 고민했던 내용을 정리하여 블로그에 올리기 시작하니 생각을 정리할 수 있었습니다. 

 

또한 블로그의 경우 다른 사람들에게 보이는 것이므로, 검증을 해야 하며 그에 따라서 내가 직접 테스트해보고 직접 해결해보고 해야지 글을 쓸 수 있습니다.

 

만약 블로그가 다른 사람에게 보여서 너무 부담스러울 경우 Notion, Evernote등과 같은 여러 가지 도구를 이용해서 본인의 노하우 및 업무를 정리할 수 있습니다. 이밖에도 업무일지(내가 뭘 했는지)를 개인적으로 정리하면 나중에 평가기간에 본인의 성과에 대해서 정리하고 어필할 때 많은 도움이 될 수 있습니다.  

 

주형권의 Evernote


네 번째) 같이 일하는 사람들과 어울리세요.

 

술 한잔 하라는게 아니고...

 

데이터엔지니어가 되면 보통 데이터분석가 / 데이터사이언티스트 / 사업팀 / 마케팅팀등과 같이 여러 부서 및 사람들과 일하게 됩니다. 이 사람들과 단순히 업무를 하는 사람이고 내 맡은 일만 잘하면 당연히 문제가 없긴 하지만 한발 더 나아가 그 사람들과 친하게 지내고 배우면서 그 사람들의 입장에서 생각하는 것도 좋습니다. 

 

단순히 술 먹고 놀면서 친해지는 것도 있겠지만 업무적으로 서로 이해하려고 하면 어쩔 수 없이 친하게 지낼 수밖에 없습니다. 어느 누가 나와 일을 잘해주는데 싫어할까요? 앞서 이야기했지만 회사도 사람 사는 곳이고 사람이 모여 있는 곳인데 친하게 지내면서 업무를 하면 더 좋은 결과를 낼 수 있습니다.

 

1) 최대한 쉽게 설명하기

본인과 같은 분야의 사람들과 이야기할 때는 많은 용어를 사용하고 본인의 스타일로 이야기하면 얼마든지 대화가 가능합니다. 하지만 다른 분야와 다른 직종의 사람과 회의나 협업을 하거나 아니면 무언가를 설명할 때는 용어나 본인의 스타일로 이야기하면 대화가 어렵습니다. 당연하겠지만 상대방은 그 대화를 알아듣지 못합니다. 

 

대화를 알아듣지 못하면 많은 사람들이 상대방의 지식과 실력을 의심하는데, 제 생각엔 그건 본인의 잘못입니다. 예를 들면 사업팀 사람과 이야기할 때 본인의 사업의 용어와 본인들 사업에서 사용하는 스타일로 설명하면 나는 과연 알아들을까요? 마찬가지로 그 사람들도 이 분야의 사람도 아니고 사실 알면 좋지만 알 필요는 없습니다. 그렇기에 다른 부서의 사람과 이야기할 때는 최대한 쉽게 풀어서 설명하고 용어를 사용하기보다는 비유를 들면서 설명하면 좋습니다. 

 

2) 상대방의 입장으로 생각하기

저는 주로 데이터 파이프라인을 만드는 업무를 많이 하고 있습니다. 그럴 때마다 데이터를 A -> B로 적재하는 업무를 많이 하는데요. 데이터를 적재할 때 많은 데이터엔지니어들이 String 형태로 넣어주는 것을 봤습니다. (그게 편하니깐...) 그런데 이렇게 데이터를 모두 String으로 넣으면 COUNT , SUM등을 해서 집계를 할때 CAST 등으로 한번 더 변경해줘야 하는 이슈도 있고 실제로 이 값이 데이터베이스에서 String 형태의 코드값인 경우 데이터를 사용하는 사용자 입장에서는 이게 실제 무슨 타입인지 INT인지 String인지 다시 한번 확인해야 하는 경우가 있습니다. 

 

그렇기 때문에 사용자 입장에서 데이터를 적재하고 데이터를 가공하는 등의 고민을 많이 해보면 좋습니다. "데이터를 분석하거나 데이터를 조회할 때 어떻게 하면 편하게 할 수 있을까?" 하면서 고민하면 나의 실력에도 도움이 되지만 상대방의 신뢰도 얻을 수 있을 것입니다.


마치며

 

생각나는 대로 적다 보니 빼먹은 부분도 있을 수 있습니다. 이 부분은 나중에 조금씩 계속해서 추가하겠습니다. 저의 생각이기 때문에 이 글을 읽는 많은 분들이 지킬 필요도 따른 필요도 없습니다. 하지만 저는 저의 많은 좋은 사수분들에게 이런 것을 배웠습니다. 그리고 내 것으로 만들기 위해서 노력하였습니다. 

 

돌이켜보면 저는 일적인 부분에서 인복이 타고난 것 같습니다. 많은 좋은 분들을 모셨고 많은 좋은 분들과 함께 일 하였습니다. 제가 부족한 부분에 대해서 많은 부분을 알려주셨고 조언해 주셨습니다. 그 조언을 잔소리가 아니고 진심으로 배우려고 하였고 어떻게 하다 보니 저보다 경험이 부족한 많은 분들이 저에게 와서 조언을 구합니다. 열심히 따라 했을 뿐인데 저도 그분들과 같은 사람이 되었고 많은 사람들이 따르게 되었습니다.

 

길고 자세한 글은 아니지만 많은 분들이 이 글을 읽고 귀감을 얻어서 많은 것을 느끼는 개기가 되었으면 좋겠습니다. 긴 글 읽어주셔서 감사합니다.

반응형