[2020년 상반기 회고] 저도 제가 뭘 원하는지 아직 잘 모르겠습니다.
서버개발자로 포지션을 바꿨고, 내가 무엇을 원하는 개발자인지 고민이 많았던 상반기
이번 글은 회고글이라 개발 이야기보다는 개인적인 생각을 적는 글입니다. 올해 4월 말 즈음에 서버개발자로 포지션을 변경했습니다. 1~4월은 여러 일이 있었는데, 프론트 업무를 인수인계했고, 마지막으로 붙이고 싶은 기능/프론트 잔재주들을 다노샵 코드에 붙이는 시간을 가졌습니다.
다노샵 프론트엔드 업무를 마무리 했던 시간도 재밌었지만, 그 보다 현재 하고 있는 서버 업무는 신선해서(!) 조금 더 재미있는 상황이기 때문에 근 2개월 간의 내용들을 회고하면서 상반기 동안 주로 저를 괴롭혔던 생각을 적어보려 합니다.
2개월 동안 했던 일들
MSA에서 사용될 어드민 만들기(Python, Django, Vue.js)
python보다는 django에 대해 익히게 된 시간이었습니다. 장고로 html 템플릿을 render시켜서 간단한 클라이언트 뷰는 Vue.js로 처리해주고, 대부분의 로직은 views.py에 작업해주는 일이었습니다.
어드민 권한 생성, 삭제, 권한 분리(매니저 권한인지, 일부 기능만 쓸 수 있는 권한인지)를 처리하고, 현재는 MSA의 정책 일부를 수정할 수 있는 메뉴를 붙이고 있습니다. python으로 gRPC 통신을 해보는 게 처음이라 나름의 재미는 있습니다!
아쉬운 점은 python에서 gRPC를 쓸 때 dict를 camelCase → snake_case 로 잘 바꾸어주면 좋으련만.. 그렇지 않아서 라이브러리를 가져다 쓰거나 직접 util 함수를 만들어야했습니다. 아직 python에서는 gRPC에 대한 니즈가 별로 없나?라는 생각이 들었습니다.
통합회원 서버 세션스토어를 mongoDB로 바꾸기
MySQL에서 rows를 삭제해도 Table size는 줄어들지 않는다고 합니다. row를 삭제했을 때는 MySQL에서 삭제했다고 표시만 해두고, 실제로 삭제는 하지 않고 그대로 있다고 합니다. 그래서 로그성 데이터들은 별도로 관리해주는 것이 좋다고 합니다.
통합회원 서버의 세션스토어를 기존에 django-session 테이블을 쓰고 있었는데, 세션정보는 유효기간이 만료되어 row를 삭제한다고해도 DB size가 줄어들지는 않을 것이기 때문에(찾아보니 optimize를 하거나 drop table 후 다시 생성하면 사이즈가 줄어든다고 하네요!) session정보를 mongoDB에 저장하도록 변경했습니다.
사실 제가 적은 코드는 몇 줄 안되긴 하는데, 덕분에 통합회원 서버 코드를 보면서 세션에 대해서 공부할 수 있는 시간이었습니다! 🤸♀️
Webpage view 기록하는 API만들기 gRPC
같은 파트 동료 서버개발자분께서 큰 피쳐를 진행하시게 되면서 업무가 많아져서 아주 많은 일 중 정말 작은 일 하나를 받아서 작업했습니다.
다노에 새로 생긴 추가퀘스트라는 기능인데, 미션을 꾸준히 달성하면 랜덤박스도 열어볼 수 있습니다. 포인트를 얻거나 다노샵 제품을 받게 될 수 있으니.. 물마시기/만보/스트레칭 이런거 좋아하시는 분들이면 다노앱 이용해보셔도 좋을 것 같습니다 🙂
그 중 제가 만든 API는 다노앱 안에 있는 다노 매거진 글을 읽었을 때 어떤 URL을 읽었는지 기록하여 그 유저가 하루에 n(정책으로 결정됨)개 이상의 글을 읽었을 경우 일일 퀘스트를 달성했다고 기록하는 것이었습니다.
간단하지만 mongoDB로 모델링을 해보는 것도 재미있었고, 다노 매거진 뿐만 아니라 다른 웹페이지까지로 확장될 경우를 고려해서 아예 webpage view를 기록하도록 설계한 것이 나름 뿌듯 -
나는 무엇에 동기 부여를 받는 사람인가? 무엇이 있으면 내가 더 성장할까?
사실 제가 무엇을 원하는 개발자인지는 고민이 큽니다. 풀어서 이야기하자면, 나는 무엇에 동기 부여를 받는 사람인가?라는 주제입니다. 성장에 대한 고민이기도 합니다. 왜냐하면 저는 성장하고 있다고 느낄 때 더 잘하고 싶어서 더 공부하는 타입이거든요.
잘 하고 싶고, 더 많이 알고 싶은데, 하루에 공부할 수 있는 학습량은 정해진 것 같습니다. 꾸준히 하고 있지만, 스스로의 기대치에 못미칩니다. 아마도 혼자서 하는 공부에 약간의 한계를 느끼는 것 같습니다. (혼자서 하는 건 재미도 별로 없더라고요)
연봉을 더 받으면 성장할까? 아닐 것 같아요. 연봉은 삶을 윤택하게 해주고, 책임감을 느끼게 해주는 요소이지, 개인의 성장과 비례하진 않을 것 같습니다. 실력을 쌓으면 나중에 돈은 따라오게 되지 않을… 까요..? 🙌
더 큰 회사로 이직을 해야할까? 맞을 수도, 아닐 수도. 큰 회사에서는 개인이 할 수 있는 업무의 폭이 좁기 때문에 깊이에 있어서는 성장할 수도 있지만, 두루두루 익히며 아는 건 어렵지 않을까..라는 막연한 생각을 합니다.
더 작은 규모의 회사로 이직을 해야할까? 더 큰 회사로의 이직과 마찬가지로 맞을 수도, 아닐 수도 있을 것 같습니다. 여러 가지를 해야만 하는 상황에 놓이면 어떻게든 돌아가는 코드를 짜면서 성장할 수도 있을 것 같습니다. 하지만 지금 당장 살아남아야하는 스타트업에서 고상한 선비님처럼 개인의 성장을 논하긴 어려울 것 같다고도 생각합니다.
커뮤니티에서 활동을 해봐야 할까? 이것도 맞을 수도, 아닐 수도 있다고 생각합니다. 여러 사람을 만나고 커뮤니티 활동을 하면서 아는 개발자를 늘려가는 것은 인생이 풍요로워진다는 점에서는 좋을 것 같지만, 그게 내 성장과 무슨 관련이 있나..라는 생각이 듭니다. 하지만 아는 개발자들과 함께 프로젝트를 하거나 스터디를 한다면 이야기가 달라지겠네요!
이것도 아니고, 저것도 아니라며 고민 끝에 내린 결론은 저는 같이 공부할 사람이 있으면 더 열심히 공부하고, 성장의 폭이 올라가는 것 같습니다. 물론 그 사람도 같이 공부하는 걸 즐거워한다는 전제가 필요할 것 같지만요. 서버/프론트/자바스크립트/파이썬 등 어떤 키워드이든 하나에 대한 고민을 나눌 수 있으면 좋겠습니다. 나와 비슷하거나 나보다 많이 아는 사람들과 함께 할 때 쑥쑥 성장하고 있다고 느끼며 더 잘하기 위해 의욕이 생길 것 같아요.
그래서 하반기에는 어떻게 하면 그런 사람들과 함께할 수 있을까?를 고민하고 행동으로 옮길 것 같습니다. 퇴근 후나 주말을 활용해서 커뮤니티 활동을 해볼 수도 있을 것이고, 스터디를 해볼 수도 있을 것 같습니다.
고민을 행동으로 옮겨서, 2020년 회고에서는 나름의 뜻깊은 일들을 많이 적을 수 있는 한 해가 되었으면 합니다 🙂