Liam SY Kim
by Liam SY Kim
11 min read

Categories

세상 블로그 글들 다… 사실상 나에게 천상계 이야기🤣

기만자들…. 슬프게도 저는 아닙니다…!
그치만, 저는 좋은 개발자가 되기 위해서 노력여하도 중요하지만 방향성이 중요하다고 믿고 나아갔기 때문에 , 여러분들이 이런 방향으로 가는 방법도 있구나! 라고 생각해주셨으면 될 것 같아요!

목차

  • iOS 개발자가 되기로 결심하다
  • 자아가 없는 개발자에서 자아가 생기다.
  • 신입 IOS 취준 방법 정리
  • 면접후기

안녕하세요. 워터드래곤, WD DEV 워드 개발자 입니다 🙋‍♂️ 하고 싶은 이야기가 많아서 회고록을 적어볼까 해요. 학생에서 iOS 개발자가 되기까지 제 이야기를 담아 놓을 것이고, 정보글 이 될 수도 있고 경험공유나 공감대 형성 의 의미도 될 수 있을 것 같습니다:)

전 누구나 원하는 대기업에 취업한 것도 아니고, 학부 시절때 iOS 개발을 공부한 적이 없어요

혹시 IT 공룡기업 (K사 N사.. 등등) 취업만이 목표로 꾸준히 준비한지 오래되셨거나 , iOS 경력이 학부시절부터 풍부하신 분들은 SKIP 해주셔도 될것 같아요.

다음과 같은 분들께 도움이 되거나, 공감대를 형성할 수 있을것 같아요.

  • 학부 생활에 하고 싶은걸 정하지 못하다가 뒤늦게 앱개발자(iOS & Android)가 되기로 결심한 사람
  • 한 분야를 잘 하기 위해서 노력을 어떻게 할지 궁금한 사람
  • 워드를 더 알고 싶다 (?)

주변 친구들이 공기업을 준비하고, 대기업을 준비해서 잘 들어갈 때에 전 늦게 시작함과 실력이 부족하다는 트라우마 때문에 항상 힘들었거든요.

1. iOS 개발자가 되기로 결심하다

전 학부 시절때 뇌파 게임을 개발했었어요. 집중력을 뇌파 기계로 읽어내어서 집중력에 따라 속력이 변화하는 자동차게임을 Unity로 개발하였죠.

1년 동안 학회 및 대회 출장만 5번을 다녀왔고, 논문도 1 저자 2개를 포함한 3개를 썼었습니다.

하지만, 주제가 흥미로워서 시작한 뇌파게임 개발은 아직 하드웨어가 서포트해주지 않기 때문에 연구단계에서도 한계가 많았어요.

그런 제한사항을 고려해서 소프트웨어로 퍼포먼스를 내는 것이 유저들이 사용하는 서비스로 이루어지지 않는 것에 대해서 성취감을 느끼지 못했습니다.

한마디로 요약하면, 많은 사람들이 쓰는 서비스를 제가 직접 개발하고 싶었어요.

그떄 교내 전산동아리 활동을 하고 있었는데, 동아리에서 학교 학생들이 쓸 수 있는 편의정보를 제공하는 어플 팀에 들어갔어요.

동아리에서는 Flutter Framework를 사용해서 기존 어플을 리뉴얼 하는 개발을 하게 되었고,

제가 교내 학생들이 편하게 쓰는 서비스에 일조한다는 것에 큰 보람을 느꼈습니다.

때마침 해당 학기에 안드로이드 진영에서 활발하게 활동하시는 선배님도 마지막 학기로 오셔서 많은 조언을 해주셨어요.

그 선배님의 발자취와 안드로이드 분야의 생태계를 관심있게 보다보니, 왠걸!! 너무 재미있어 보였습니다😆

매력으로 느꼈던 부분은,

  • 자신의 개발 경험을 공유하여 다른 사람들에게 도움이 되는것
  • 더 나아가 공유한 사람도 피드백을 받으면서 성장하는 커뮤니티
  • 실제 사람들이 사용하는 서비스를 주도적으로 개발하는 것
  • 활발한 프리랜서 생태계
  • 1인 창업의 가능성

