이번에는 지난 포스트에 이어서 인턴십 기간동안 수행했던 과제와 이를 수행하면서 느낀 점, 그리고 전환 과정과 그 결과에 대해서 이야기해보려고 합니다.

  • 나는 오늘부터 카카오 크루다
    첫 출근날은 온보딩(On-boarding)을 합니다. 이는 카카오라는 큰 배에 탑승하게 되었다는 의미로, 카카오에서 일하기 위해 전 직군이 공통적으로 필요한 것들을 알려주고, 사원증 제작을 위한 사진 촬영을 하며, 함께 입사하는 동기들과 처음 만나는 자리이기도 합니다. 또한 이 날 처음 제가 배치될 팀을 알게 되었고, 함께 일하게 될 동기와도 처음으로 만나게 되었습니다. 온보딩은 당일에 마무리가 되고, 이후에는 배치될 팀에서 버디가 와서 각자의 팀으로 인솔을 해갑니다. 그리고 이때 저는 내가 가게 될 팀이 제가 지원했던 그 팀이라는 것을 알게 되었습니다. 인솔을 오셨던 버디분이 지난 수시지원때 면접관이셨던 분이였기 때문이죠.

    당시는 연말이였기 때문에 많은 분들이 연차를 사용하여 자리가 한산해서 간단하게 인사만 드리고, 자리 배치 받은 것으로 첫날이 끝났습니다.

  • 인턴으로써의 과제 수행 과정
    잠깐의 적응기간을 가지고, 곧바로 과제를 부여받게 되었습니다. 이 과제는 팀내에서 결정하는 것으로 팀마다 모두 다릅니다. 제가 받은 과제는 현재 개발중인 SDK의 예제 앱을 다시 만드는 것이였습니다. 처음에는 MVC와 외부라이브러를 사용하지 않고, 이후에는 MVVM으로 이를 리팩토링하고, 외부라이브러리를 도입하는 것이였습니다. 거기에 더해 기본 과제 뿐 아니라, 유닛 테스트를 붙이는 등의 도전 과제 또한 주어졌습니다. 그리고 MVVM을 적용하는데 처음에는 Combine과 SwiftUI를 적용하려고 했으나, 버전 지원 문제 등으로 RxSwift와 ReactorKit을 사용하는 것으로 변경되었습니다.

    실무를 해보는 것은 처음이였고, 이 결과로 내 미래가 결정된다는 생각에 긴장도 많이 됐습니다. 리팩토링을 전제로 깔고 있었기 때문에 나중에 쉽게 변경할 수 있도록 설계도 해야 했습니다. 그래도 나름 iOS 공부를 했고, 어느정도 깊이 있게 알았다고 생각했지만 과제를 수행하면서 스스로의 부족함이 계속 드러났습니다. 네트워크 사용법, 비동기 처리에서 겪을 수 있는 문제점들, 코어 데이터 사용법 등등… 여전히 알아야 할 것들 투성이였고, 주어진 시간은 짧았습니다. 그래도 계속 피드백을 받아가면서 꾸준히 나아갈 수 있었고 과제 마무리 시점에는 나름 괜찮게 해냈다는 생각을 가지고 1차 과제를 마무리 하고 피드백을 받았는데, 그 결과는 처참했습니다.

    1st Code Review

    직접 공개할 수는 없지만, 대략적인 분량만 저정도가 나왔습니다. 코드리뷰가 끝나고 나니 힘이 쫙 빠져버릴 정도였습니다. 하지만 아직 과제가 끝난 것이 아니였기 때문에, 숨만 잠시 고를 수 있었습니다.

    2번째 과제인 MVVM으로의 전환을 수행하기 전에 아직 실험적인 기술인 Combine과 SwiftUI에 대한 리서치를 수행하고 실제 적용 가능성을 타진해서 팀내 발표를 수행하라는 과제를 추가로 받았습니다.(추가로 발표 자료없이 화이트보드만으로 발표를 수행하라는 제한도 있었습니다.) 그래서 1주일의 기간동안 WWDC와 공식 문서, 그 외 여러 자료들을 참고로, 직접 실험해가면서 그 특성을 파악하고 정리하여 발표를 성공적으로 수행할 수 있었습니다. 다만 위에서 언급했듯이 Combine과 SwiftUI를 적용하는 것은 어렵다는 판단이 있어 2차 과제는 RxSwift와 ReactorKit을 적용하는 것으로 과제 내용이 변경되었습니다.

    이미 리뷰도 많이 받았고, 그에 대한 수정도 충분히 했으니 이번에는 그래도 괜찮을꺼라고 생각했습니다. 그런데…

    2nd Code Review

    여전히 어마어마한 피드백이 돌아왔습니다. 이 때는 첫번째 때보다 더 충격적이였습니다. ‘망했다’라는 생각만이 머릿속에 가득찼습니다. 그래도 마무리는 해야되니까 이러한 피드백을 모두 반영하여 과제를 마무리한 뒤, 드디어 전환 면접을 준비할 때가 되었습니다.

  • 전환면접 준비
    그렇게 모든 과제를 마무리하고, 전환 면접을 준비할 수 있는 시간이 주어졌습니다. 간단한 발표 자료를 만들고 대본을 작성해서 이를 계속 첨삭해나가는 과정의 연속이였습니다. 내가 한 것이 무엇이고, 그 과정에서 무엇을 느꼈는지, 그 이후에는 어떻게 더 성장할 수 있을 것인지에 대한 생각을 솔직하게 작성하고, 이를 자연스럽게 말할 수 있도록 연습했습니다. 발표자료는 꾸밈없이 검은 바탕에 흰 글씨로만 담담히 써내려 갔습니다

    Interview Presentation

    전환 면접은 원래 2차 면접을 보셨던 분들이 면접관으로 들어오게 되는데, 인턴은 2차 면접이 없기 때문에 보통 인턴들은 이 때 처음으로 자신이 속한 팀의 상위 조직장님을 만나게 됩니다. 하지만 저는 이전에 지금 있는 팀에 지원한 적이 있었고 2차 면접까지 갔던 경험이 있었습니다. 즉, 저는 저를 떨어뜨린 적이 있으셨던 분들 앞에서 다시 면접을 봐야되는 상황이였던 것입니다. 그분들이 저를 기억해 주셔서, 좀 더 긴장된 가운데에서 면접을 수행하였고, 다행히도 준비해 온 내용을 빠짐없이 잘 말하고 면접을 마칠 수 있었습니다. 이제 모든 것이 끝났고, 남은 것은 면접 결과 뿐이였습니다. 그리고 그 결과는…

    Interview Result

    그 날은 정말로 기뻐서 소리가 절로 나왔습니다.

  • 인턴 기간을 회고하면서…
    인턴 기간은 저에게 개발자로써 일을 한다라는 것이 무엇인지 경험하게 해주는 좋은 경험이였습니다. 포트폴리오도 빈약하고 특출난 성과가 없었던 저로써는 카카오라는 회사에 함께 하게 되었다는 것 자체가 천운이였는데, 계속해서 함께할 수 있다라는 더 큰 행운까지 얻게 되었습니다. 이후 전환 면접 피드백을 통해 어떤 점 때문에 내가 선발이 될 수 있었는지도 꼼꼼이 피드백을 받았고, 어떤 점에서 더 발전해야 할 지도 알 수 있었습니다.

    우선 제가 인턴의 기회를 얻게 된 것은 팀에서 필요로 하는 스킬셋과 기초를 어느정도 가지고 있었다는 점이 주요하게 작용했습니다. 나중에 들은 거지만 다른 지원자들 중에서 저보다 스펙 좋은 사람들이 있었는데도 제가 선발이 되었다고 합니다. 이러한 것을 한가지로 압축하면 프로그래밍에 대한 관심이라고 표현을 할 수 있습니다. 즉 프로그래밍을 잘 할 수 있다라는 말이 말만이 아니라 스스로 성장할 수 있는가에 대해서 긍정적인 평가를 받아서 전환까지 이루어지게 되었다는 피드백을 받았습니다. 신입이고 회사 경험이 없기 때문에 당장의 성과는 안나올 수는 있어도, 성장 가능성을 높게 평가 받았다는 뜻으로 받아들였습니다. 물론 수시 지원후 바로 인턴 기회가 있었고, 코딩 테스트를 통과하고 다시 면접의 기회를 얻어냈다는 점에서 운이 따라 줬다라는 점도 배제할 수는 없을 것입니다.

    혹시라도 이 글을 읽고 계시는 카카오 준비생, 그렇지 않더라도 개발자를 준비하고 계시는 분들이 있다면, 스펙 등에 엃매이지 않고 개발 자체에 대한 관심을 두셨으면 좋겠습니다. 이 블로그를 하면서 쌓았던 기초 지식은 저에게 큰 힘이 되었고, 변변한 포트폴리오 하나 없는 제가 기회를 잡을 수 있게 되는 원동력이 되었습니다. 또한 어떻게 기회가 찾아올 지 알 수 없기에 멘탈 관리에 신경을 쓰면서 기회를 노리라는 말씀을 꼭 드리고 싶습니다.개발자를 꿈꾸시는 모든 분들을 응원합니다!