선생님, 개발을 잘하고 싶어요.

퇴사 부검 본문

일상/회고

퇴사 부검

알고싶은 승민 2021. 6. 28. 12:17

목차

    왜 떠나는지

    개발 외 공부가 부족하다고 판단했습니다. 심지어는 개발에서도 내가 진짜 무엇을 하고 싶은가를 모른 채 공부하고 있다는 느낌이 듭니다. 그를 위해서 일을 하면서 기본기를 채우고 가치관을 확립할 수도 있지만 학교 졸업을 해야 하는 입장에서 회사와 학교를 병행하면 그런 시간을 갖기 어렵다고 판단했습니다.

     

    구체적으로 부족하다고 생각하는건 학교 공부, 영어 공부가 있고 말하기 쓰기 즉 스스로의 의견을 표현하는 것에 큰 약점이 있으며 사람을 대할 때 마음가짐에 대한 개인 정리가 필요하다고 생각했습니다.

     

    이런 것들을 초장에 개선하지 않고 달렸을 때 그 모습에 만족하지 못하겠다고 생각했습니다. 그래서 이런 이유에서 회사를 떠나기로 결정했습니다.

    회사에서 배운 것

    처음 회사에 들어올 때 안드로이드 개발 실무 지식은 하나도 없는 상태 었습니다.

    회사는 다행히 산업체에서 윈도우 개발을 하며 배운 소프트웨어 개발에 대한 지식, 안드로이드를 독학하고 진행한 사이드 프로젝트 덕분에 운 좋게 일할 수 있었습니다.

     

    그렇다면 1년 반이 지난 지금 제가 회사에서 무엇을 배웠을까요.

    안드로이드 개발 측면

    안드로이드 공부를 혼자 하면서 느낀 거대한 산 중 하나가 RxJava에 대한 이야기였습니다. 비동기 처리, 프론트엔드 개발에선 비동기 처리가 그렇게 중요하다는 얘기는 익히 들었고 그를 위해서 실무에선 RxJava를 주로 사용한다는 이야기는 들었습니다 하지만 실제로 사이드 프로젝트에서 사용해보면 확 와닿지 않는 것이 현실이었습니다.

     

    RxJava를 코끼리 다리 더듬 듯 사이드 프로젝트에 적용해 볼 뿐이었습니다.

     

    반면 쏘카 안드로이드 팀은 RxJava를 적극적으로 사용했습니다. ViewBinding부터 Rx를 지원하지 않는 외부 라이브러리를 자체 라이브러리로 Rx로 한번 Wraping해서 사용할 정도로 말이죠.

     

    그러다 보니 RxJava에 대한 이해가 없이는 버튼 클릭 이벤트 하나도 이해하기 어려웠습니다만, 반면 버튼 클릭 이벤트 하나라도 이해하면 쏘카 안드로이드의 모든 코드를 이해하는 데 무리가 없었습니다.

     

    그래서 자연스럽게 RxJava에 대한 이해도가 높아졌습니다. 이해도가 낮은 상태로 대충 코드를 짜면 코드 리뷰에서 빈번히 실패했기에 그야말로 하드 트레이닝을 하게 되었고 RxJava에 대한 조금의 자신감이 생겼습니다.

     

     

    또한 의존성 주입을 공부하고 실제 프로젝트에 적용하며 진행할 수 있었습니다. 혼자서는 Koin을 사용하여 의존성 주입을 구현하고 Dagger는 어렵다는 말을 듣고 항상 뒤로 미루고 있었습니다. 하지만 회사에서는 Dagger를 주요 의존성 주입 라이브리로 사용했습니다. 그러다 보니 Dagger에 대한 학습을 하게 되고 여러 이례적인 상황에 대응하면서 Dagger에 대한 이해를 하게 되었습니다.

     

    이를 토대로 요즘엔 제 사이드 프로젝트에 Hilt를 도입해보고 있는데 Dagger의 패러다임 위에서 만든 Hilt라서 그런가 이해하기가 수월하고 좋았습니다.

     

     

    또한 혼자선 그냥 주어진 화면만 빨리빨리 만들자는 생각에 화면 재사용은 기껏해야 ViewHolder정도만 해봤는데, 실무에선 더 광범위하게 새로운 기능을 만들어야 하는 상황이 되면서 디자이너와 개발자 간 공통 언어인 디자인 시스템을 설계하고 다른 개발자들도 손쉽게 사용할 수 있도록 CustomView로 만드는 법을 알게 되었습니다.

     

    화면의 재활용 성에서 CustomView를 학습하고, 더 깊게는 Canvas에 대해서 조금이지만 맛보게 되었습니다.

     

     

    요즘 더 크게 느끼는 것이지만 안드로이드 플랫폼은 급격하게 변하고 있고 개인정보보호는 항상 뜨거운 감자인 것 같습니다. 그러다 보니 안드로이드 플랫폼에선 지원이 종료되거나 새로운 권한을 받아야만 하는 등 플랫폼 변화에 적응하지 않으면 제품 실행이 불가능한 변경 사항들이 있다는 사실을 알게 되었습니다.

     

    그에 따라서 항상 최신 안드로이드 기술을 항상 관심을 열어야 하고 기민하게 우리 프로젝트에 적용할 방안을 고민해야 한다는 것, 또한 버전에 따라서 구현을 달리해야 한다는 걸(예를 들면 Notification) 배우게 되었습니다.


    개발 관련된 것도 엄청나게 성장했지만, 실무를 진행하면서 개발 이외의 부분도 많이 배우게 되었습니다.

    팀 문화 측면

    안드로이드 팀은 코드 리뷰 문화가 매우 강력한 팀입니다. 모든 팀원이 모든 코드를 리뷰 한다고 봐도 무방했고, 코드에 대해서 빈 줄 하나까지 꼼꼼하게 따지는 철저한 코드 리뷰를 수행했습니다. 처음에는 이런 경험이 없었기 때문에 조금 부담스럽기도 했는데요. 하다 보니 코드 작업 이외로 팀원에게 설명 가능한 코드의 중요성을 깨닫게 되었습니다.

     

    다른 회사를 다니는 친구의 얘기를 들으니 이런 코드 리뷰 문화가 회사마다 다르다는 사실을 알게 되었습니다. 실제로 이렇게 타이트하게 하는 곳도 있고 오히려 매우 느슨하게 진행하는 곳도 있었습니다. 리뷰 문화 자체가 느슨해서 없다고 느낀 친구와 얘기를 하며 "문화"의 중요성을 생각할 수 있었습니다.

     

     

    또한 매주 주간 회고를 진행하는 문화가 있어서 모든 구성원의 만족도가 높은 환경을 만들려고 하는 것이 좋았습니다. 팀원 간 감정 상태 공유부터 시작해서 이번 개발 주기에서 느낀 감정과 개선점을 서로 얘기할 수 있고 회고 프로세스 그 자체를 개선하는 얘기를 할 수 도 있었습니다. (오피스가 성수라서 분위기 좋은 카페를 갈 수 있었던 것도 좋았죠, 코로나 이후에는 못 갔지만)

     

     

    좋은 팀 문화는 개발자의 삶을 위해서도 중요하지만 또한 서비스의 질을 위해서도 중요한 요소라는 생각을 하게 되었습니다. 그러면서 자연스럽게 나도 성장하고 팀도 같이 성장하는 팀 문화를 고민해 보는 계기가 되었습니다.

    개인 일 측면

    학창 시절 공부할 때 스스로 별로 일정을 짜서 하는 편이 아니었습니다. 그냥 하고 싶은 공부 위주로 하는 편이었죠. 그런데 실무에서는 항상 정해진 마감 날이 있고 동시에 어려가지 업무가 주어졌습니다. 그러다 보니 스스로 업무를 조직하고 완수해야 할 필요가 있었습니다.

     

    처음에는 일감의 마감이 다가올수록 스트레스를 받는 경우가 많았습니다. 하지만 이 스트레스 자체가 삶, 업무에 지장을 주니 해결하는 방법을 열심히 찾았습니다.

     

    업무를 Getting Things Done 하는 방법을 다양하게 시도해 보았고 많은 시행착오를 거칠 수 있었습니다. 회사 업무에 대해서 다른 분들의 일감 관리 내용을 보고 영감을 받아 업무의 상태와 우선순위를 표기하고 매일 그 목록을 갱신하는 훈련을 할 수 있었습니다.

     

    그리고 그러한 과정이 자연스럽게 제 개인 일감을 관리하는 데도 영향을 주었습니다. 제가 평상시에 하는 공부나 운동, 사람을 만나는 것을 조직화 하고 Getting Things Done 할 수 있는 방법을 만들어 가고 있습니다.

     

    이번에 학교를 돌아가고 학원 과제 시험을 병행하며 개인일감 관리 능력 향상이 눈에 보였습니다.

    앞으로의 계획

    크게 졸업이 남아있죠. 학교 졸업이 그중 하나이고, 어학원 졸업이 또 다른 하나입니다.

     

    학교 졸업은 크게 문제는 없어 보입니다만, 지금 진행해야 하는 졸업 프로젝트에 감을 못 잡은 게 큰 복병입니다. 이를 위해서 논문을 읽고 분석하고 지금까지 진행된 부분을 다시 팔로우 업 하는 작업을 먼저 해야 할 것 같아요.

     

    어학원 졸업은 올해 갑자기 생긴 목표입니다. 실제로 퇴사를 결심하게 된 가장 큰 이유 중 하나기도 하죠. 누나영이라는 강남에 위치한 어학원인데, 커리큘럼이 마음에 들고 선생님들의 열정이 마음에 듭니다. 종합 영어 솔루션이라는 이름에 걸맞고, 제가 지향하는 공부의 방향성과 맞아서 졸업까지 달려보려고 합니다.

     

     

    졸업이라는 목표만을 위해 달리려고 퇴사를 하는 것은 아닙니다. 공부의 부족, 생각의 부족들이 제가 지금 저만의 명확한 가치관이 없다고 느끼는 이유인데요. 이에 따라서 가치관을 확립할 수 있도록 이것저것 노력할 예정입니다.

     

    그를 위해서 독서를 다시 열심히 시작할까 합니다. 좋은 책을 만난 후와 만나기 전의 내가 마인드부터 다른 사람이 되는 경험을 한 적이 많은데, 그런 긍정적 변화들을 쉬는(?) 기간 동안 차곡차곡 쌓고 더 단단한 사람이 되려고 합니다.

     

    사실 이런 강렬한 자극은 독서뿐 아니라 사람과의 만남에서 빈번하게 일어나기 마련이죠. 사람과의 스파크를 만들 기희를 가지려고 합니다. 이를 위해서 메모어라는 회고 모임에 들어갔습니다. 이 모임을 통해서 스스로의 생각을 정리하는 한 편, 새로운 사람을 만나는 기회를 꾸준히 잡아가려고 합니다.

     

     

    하지만 동시에 커리어와 관련된 학습도 멈출 수는 없죠.

     

    이를 위해서 알람 앱 사이드 프로젝트를 다시 가동시키려고 합니다. 어느 정도의 코드 베이스를 작성해 놓은 상태이기 때문에 지속적인 개선 작업을 위해서 하루에 일정 시간은 소비해야 할 듯합니다.

     

    여력이 된다면 알고리즘 공부도 꾸준히 진행하면 좋겠다고 생각하고 있습니다. 당장 지금은 백준 온라인 저지를 사용하고 있으며 solved ac class 수집을 위해 이것저것 문제를 풀어보고 있습니다. 더 나아가서 codeforces에서 랭크를 위해서 달리는 노력도 해야죠.

    끝으로

    지금의 선택은 어느 정도 치기 어린 선택이라고 생각하고 있습니다. "어떻게든 긍정적으로 되겠지!"이런 어린아이 같은 생각이 있습니다.

     

    하지만 동시에 이런 선택을 지금 아니면 못할 것이라고 생각했습니다. 지금 나이에도 명확히 필요한 기본기를 다지려고 커리어를 잠깐 멈출 때 이런 마음이 든다면, 나중에 더 큰 책임을 가지고 있을 때는 절대로 못하겠다 생각했습니다.

     

    이 선택의 결과가 어떻게 돌아올지 모르겠지만, 지금의 내가 하는 이 고민을 온전히 남깁니다. 미래의 내가 다시 이 글을 볼 때 지금의 이 선택을 납득할 수 있도록 말이죠.


    '일상 > 회고' 카테고리의 다른 글

    기술 블로깅 모임, 글또 4기 회고  (0) 2020.08.15
    Comments