으로 요약할 수 있을 것 같아요!

한마디로, 매우매우 유연한 분야 라는 생각이 들었어요. 내가 추후에 __어떠한 삶의 형태로 살고 싶던지 (프리랜서, 해외취업, 국내취업), 어떠한 종류의 일(창업, 대기업, 스타트업)을 하고 싶은지__는 일을 하다가 바뀌어도 바뀐대로 도전할 수 있는 거잖아요!

위의 이유들이 저를 움직이게 만드는 에너지🚀가 될 수 있다고 생각해 앱 개발자가 되고 싶다고 결정합니다.

근데 지금은 4학년 1학기 😭 앱개발자 커리어를 쌓기 위해서 마지막 학기를 앱 개발 인턴을 하자!

하지만 이 외에도 또 다른 문제들이 많이 남아있었어요….ㅎㅎㅎ

문제점

  • 내가 지금까지 앱을 만들던 Framework인 Flutter는 너무 새로운 툴이라, Flutter를 원하는 기업이 없다.

  • 앱개발자는 경력직을 많이 뽑는다, 또는 경력같은 신입 신입이더라도 바로 업무를 할 수 있을 정도로 능숙하게 개발을 할 줄 알아야 한다.

고민

  • ReactNative를 뽑는 교내 인턴쉽 프로그램이 많은데 그래서 ReactNative 라도 할까? 🤔

결론

아니다. 무조건 네이티브를 하자. 처음 결정한 커리어를 나중에 되돌리기 힘들 것 같다. 학교 인턴 모집 공고중에 블록체인 업체가 있었는데, 네이티브 개발자를 뽑는다고 해서 면접을 지원함.

10명 정도 되는 블록체인 기반 스타트업이었는데 면접때 가서 iOS만 할 수 있으면 무조건 하겠다고 함. 하니까 앱 하나를 맡아서 만들어주면 된다고 하고 긍정적으로 평가해서 6개월 인턴을 하게 된다.

이 당시에는 iOS 를 하나도 할 줄 모르는 상태에서 마지막 학기로 iOS 인턴을 하는 것이 어려운 일인 것을 알았기에, 너무 감사했습니다.

2. 자아가 없는 개발자 에서 자아가 생기다

7월 부터 iOS 인턴을 들어갔습니다.

외국인도 있었고, 디자인도 관심이 많았어서 많이 관여할 수 있었습니다.

사내문화에 대해서도 적극적으로 의견을 피력할 수 있었고

기획, 그리고 외국 외주 업체랑 미팅도 하면서 서비스에 영향을 끼쳤습니다. 블록체인 기업이라 스폰서로 블록체인 컨퍼런스에 다녀오기도 하였습니다.

외국계 언론사를 인수하는 일도 있었어서, 콘래드 호텔에서 외국인들과 런칭파티를 하는 등 새로운 경험이 저를 자극시켰습니다.

하지만 이런 다양한 경험이 서비스 개발이라는 큰 틀에서 시각을 가지는 데는 도움이 되었지만, 한명의 iOS 개발자를 지망하는 사람으로서는 기술적 성장이 되지 않았기에 고민이 많았습니다.

정말 쌩판 신입인데 혼자 개발하고 있어서 잘하고 있는건지, 실제 서비스가 될 피쳐를 개발하고 싶은데 이런식으로 개발해도 되는건지에 대한 스탠다드가 없어서 너무 힘들었어요. 심지어 처음에는 SwiftUI로 개발을 해야하는지, FLutter에는 Bloc pattern을 활용하여 아키텍쳐를 구현했었는데 MVVM을 어떻게적용해야하는지, 그리고 왜 MVVM을 적용하면 좋은지. 등등

그래서 컨퍼런스를 갔습니다. Let’us Go 라던지 LetSwift라는 컨퍼런스가 있습니다. 그러니까 대표적으로 RxSwift, SwiftUI에 대한 논의가 이루어지고 어떤 기술을 지향하는지 스탠다드를 의논할 사람이 없으니 컨퍼런스 참석 및 뒷풀이에서 물어보면서 궁금증을 해결했습니다.

