0. 영어 공부하기
- 영어로 된 문서를 볼 일이 많고, 회사에서도 간혹 영어로 커뮤니케이션이 필요한 일이 있다. 영어 문서는 번역기를 돌리기도 하고, 어쩌어찌 코드를 보며 이해할 수 있지만, 영어 스피킹은 너무나도 부족하다. 학원을 다녀서 보완할 수 있도록 하자!
1. 멘토 만들기
- 소프트웨어 스킬 뿐만 아니라 커리어등 좀더 개인에 초점을 맞춘 질문을 할 수 있는 멘토 구하기(지금껏 개발을 하며, 닮고 싶다 느끼는 시니어 개발자가 몇 있었다)
- 회사에서 시니어 개발자분들과 소통이 있고, 다양한 이야기를 하는 편이지만 아직 목마름이 있다,
2. 시니어 개발자 혹은 미드 레벨의 개발자가 되기 위한 기초 만들기
- 현재 주관적인 저의 역량은 주니어 개발자, 그리고 주니어 개발자 풀에서 잘하는 편은 아니라고 생각합니다.
- 시니어 개발자라는 용어 자체가 모호하지만, 시니어 개발자라는 것은 분명 존재한다고 생각합니다. 그리고 적어도 연차가 쌓여서 시니어 개발자로 불리는 일은 없도록 하고 싶습니다.
참고 : woowabros.github.io/woowabros/2017/07/03/senior.html
단순히 1년의 경력을 10번 반복한 시니어는 아무런 경쟁력이 없다
3. 회사에서 Critical 한 이슈를 만들었을 때는, 명확하게 원인을 분석하고 정리해두기
다행히 지금껏 일을하며, 회사에 큰 타격을 주는 이슈를 만든 기억은 없지만, 몇가지 기억에 남을 실수를 한 기억들이 있다.
- 이전 회사에서 유사 금융 앱을 만들며, 안드로이드에서 서버로부터 금융 정보 notification 을 받았을 때, 토큰 만료 및 유저 유효성에 대해 검증하는 로직을 구현한 적이 있었는데, Notification 을 클릭했을 때, 토큰 만료 및 유저 유효성 검사를 요청하도록 구현했어야하는데, Notification 을 받는 즉시 백그라운드에서 검사를 하도록 처리하여, 다수에게 Notification 을 보내게 되면 모두가 즉시 서버로 요청이 되었고, 서버 앞단(cloudflare)에서는 많은 트래픽을 디도스로 간주하여 무시해버린 경험이 있다. -> 결국 즉시 HotFix 가 진행되었다.
- 현재 다니는 회사에서 비교적 최근에 만들었던 이슈로, Local DB 에서 데이터를 가져와서 특정 시간 뒤에 보이는 Notification 을 등록하는 업무였는데, 정확하게는 Local DB 데이터 로드 -> Notification 객체로 변경 -> Notification 등록 -> BroadcastReceiver 에서 처리과정을 거치고 이 중간의 과정들은 Intent 안에 Bundle 형식으로 데이터가 마샬링 되어 들어가는 구조라 Type 에 대해 강타입이 아니다.
해당 로직 잘 구현했다고 생각하고 QA 를 통해 배포를 하였는데, Crashlytics 와 메일에 무수한 Crash 가 쌓이고 있었다.
결국 해당 로직을 확인해보니 Local DB 데이터 로드 -> (Notification 객체로 변경) -> Notification 등록 -> BroadcastReceiver 중간에 Notification 객체로 변경이 빠져있었고 결과적으로 BroadcastReceiver 에서 CastException 이 생기고 고객에게 좋지 못한 경험을 제공했다.
- 결제 관련해서 실패할 경우 재시도 하는 로직등에서의 실수도 있었는데, Google PlayStore 에서 실패처리, App 서버로 부터 실패처리 등으로 이후에 어떻게 retry 하고 finish transaction 을 시킬 것인지의 실수도 생각나고 이런 부분은 많이 보완했고 노하우도 생겼다.
- 실수는 다시하지 않아야한다. 꼭!
4. 개발 서적이 아닌 다른 분야 책 한달에 하나 읽기
- 나이가 먹으니 자연스럽게 재태크 부동산 등 다른 곳에 관심이 생기기 시작했는데, 지적수준이 인간지성이 아닌 수준이라 어려움을 느낄때가 많다.
- 나에겐 귀여운 아들이 있는데, 좋은 아버지가 되어 옆에서 조력자의 역할을 하고싶다.
- 융자, 이자지원, 채권, 채무 같은 용어를 명확하게 이해하지 못한 시기도 있었고, 심지어 연말정산도 무엇인지 헷갈리기도 했다. 어떻게 은행에서 대출을 받아 전세를 들어갔는지도 의심스럽다.
- 아는 것이 힘이다.
5. 개발자 스킬 늘리기
좀더 디테일하기 적자면,
- 안드로이드 Compose 에 관심이 있어서, 작은 토이 프로젝트 진행하기
- 코루틴에 대한 높은 이해 (현재는 Production 수준에서 coroutine scope, builder withContext, async, await 정도만 활용하고 있는 것 같다 StateFlow 등 새로운 것도 많이 나왔으니 공부하여 Production 에서 사용하자)
- 이번 동료 피드백에서 몇가지 받은 것들이 있다.,
1. 코드를 보고 명확하게 이야기해야하는데, 가끔 확실하지 않은 생각과 추정으로 만들어진 이야기를 할 때가 있다(그게 맞거나 틀리거나 상관없이)
2. 1의 연장선인데 내가 안드로이드 개발자 이기 때문에, aosp 도 까지 확인하여 이야기하면 동료들이 명확하기 이해하는데 도움을 줄 수 있다. (SharedPreference 가 파일에 쓰는 것 뿐만 아니라 메모리에 캐시하고 있는 것은 나에게 상당한 충격을 주었다 - 그간 사용하면서 한번도 확인해볼 생각을 못한게 객관적인 나의 수준을 알게한다)
- 내가 못하는 이유는 보통의 경우에는 해보지 않았기 때문이라고 생각한다.(항상 새로운것에 두려워하지 않고 도전하자)
6. TDD 까지는 바라지도 않는다, 필요할 때는 테스트를 작성하기!
- edu.nextstep.camp/c/Z9QeJlCi 에서 수업도 들었는데, 여전히 회사에서는 거의 테스트를 작성하지 못하고 있다. 팀원들이 사용하고자 하는 욕구도 있는 것 같고, 이야기 잘 해봐서 해볼 수 있으면 좋겠다. 물론 그전에 내가 먼저 자연스럽게 사용하도록 습관이 되는것이 중요하다. 현재도 테스트를 잘성하면 어색함이 느껴진다. 아직 테스트 코드를 통해 미처 내가 생각하지 못했던 이슈등을 발견하지 못해서 머뭇하고 있는지도 모르겠다.
'Daily & Thinking' 카테고리의 다른 글
안드로이드 면접 이야기 (0) | 2022.06.06 |
---|---|
현실 세상의 TDD 를 보면서 개인적인 생각 정리 (0) | 2022.06.05 |
kth(케이티하이텔) 2차 면접 후기 및 결과 (0) | 2019.10.29 |
kth(케이티하이텔) 면접 후기 (0) | 2019.10.29 |
kth(케이티하이텔) 인적성 후기 (0) | 2019.10.29 |