회고

[2022년 8-11월] Spring에서 플러터 개발자로

paran21 2023. 7. 16. 00:20

최초작성일: 2022년 12월 3일

0.  시작하며

8월에 이직을 하고 플러터 개발을 시작하면서 여러가지 재미있는 경험을 많이 하게 되었고, 최근에는 앞으로의 방향성에 대해 고민도 많았다.
최근에 회고를 거의 못하기도 했고, 새로운 블로그로 이사하면서 한 번 정리를 하고 가면 좋을 것 같아서 회고글을 작성하게 되었다.


1.  이직

올해 1월, 개발을 해보고 싶어서 부트캠프를 시작하게 되었고, Spring으로 서버 개발을 공부하고 5월에 취업을 하게 되었다.
이미 어느정도 자리를 잡은 안정적인 회사였고, 인터뷰도 굉장히 인상적이었다.
그렇지만 3개월만에 이직을 하게 되었다.

인터뷰에 들어온 개발자들은 클린코드를 추구하고 있었고, 에자일 등 개발 프로세스나 개발 환경에도 관심이 많았다.
그렇지만 입사를 하고 나서 느낀 것은 내가 인터뷰 때 받은 인상은 특정 개발자들의 개인적인 견해에 가깝다는 것이었다.
야근도 거의 없었고, 강의/서적비 지원과 같은 복지는 정말 좋았지만 내가 이 회사에서 1년 뒤에 어떤 모습일지 생각을 해보았을 때, 이직을 하는게 낫겠다는 결론을 내리게 되었다.

3개월밖에 다니지 않았지만 같이 일했던 좋은 개발자들이 있어서 업무와 별개로 자바나 스프링, 테스트코드에 대해서도 많이 공부할 수 있었다.
부트캠프를 다니면서 프로젝트는 어떻게 했지만 정리되지 않은 내용이 정말 많았는데 그래도 큰 줄기는 그릴 수 있게 된 것 같다.
이직을 결심하게 된 계기 중 하나는 내가 좋은 영향을 많이 받았다고 생각한 개발자가 이직을 하게 된 것도 있었다.

2.  플러터 개발자로

이직하게 된 회사는 이전 회사보다는 작고 아직 몇 년 되지 않은 스타트업이다.
원래 서버 개발자 포지션으로 가기로 되어있었는데 이런저런 일들이 있어서 플러터 앱개발자로 이직하게 되었다.

이 결정을 내리는 과정에서 많은 고민이 있었다.
Spring 서버 개발자로 몇개월 일하지도 않았는데 서버도 아닌 앱개발로 이직하면 완전히 새롭게 시작을 해야한다.

그렇지만 이전부터 앱개발에도 관심이 있었고, 회사의 도메인과 서비스도 재미있어 보였다. 
정말 기억에 남는게, 인터뷰가 끝나고 나서 집에 돌아오는 길에 이 회사에서 일하면 너무 재미있을 것 같고 정말 일해보고 싶다라는 생각이 엄청 들었다.
그래서 인터뷰 결과를 엄청 떨리는 마음으로 기다렸었다.

플러터 개발자로 이직하게 되면 오히려 새로운 프레임워크를 학습할 수 있고, 새로 시작하는 서버스의 초기 맴버로 참여할 수 있다는 환경이 나에게는 다양한 경험을 할 수 있는 좋은 기회가 될 거라고 생각하였다.


3.  스타트업에서 일한다는 건

이제 회사에서 일한지 3개월이 조금 넘었는데 만족하면서 잘 다니고 있다.

일단 일이 재밌다.
부트캠프를 들어갈 때도 프론트/백엔트 사이에서 엄청 고민을 했었는데, 플러터로 개발을 하면서 백엔드보다는 프론트엔드가 더 잘 맞는 것 같다는 생각이 많이 들었다.
아직 앱/백엔드 경험 자체가 많이 적어서 내가 제대로 알고 있지 못한 부분도 많겠지만 지금은 db나 서버 부하와 같은 부분보다 ui/ux나 렌더링 최적화와 같은 부분이 더 재미있다.

특히 현재 회사에서 초기 서비스 단계를 개발하다 보니 정말 수정이 잦다.
10월 말쯤 앱을 출시했는데, 앱 출시까지도 내부에서 테스트를 해보면서 수시로 ui와 기능이 변경되었고 출시 이후 지금은 정말 대대적인 업데이트를 준비하고 있다.
유저의 반응을 보면서 계속 빠르게 수정을 해야하다보니 상대적으로 효율적인 코드보다는 빠르게 기능을 구현하는 것에 목표를 두고 있다.

그럼에도 여기에는 사수가 있고, 내 코드는 pr을 거치고, 코드리뷰가 있다.
물론 일정이 급할 때는 코드리뷰가 꼼꼼히 안될 때도 있는데 그냥 merge되는 일은 거의 없다.
잦은 수정을 위해서라도 최소한 비즈니스 로직은 위젯과 분리하고, 하나의 책임만 갖게하려고 노력하고 있다.