그러면서 인턴 기간이 끝나고, 정규직 제안을 받았을 때에 퇴사결정을 하였습니다. 그 이유는 다음과 같습니다.

  • 함께 개발할 수 있는 iOS 개발자 가 있었으면 좋겠다.
  • 기존에 운영되는 서비스 를 개발하고 싶다.
  • 세상에 도움이 되는 서비스 에 일조하고 싶다.

3. 신입 iOS 취준 방법 정리

취업을 준비하는 방법은 다양합니다. 그 중에 제 생각에는 크게 2가지 방법이 있다고 생각해요.

알고리즘 테스트 및 CS 공부를 완벽히 하는 방법

각 대기업에서는 뽑아서 키워서 쓰는 여유가 되기에, 성장 가능성이 높은 기본기가 뛰어난 학생들을 채용하려 합니다.

그래서 회사마다 조금씩 다르지만 알고리즘 문제풀이 를 잘 하는 학생을 1차 코딩 테스트로 선발을 하고 , CS 기본 지식 (OS, Network, Algorithm) 을 2차 면접에서 검증합니다.

이 전형에서는 학부생활을 할 때에 백준, 프로그래머스 알고리즘 문제풀이를 꾸준히 많이 푼 사람들이 유리해요.

저같은 경우에는 학부때 3학년때 전과를 했고 전과를 하고 난 이후에도 연구 중심적으로 프로젝트를 해왔던 터라 부족한 부분이 많았습니다.

마지막 학기 인턴이 끝날 때쯤, 알고리즘은 100문제 정도 풀고 CS 기본지식도 전과를 해서 약한 편이었던 것 같아서 꾸준히 준비는 하고 있었지만 자신감이 있는 전형은 아니였어요😭

저는 꾸준히 알고리즘 문제를 풀고 준비는 하되, 중점적으로 준비하던 전형은 아니였습니다.

현업에서 곧바로 투입될 정로도 iOS 실력을 키우는 것

현재 우리나라에서 앱개발자 들에게 있어 규모가 가장 큰 IT 공룡기업 3개(K사, N사, L사)를 제외하고는 실력만 있다면 2번 전형으로 취업을 할 수 있어요.

위 3개 기업은 나중에 경력직으로 준비한다고 해도 코딩테스트를 필수로 준비해야 합니다.

해당 전형은 쉽게 생각하면 되요. 당연히 회사마다 다르겠지만 일반적으로 서류 전형 이후에 1차 기술진 면접, 2차 임원진 면접을 진행하게 됩니다. 임원면접은 보통 면접 보는 회사의 구성원들과 잘 맞는 사람인가, 회사의 경영철학과 맞는 사람인가를 보는 CultureFit면접인 경우가 많으니 여기서는 논외로 할게요. 기술면접에서는 간단하지만, 가고 싶은 회사에 있는 개발자들이 “아 저 사람이랑 같이 일하고 싶다!” 는 마음을 심어주면 된다고 생각합니다.

역시 간단한게 어렵게 느껴지죠?😭

그러면 좀 더 구체적으로 어떤걸 준비해야 할까요~?

저는 다음과 같이 준비를 했어요.

기술블로그 작성

WD DEV 기술블로그

기술 블로그를 작성하는 것은 본인이 아는 지식을 한번 더 정리하는 것이기 때문에 공부가 많이 된다고 생각해요. 그와 동시에 사람들에게 내가 어떤 것들을 공부했다 고 어필을 할 수 있는 수단 이기도 해요.

좀 더 순기능을 말씀드리게 되면, 제가 아는 지식을 전달함으로써 모르는 사람에게 전달을 할 수도 있겠죠?! 개발자는 공유를 통해서 서로가 성장할 수 있기 때문에, 기술 블로그 활동 자체는 나에게도 좋고 다른 개발자들에게도 좋은 활동 이라고 생각해요!

저는 개인적으로 영어 공부 겸, 제 지식을 세계 사람들에게 공유하고 싶다는 마음이 있어서 iOS 포스팅은 영어로 작성하고 있습니다 :))

개인앱 배포

