[iOS] 플레이키보드 신입 개발자의 실패를 위한 온보딩 여정

Taekhwan Han
playkeyboard
Published in
7 min readSep 6, 2023

안녕하세요 ! 플레이키보드팀에 새로운 iOS 개발자로 합류하여 이제 막 온보딩 프로젝트를 마무리한 한택환입니다.

저는 애플에서 직접 운영하는 애플 디벨로퍼 아카데미 1기에서 iOS 개발을 접하고 사람들이 사용하는 ‘앱’ 이라는 서비스를 어떻게 하면 더 편하고 사용성 있게 제공할 수 있을지에 대해 매력을 갖게 되면서 iOS 개발자라는 진로를 결정하게 되었는데요.

한달간의 온보딩 프로젝트를 거치고 이제 막 스프린트에 합류하게 되었습니다.
플키팀의 온보딩 프로젝트 과정을 소개해드리고자 합니다. 👏

플레이키보드팀의 개발자 온보딩은

  1. 데일리 퀴즈
  2. 현재 제품 코드 분석
  3. 실패를 위한 도전과제
  4. 도전과제 발표

로 구성이 되어있습니다.

1. 데일리 퀴즈

데일리 퀴즈는 iOS 전반적인 지식에 대해 퀴즈 형식으로 매일매일 4가지를 풀게 됩니다.

Swift에 대한 지식 2가지, UIKit에 대한 지식 2가지로 구성되어 있는데 각 퀴즈를 풀어가다 보면 이전에 푼 퀴즈가 앞의 퀴즈와 연관된 경우가 많은데요.

알고 보니 온보딩 프로그램을 구성할 때 부터 iOS 개념을 정리할 수 있는 로드맵과 같은 흐름으로 퀴즈를 구성하려고 하셨더라구요. 😲

실제로 제가 푼 퀴즈의 일부입니다.

약 열흘 동안 매일 4개의 퀴즈와 제품 분석만을 진행하다 보니 퀴즈 하나하나 깊게 공부할 수 있었고, 또 이 퀴즈를 공부하고 제품 분석을 진행할 때 연관된 부분들이 보여서 공부 → 복습까지 모두 되는 느낌을 많이 받았습니다.

풀이한 퀴즈는 보충할 부분이나 추가로 공부하면 좋을 부분 위주로 리뷰를 해주셔서 제가 놓쳤던 지식이나 퀴즈 외적인 부분에서도 많은 공부를 할 수 있었습니다.

퀴즈가 마지막에 종료될 때쯤에는 머릿속에 iOS의 흐름이 그려질 정도로 되짚어볼 수 있었고 특히 UI가 중요한 키보드 작업에서 `Drawing Cycle` 과 같은 부분들을 공부할 수 있었습니다.
그 어느 때보다 빠르게 성장할 수 있는 열흘이었습니다.

2. 제품 코드 분석

제품 코드 분석은 지금 사용자분들이 사용하시는 플키 앱의 코드를 분석하는 과정이었는데요 !

데일리 퀴즈와 병행하면서 진행하고 각 코드의 파트별로 나눠서 분석하게 되어서 깊게 분석할 수 있었습니다.

이렇게 미리 어느 부분을 분석해야 할지에 대한 내용과 기간이 정해져 있고 기간 내에서 스스로 분석 단위별로 들어갈 시간을 산정하고 진행하게 됩니다.

저는 분석 단위의 양과 제 기본 지식을 바탕으로 일정을 산정하여 2~3일 정도를 기간으로 잡았고, 해당 기간 동안 코드의 모든 부분을 샅샅이 훑어볼 수 있었습니다.

회고를 제외한 분석 과정의 포맷이 자유여서 처음에는 당황했지만 진행하다 보니 스스로 분석하는 규칙도 생기고 오히려 모든 코드를 세세하게 볼 수 있었습니다.

지금 돌이켜 생각해보면 따로 포맷이 있었다면 포맷에 맞추면서 빠뜨리는 부분이 있거나 코드 하나하나를 깊게 보지 못했을 것 같아요 !

이렇게 2~3일의 분석을 거치고 나면 분석에 대한 리뷰를 한 시간 정도 진행합니다.

리뷰 과정에서 생기는 개선할 점은 판단 후에 필요하다면 즉각적으로 반영이 되었는데요.

이제 막 온보딩하는 과정에서 개선 사항을 제시하고 바로 받아들여진다는 점이 신기하기도 뿌듯하기도 했고

누구든 좋은 의견이 있다면 제시하고 열린 마음으로 받아들이는 플레이키보드팀이어서 가능했던 것 같습니다. 👍

3. 실패를 위한 도전 과제

도전과제는 여태까지 수행한 데일리 퀴즈와 제품 코드 분석을 토대로 스스로 필요하다고 느꼈거나 해보고 싶은 과제를 정해서 약 1~1.5주간 진행합니다.

