2020년 10월부터 11월까지, 약 5주간 코멘토에서 데이터 엔지니어 직무부트캠프에 참여했었다.
처음에 돈 낼 땐 되게 아까웠는데, 막상 해보니 남는 것이 꽤 있었다.
관심 있는 직무가 있다면 한 번 정도는 해보는 걸 추천할 수 있겠다.
왜 하게 되었는가
독학의 한계
나는 생각보다 공부에 있어서 꼰대 기질이 있다. 누가 내게 IT 관련 공부를 어떻게 하냐고 물어보면, 무조건 학원은 비추천하고, 책을 읽어 독학하라고 추천한다. 어릴 적부터 지금까지 난 책만으로 공부해왔기 때문이다. 영상으로 제공되는 강의도 싫어하며, 구글링으로 어떤 내용을 찾는 게 아닌 이상 글로 쓰여진 강좌도 안본다. 그리고 가장 싫어하는 게 학원이다.
그렇게 혼자 공부하고, 혼자 만들고 싶은 거 있으면 적당히 구글링하면서 만들어보고, 독학과 프로젝트로 성장해왔다. 시간이 좀 지나보니, 당장 또래에서는 내가 상당히 무언가를 많이 알고, 잘 하는 편이 되었다.
그래서 내가 만들고자 하는 걸 만들 수 있는 능력이 (실제론 안되지만) 된다고 쳤을 때, 그걸로 충분할까? 개발자 계열의 직군은 기능 구현이 전부가 아니다. 게다가 당연하게도 모든 직무에는 짬에서 나올 수밖에 없는 바이브가 있는 법이다.
내 주변에 '사수'격의 지인이 있어본 적이 없어 이 부분에 대해서 항상 부족함을 느껴왔다.
그러던 중에 예전에 아무생각 없기 가입했던 코멘토에서 자꾸 메일이 왔다. 솔직히 진짜 스팸처럼 너무 많이 오는데 그냥 한 번 들어갔다가, 또 요즘 시간이 좀 남아도니 데이터 엔지니어 직무부트캠프를 신청해버렸다.
뭐가 좋았는가
짬에서 나오는 바이브
코멘토는 가끔씩 미팅 세션이 있고, 기본적으로는 4주간, 주에 하나씩 멘토가 제시하는 과제를 하는 프로그램이다. 멘토님은 회사에서 데이터 엔지니어로서 겪었던 상황을 조건과 요구사항으로 정리해서 과제로 주셨다.
예를들면 이런 것이었다.
데이터 엔지니어의 가장 큰 역할은 회사에서 필요하거나 생산되는 다양한 데이터들을 사용자에게 신속하고 원활하게 공급하는 것입니다. 모든 데이터는 수집 -> ETL(Extrat-Transform-Load) -> 공급의 라이프 사이클을 거치게 됩니다. 데이터를 신속하게 공급하기 위해서는 위의 라이프 사이클 과정을 간소화 시켜야하고, 데이터를 안정적으로 공급하기 위해서는 데이터 파이프라인을 잘 설계하고 구축 하여야 합니다. 다음 페이지의 요구사항에 따라 데이터팀의 API를 설계하고 구현해주세요.
일관성 있는 표준 로그 API 설계 및 구현
- logging 라이브러리를 활용합니다.
- 모든 기능은 파이썬 표준로깅 패키지인 logging과 동일합니다.
- 파이썬 표준로깅 패키지(logging)을 Warpping하여 DEBUG, INFO, WARNING, ERROR, CRITICAL 5단계의 Output API를 사용할 수 있어야합니다.
- 로깅 포맷이 아래와 같이 고정되어야 합니다.
포맷) [YYYY-mm-dd HH:MM:SS,MS] <file_name> : <content> 예시) [2020-09-17 12:00:41,607] example.py : this is logging test
- 로그 이름이나 기타 설정없이 클래스 호출만으로 로거 객체를 사용할 수 있어야 합니다.
이런 로그 API 설계 및 구현을 하나의 토픽이라 했을 때, 한 번의 과제에는 3개의 토픽이 있었다. 이 3개의 토픽은 1주차 과제부터 쭉 이어져서, 기존의 코드를 업데이트해 나가는 과정으로 진행했다.
이런 과제의 토픽들은 실제로 기업에서 발생하는 상황일 것이다. 이런 부분에서도 많이 배웠지만, 실전 상황 이라는 주제로는 과제의 피드백에서 많이 배웠다.
과제를 소스코드를 작성해 나가면, 멘토님이 글 또는 라이브 세션에서 말로 피드백을 해주신다. 그 때의 피드백은 주로 이런 내용이다.
- 기능도 정상적으로 작동하고, 잘 작성해주셨는데요.
- 실제 상황에서는 이런 경우가 있어요.
- 그래서 이건 이렇게 바꾸는 게 좋아요.
가령, Slack API로 로그를 찍는 사내 API를 개발한다 치자. 나는 Slack에서 발급하는 API Token을 config.yaml 파일에 담아 파싱해 Slack에 연결했다. 그 때 얻은 피드백은
'config 파일로 바뀔 가능성이 있는 값을 빼둔 건 좋은데, 만약 토큰이 변경되면 모든 사용자의 로컬 PC에 하나하나씩 배포할 것인가? 혹은 그렇게 배포하는 파이프라인을 추가적으로 만들 것인가? 그건 너무 비효율 적이다. AWS의 Parameter Store를 써보는 건 어떤가?'
였다.
이 간단해 보이는 피드백에서 무지한 나는 많은 걸 배웠다. 일단 단 AWS EC2나 ML 계열 서비스는 써봤지만, Parameter Store는 듣도보도 못했다. 알고 있었다 쳐도, 어떤 상황에서 어떻게 쓰는지는 감을 구체적으로 잡지 못했을 것이다. 결국 이 과제는 Parameter Store를 쓰는 방향으로 다시 API를 작성하면서 좋은 경험을 했다.
이게 바로 짬에서 나오는 바이브겠지....
한 번 과제를 하면 피드백이 엄청 길게(진짜 길다..) 오니, 이런 소소한 피드백도 여러개가 모여 꽤 많은 것을 배울 수 있다.
적절한 과제의 양
코멘토 직무부트캠프는 학교와 같은 본업을 하면서 병행이 가능하도록 설계하기에, 처음엔 과제의 양이 매우 적어보이면서도 막상 해 보면 시간적으로 아주 적절한 양임을 알 수 있다. 생각보다 내 본업에 방해받지 않으면서 할 일을 할 수 있었다.
누구에게 추천할 만 한가
코멘토 직무부트캠프 중 IT/개발자 계열 캠프를, 아래에 해당하는 사람에게 추천한다.
웬만한 거 구글링해서라도, 시간이 걸려서라도 개발할 수 있는 사람
일단 모든 과제를 완수할 수 있는 능력이 있어야 배우는 게 많다.
주변에 필드 선배가 없는 사람
배울 수 있는 대상이 없으면 돈이라도 내서 배워보는 게 좋다.
안바쁜 사람
취업하기 힘든 사람
근데 사실 코멘토에서 무슨 이거 하면 취업 된다. 이 경험을 면접에서 말하면 이런 고민 해결된다 이런 식으로 홍보하는데, 생각보다... 그정도는 아니다.
그러니까.. 면접에서 도움은 될 거다. 되긴 할 건데, 이거보다 더 임팩트 있는 경험이 없고 이 부트캠프가 가장 메인의 경험이면, 취업은 힘들 거다.
난 취업보다 그냥 개인의 성장 관점에서 만족했다.
이 포스트는 코멘토에서 소정의 원고료를 "받지 않고" 작성되었습니다.
'개발 > 기타' 카테고리의 다른 글
파이썬 카메라 캘리브레이션 구현 (0) | 2022.07.10 |
---|