저는 GitToday라는 개발자들의 1일 1 커밋을 도와주는 앱을 만들어서 배포했어요! GitHub Contributions를 보려면 깃헙 사이트에 들어가서 구글 인증을 받고 봐야하니까 앱 위젯으로 보여주면 좀 더 편하게 확인할 수 있어요ㅎㅎ

사실, 이런 서비스는 국내 개발자분 몇몇이 개인앱을 이미 만들었지만, 저도 만들어보고 싶기도 했고 캘린더로 보여준다는 차별화를 두고 개발을 해보았습니다.

아까 말하기에 “아 저 사람이랑 같이 일하고 싶다!”는 사람이 되면 취업을 할 수 있다고 했죠?! 보통 기업에서는 개인앱이 있는 사람을 서류전형에서 크게 긍정적으로 평가해요.

이유인 즉슨, 앱 개발의 모든 과정을 한번 다 해본 사람이라는게 검증이 되거든요🙂 거기에 배포 이후에 지속적인 업데이트를 한 경험까지 있으면 더더욱 좋아요.

물론 기업에 따라, 신입임에도 불구하고 단순히 배포하는 것 이외에 코드단계에서의 기술적 퍼포먼스를 요구__하는 곳들도 있어요. 그런 부분들까지 개인앱을 오픈소스화 해서 어필 할 수 있으면 베스트!! 라고 생각합니다.

개발모임

프로그라피

저는 세상에 필요한 서비스를 만드는 IT 개발모임 프로그라피 6기 로 활동하고 있어요! OT, MT를 진행하고 난 다음 만들고 싶은 서비스가 있는 사람들이 아이디어 피칭을 하고 그 의견에 동감하는 사람들과 함께 개발을 진행한답니다.

저는 제가 만들고 싶은 서비스가 있어서 아이디어 피칭 을 했고, 이에 동감하는 5~6명과 함께 개발을 하고 7월에 배포하는 것이 목표에요!

자신이 만들고 싶은 서비스를 만들 수 있다는 것과 회사에 들어가지 않은 사람들은 협업문화를 미리 경험해볼 수 있다는 것이 장점 인 것 같아요. 개발 문화라던지 기획, 브랜딩, 디자인 등을 세션으로 진행하고 각 팀 서포터가 서비스가 원활히 만들어지도록 지원을 해서 서비스를 만드는데에 다양한 도움을 주기도 해요.

회사에 들어가고 나서도, 프로그라피에서 리뷰했던 코드에서 좋은 기술을 도입한다던지! 좋은 협업문화를 차용한다던지! 하는 방식으로 회사 업무에도 도움이 되는 것 같아요.

이런 순기능이 있기에 개발모임에 들어가는 것은 협업의 경험, 성장에 대한 열정 의 측면 에서 취업 준비를 하는 과정에서도 성장을 추구하는 개발자로 어필할 수 있답니다.

오픈소스 스터디

개입앱 개발자신만의 코드, 서비스

개발모임협업의 장점, 다양한 개발문화 학습

였다면, 오픈소스 스터디 야 말로 개발함에 있어서 코드 단계에서의 성장을 가져다 주는 가장 좋은 방법입니다.

다양한 회사에 다니는 사람들의 오픈소스를 보면, 다양한 코딩 스타일과 방법을 알 수있고 서비스와 규모에 따라 어떤 아키텍쳐, 방식이 적합한지에 대한 이해도가 생기게 되요.

자신이 iOS 개발을 함에 있어서, 더 나아가 3~5년 뒤에 iOS 내에서도 어떤 부분을 중심적으로 전문가가 될 것인지, 어떤 부분이 더 흥미롭게 느껴지는지는 오픈소스와 이를 만든 사람들의 발자취를 통해서 배워나갈 수 있다고 믿습니다.

이런 부분이 회사 면접을 볼 때에 수준 높은 회사에서 요구하는 코드레벨에서의 실력을 증명할 수 있게끔 만들어주는 스터디 방법입니다.

iOS 예상 면접질문 답편 준비

면접에는 과제리뷰, 라이브코딩, 구두질문 등 여러가지 형태가 있습니다.