보통의 도전과제는 성공을 위해서 진행하지만 플레이키보드팀의 도전과제는 실패가 목적인 도전과제 라서 부담없이 하고 싶은 도전과제를 정하고 임할 수 있었습니다.

아주 높은 난이도의 과제를 정하고 실제 제품 코드에서 직접 개선하면서 구현하게 됩니다.

제가 선정한 도전과제는 기존 코드를 확장성 있게 개선하고 새로운 기능을 덧붙이는 작업이었습니다.

기존코드의 경우 새롭게 기능이 들어오게 되면 기존 기능의 UI, 레이아웃이 수정되어야하는 부분들이 많았습니다. iOS는 향후에 새롭게 추가될 기능이 많이 예정되어 있었기에 이 부분이 개선된다면 후에 훨씬 적은 리소스를 들여 개발을 할 수 있을 것 같아서 도전과제를 선정하게 되었습니다.

진행 과정에서 느낀 점은 데일리 퀴즈와 제품 코드 분석을 통해서 기존 코드를 알고 진행하다 보니, 과제를 수행하면서 “이 코드는 무엇일까?” 라는 의문이 없어서 놀랍고 뿌듯했습니다! 확실히 앞의 과정들이 도움이 많이 되었다는 게 느껴지더라고요.

도전과제 중간에 개발한 기능이 키보드에서 동작을 하지 않는 실패가 있었습니다.

개발을 모두 완료한 상태에서 동작을 하지 않아 허탈한 마음이 생길 줄 알았는데 오히려 어떻게든 성공시키고 싶다는 오기가 생겼고 결국 더 나은 결과물을 개발하면서 더더욱 뿌듯한 온보딩 기간이 되었습니다!

처음 도전과제를 임할때는 단순히 실패가 부담감을 줄이기 위함인줄 알았지만 도전과제를 마치고 나니 할 수 있는 최대치를 경험해보았던 기회라고 느껴졌습니다.

과연 이게 성공을 위한 도전과제 였다면 얼마나 내 최선을 끌어낼 수 있었을 지에 대해 고민해볼 수 있었습니다. 또한 앞으로 같은 문제를 겪더라도 어떻게 대처하고 관리해야할지에 대해 깨달을 수 있었습니다.

결과적으로 제한된 시간 내에 최대치를 끌어내고 성장할 수 있었던 시간이었습니다. 🙂

4. 발표

마지막으로 앞의 세 과정을 모두 완료한 후에는 모든 팀원 앞에서 프로젝트 과정에 대한 발표를 진행하게 됩니다. 도전과제를 중심으로 온보딩 프로젝트의 회고를 발표하는 시간이었습니다.

저는 키노트를 만들어 발표를 진행하였는데, 팀원분들이 반응을 많이 해주셔서 당당하게 온보딩 프로젝트 후기를 공유할 수 있었습니다.

또한 도전과제의 경우에는 필요한 기능이라면 바로 정책 수립과 실 제품에 반영될 수 있도록 논의를 거치게 됩니다! 제가 구현한 도전과제는 향후에 예정된 기능이기도 하고 플키 사용자들의 사용성을 높일 수 있는 과제였기에 추후에 제품에 반영되게 되었답니다.

현재 스프린트에서 이 기능을 위한 작업을 진행 중이고 키워드로 힌트를 살짝 드리자면 ‘커스텀’ 에 관련된 기능이랍니다. 😄

온보딩을 마치면서

여기까지가 플레이키보드의 온보딩 프로젝트 과정이었는데요.

처음 합류해서 허둥지둥할 순간 없이 온보딩 프로젝트를 마련해주시고 또 원활하게 진행할 수 있도록 모두가 도와주셔서 성공적으로 끝마칠 수 있었습니다.

특히 온보딩 과정을 따라가는 것이 아니라 최소한의 틀만 가지고 제가 일정을 계획하여 공유하고 진행한다는 점에서 직접 질문할 기회도 많아지고 처음 실무에서 겪을 수 있는 소통의 어려움도 미리 경험해보면서 온보딩이 끝나고 협업을 하는 과정에 있어서도 도움이 될 것이라는 생각을 많이 했습니다.

또한 온보딩 프로젝트를 진행하면서 점점 발생하는 버그, 개발 리소스에 관해서 확신을 가지고 이야기할 수 있게 되면서 자신감이 생기고 플레이키보드를 개발하는 데 있어서 내가 정말 필요한 일원이 된다는 감정이 들어서 더욱 몰입하고 열심히 했던 과정이었습니다.

스프린트에 참여하고 이제 진짜 협업을 시작하는 지금, 앞으로는 어떤 과정이 기다리고 있을지를 기대하면서 글을 마무리하겠습니다. 🙏

--

--