재밌는 건 이번 업데이트 전에 나름 여러번 코드리뷰를 거치면서 api 콜 중복도 고치고 렌더링도 이전보다 신경써서 build되게 해 놓은 페이지가 이번 업데이트로 완전히 날라갈거라는 점?ㅎㅎ 근데 이 과정에서 정말 많이 배워서 코드가 아깝지는 않다😅

그리고 네이티브를 해보지 않아서 비교는 어렵지만 플러터 개발 속도는 꽤 빠른 것 같다.(일단 안드로이드/ios가 다 커버된다!)
당연히 좋은 코드를 만든다면 시간이 훨씬 더 걸리겠지만, 정말 프로토타입으로 개발하기에는 꽤 괜찮은 것 같다.


4.  플러터? 네이티브?

일은 재밌게 하고 있는데, 11월에는 특히 개인적으로 앞으로 뭘 더 공부해야하는지, 어떻게 공부해야하는지 고민이 많았다.

플러터를 하면서 앞으로 앱 개발쪽으로 쭉 나가도 되겠다고 생각은 들었는데, 네이티브를 하는 게 더 낫지 않을까라는 고민이 많다.

일단 플러터가 안드로이드/ios를 모두 개발할 수 있다는 점은 큰 장점이지만 업무를 하면서 오히려 양쪽의 지식이 모두 필요하다고 느꼈다.
양쪽에서 다 어색하지 않게, 필요한 기능들이 다 구현되게 해야하고 각각 설정을 건들여야 하는 경우도 많다.
개인적으로 앱에 대한 지식이 거의 없고 심지어 ios만 사용하고 있어서 안드로이드 쪽은 정말 잘 몰라서 개발하다가 처음 알게된 것도 꽤 많았다(뒤로 가기 버튼이라든지?).

그리고 취업시장을 봐도 플러터는 스타트업에서 많이 사용하고 어느 정도 서비스가 커지면 대부분 네이티브를 사용하게 되는 것 같다.
그래서 차라리 네이티브 하나를 메인으로 하고 서브로 플러터를 가져가는게 낫지 않을까, 라는 생각도 많이 했다.
지금 회사는 너무 재밌고 좋지만, 앞으로 어떻게 될지 모르고 스타트업의 부정적인 얘기도 많이 들어서 내가 계속 스타트업에 있을지도 잘 모르겠다. 조금 더 큰 회사에 가고싶다면 네이티브도 공부하는게 맞다고 생각한다.
한편으로는 아직 플러터도 잘 못하면서 네이티브 공부를 병행하는게 맞는지 고민도 되었다.

또, 개인적으로 퇴근 후에도 계속 공부를 해야한다는 상황 자체에 약간 압박을 느꼈다.
계속 성장을 할 수 있다는 점이 개발을 시작할 때 가장 매력을 느낀 부분이지만, 퇴근 후에 피곤한 상태에서도 계속 공부를 해야하고 뒤쳐지지 않아야한다는 생각이 버거웠던 것 같다.

그래서, 살짝 부담을 내려놓고, 해야하는 것과 커리어에 대한 생각은 줄이려고 노력하고 있다.
일단 업무 외 개발은 내가 재밌게 할 수 있는 걸 해야겠다.
해야한다고 생각하고 할수록 개발에 대한 재미를 잃는 것 같다.
공부를 하는게 아니라 코딩을 하는 거고, 내가 재밌는 걸 하면 알아서 공부도 될거다.
그리고 속도에 너무 신경쓰지 않기!
나는 개발을 오래오래 재밌게 하고 싶다.

5.  앞으로 할 것

- 현재 진행중인 알고리즘 스터디는 12월 중으로 마무리할 예정이다.
그 이후는 팀원들이랑 더 얘기를 해봐야겠다.

- 스위프트는 `스위프트 프로그래밍`을 읽고 있고, 프로그래머스에서 lv0을 풀고 있다.
깃헙에서 재미있는 레포지터리를 찾았는데, 마침 이펙티브 자바를 한번 다시 봐야겠다는 생각을 하고 있어서 같이 보면 좋을 것 같다.
https://github.com/TheSwiftists/effective-swift

- 인스타그램 클론코딩을 하고 있다.
우선 ERD와 우선 구현하고 싶은 기능을 잡았고 스프링부트로 서버 작업 중이다.
전에 스타벅스 클론코딩을 살짝 하다가 말았는데(db 데이터 작업이 너무 귀찮았다...) 인스타그램은 서버 작업도 해보고 싶었고, dm, 푸쉬 등 추가해볼만한 작업이 많은 것 같아서 시작하게 되었다.
진행속도는 사실 꽤 느린데 재밌게 하고 있다.
일단 잡아놓은 기능들까지만 빨리 서버 작업을 마치고 플러터 시작할 예정이다.

- 클론코딩을 마치고 사이드 플젝을 할지, 아니면 ios 공부를 본격적으로 시작할지는 나중에! 😎