그 중에 __구두질문__은 갑작스러운 질문이기 때문에 평소에 자주 사용하던 기술이 아니면 대답하는데 시간이 좀 걸릴 수도 있어요.

이런 자주 나오는 면접질문을 모아놓은 레포지토리가 있어요.

저는 이재성님의 JeaSungLEE / iOSInterviewquestions 를 참고해서 공부했어요!

적고 보니 여러가지를 많이 했는데, 본인에게 현재 가장 부족하거나, 성장하기 위해서 필요한 것 부터 차근차근 하는게 좋다고 믿어요. 저도 위 적어놓은 것을 동시에 진행한 것이 아니라, 시간차를 두고 2~3개씩 동시에 진행을 했었거든요.

저도 성장하고 있는 주니어 개발자라 이 외에도 추천하고 싶은 성장 방법이 있거나,

위 포스팅에 이견이 있거나 함께 성장하고 싶은 분이 있으면 ✉️sooyongs@icloud.com 으로 연락주시면 본문내용을 적극적으로 수정하거나 함께 성장할 의향이 있습니다:)

최근 들어서는 전반적인 앱개발 아키텍쳐들에 대해서 회사에 있는 안드로이드 개발자분과 각 진영의 차이점을 비교해보면서 이야기를 하는 것에 재미를 느끼고 있습니다ㅎㅎ

면접 후기

여러 군데 면접을 보고 떨어지기도 하고 합격하기도 하였는데, 이야기 할 거리가 있는 가장 대표적인 3 군대를 기준으로 면접후기를 말씀드리고 싶네요!

금융서비스 R사 (19년 12월)

1 기술면접 탈락

12월 까지 인턴 생활이 끝나갈 무렵 지원했던 회사이다. 당시 가장 가고 싶은 회사였고 사내 개발자 분께 추천을 부탁해서 지원을 하였다. 가장 가고 싶었던 회사였는데, 가장 준비가 되어있지 않았던 상태라 다소 아쉬움이 많이 남았다.

서류전형을 통과하였고 온라인 라이브코딩을 보았는데, 다소 예상했던 방식과 달라서 실수를 많이 했다. 라이브코딩 방식으로 진행하였고, 면접자가 요구하는 것을 코딩하고 행아웃으로 화면공유를 하고 문제해결 방식과 질문에 대답하면서 문제해결능력을 보는 전형이었다.

UI 관련한 로직과 CS적인 것이 융합되어 있는 질문들이었는데, UI 그리는 것에 너무 부족한 때였어서 다소 많이 고전했다. CultureFit에 무게를 많이 둬서 전형을 회사측에서 준비했다는 생각을 했고, 개인적으로 비즈니스 로직에 신기술을 많이 적용하는 것에만 초점을 두었지 UI 로직 같은 기본기가 매우 떨어진다는 귀중한 결론을 얻을 수 있었던 면접이었다. 짜는데 있어서 손에 익히는 것 또한 연습하곘다고 다짐한 계기가 되었다.

라디오서비스 M사 (20년 3월)

최종 합격

서비스가 정말 괜찮은 회사라고 생각해서 면접 준비를 많이 해갔었다. 상당한 금액의 C 시리즈 투자를 받아 당시 공격적인 채용으로 iOS만 3명을 추가 채용한다고 알고 있었고, 서류부터 최종면접까지 2주 안의 프로세스로 빨랐던 기억이 난다. 과제전형 또한 따로 없었다. 개인앱은 없던 상태였지만, 기술블로그를 꽤 많이 작성해둔 상태였고 기술 스택에 대한 이해도에 자신이 있었다. 2차에서 까지 CultureFit보다는 기술에 대한 질문들이 많았고, 회사측에서 감사하게도 긍정적으로 검토해주셔서 최종합격을 하게 되었다.

면접 중에 알게 된건 Obj-C를 Swift로 바꾸는 단계에 있고, 이 작업과 더불어 Core 로직이 아닌 UI 쪽을 많이 담당하게 될 것 같다고 전달해주셨다.

하지만, 오퍼를 받는 과정에서 전 인턴을 하였던 회사에 서류를 요청하는 과정에서 커뮤니케이션이 단절되는 이슈가 있어서, 서류 전달을 빠르게 하지 못했던 개인적 불찰이 있었고, 희망연봉 또한 회사의 연봉테이블과 다소 차이가 있어서인지 오퍼를 제시받지 못하였다. 이직 아닌 (포지션은 신입, 경력직 지원) 이직 절차가 처음이라 다소 오퍼과정에서 서툴었던 점이 매우 아쉬웠던 단계였다.

개인적으로 이 때 이후로 많이 힘든 시기를 겪었던 것 같다. 지난 인턴 생활에 대한 회의감과 최종합격을 하였음에도 오퍼를 받지 못함에 있어서의 아쉬움이 이 뒤로 준비하는 과정에 영향을 주게 된 것 같다.

펫테크 서비스 F사 (20년 4월)

최종 합격

다소 네임밸류는 위 2개 회사에 비해서 떨어지는 회사라고 생각했다. 하지만, 서비스만 보았을때에 반려동물 헬스케어를 서비스 하는 회사라 세상에 도움이 되는 서비스를 하는것이 마음에 들었다. 만들어진지도 3년차인데 2년차 매출이 크게 나온 회사기도 하고. 안정성과 서비스의 선한 영향력이 매력적으로 다가온 회사라 지원하게 되었다.

1차 기술 면접 이전에 과제전형이 있었고, 이를 RxSwift+MVVM을 이용하여 제출하였다. 당시 회사에 iOS 개발자가 없었고 3명을 채용할 예정이라고 했다. 1차 기술면접때 과제를 코드리뷰하는 형식으로 진행을 하였는데, 아무래도 iOS 개발자가없다 보니 iOS에 특화된 면접질문은 받아보지 않았다. 이 점이 다소 아쉬웠지만, 당시 면접을 주도하였던 시니어 안드로이드 개발자 분이 너무 좋은 분이라는 생각이 들어서 함께 일할 수 있는 동료가 좋은 사람이구나.. 라고 생각을 했다.

이후 2차 임원진 면접을 대표님과 진행을 했고, 나의 비전을 설명하는 것 위주로 면접을 진행하였다. 추후 이 회사에서 오퍼를 받고 가게 되었다.

FitPet에 합류하기로 결정한 이유

함께할 수 있는 동료와 서비스가 세상에 선한 영향을 주는 것인가 를 위주로 결정했던 것 같다.

대표님께서 반려동물의 건강관리에 대해 중요하게 생각하고 계시고, 또한 함께하는 개발자분들도 좋을 것 같다는 생각이 들어서 합류를 결정하였다. 희망 처후보다 제 능력을 CTO님께서 더 평가해주셔서 감사한 마음이 들었고, 프로세스가 진행됨에 있어서 나의 실력을 인정해주고 존중해준다는 생각 또한 정말 큰 이유였다.

신입 개발자는 아무래도 누구나 뽑아서 써도 크게 다르지 않기 때문에, 존중받기 힘든 포지션이라는 것을 크게 느꼈는데, 면접 과정 속에서 나를 존중해주려고 회사측면에서 노력 해준다는 마음이 들었고, 이런 회사라면 내가 헌신하고 싶다는 마음 이 들어서 기쁜 마음으로 합류하게 되었다:))

4. 결론

지금 들어서 드는 생각은 무조건 공유를 많이 한다고 해서, 많은 것을 해본다고 해서, 기술적 성장을 이룰 수 있는 것은 아니 라고 생각합니다.

하지만, 공유 및 모임에서의 협업이 성장을 이끄는 동기 가 되어주기도 하고, 서비스 및 오픈소스를 공유가 다양한 개발자들과 함께 의견을 나누는 장 이 되기도 하며, 이를 통해 자신의 고민에 대한 답편을 더 빨리 얻을 수 있는 선순환의 고리 가 되어준다고 믿어 의심치 않습니다.🙌

부족한 것이 많은 사람이지만 저의 발자취를 보고 도움이 되는 사람이 있었으면 좋겠고, 저 또한 성장의 자극이 되는 공유이기를 소원합니다☺️