티스토리 뷰
너무 뜬금 없지만, iOS 인턴 개발자로 합격하고 나서 회고록을 작성해야겠다는 생각이 들었다.
내가 이렇게 성장하기 까지 도움을 주신 고마운 분들을 기억하고 글로써 새기고 싶다는 마음도 있고, 내가 성장했던 과정을 되짚어 보며 나의 변화를 정리해보고 싶다는 마음도 생겼다.
그리고 앞으로 개발자로서의 방향성을 잡고자한다.
개발자로서의 시작
사실 개발을 접한 것은 꽤 오래전이였다. 지금으로부터 5년전, 2019년 여름방학 때 형이 나에게 C++ 프로그래밍 서적을 쥐여 줬다.
잘 기억은 안나지만, 아마 내가 프로그래밍에 대해 관심을 가져서 개발자였던 형한테 프로그래밍을 어떻게 공부해야하는지 물어봤던 것 같다.
처음 보게된 이 프로그래밍 책은 당시에 명확히 내용을 이해할순 없었지만, 너무 재미있었다.
변수, 포인터, 반복문, 함수 등... 원래 중국학과에서 중국어, 중국 정치, 중국 경제를 배우던 나에게 신선한 충격을 가져왔다. 모든것이 재미있었고 새로웠다. 그래서 나는 아주 빠르게 책을 완독했다.
그러나 이때까지는 개발자의 세계에 뛰어들 자신이 없었다. 내가 개발자가 될 수 있을지 확신이 안서고, 지금까지 공부한 중국어를 포기하는 것이 아까웠다.
그러던 와중 학교에서 새로운 프로그래밍 관련 학과가 생겼다는 소식을 듣게 되었다.
신산업 소프트웨어 학과
이 학과는 문과 학생들이 프로그래밍을 찍먹할 수 있는 수업을 제공하는 학과였다. 그러나 이곳에서는 프로그래밍을 제대로 배우지 못했었다. 제대로 된 수업이 없었다. 너무 쉽거나 아무것도 가르쳐주지 않았다. 그나마 얻은 성과는 개발자를 뚜렷한 목표로 가졌던 어떤 형을 알게된 것이다. 이 형이 개발자가 되기위해 헤쳐나가는 것을 보고 많이 배우고 동기부여가 되었다.
나는 이곳에서 파이썬 수업, 유니티, C# 을 이용한 게임 프로그래밍 과목을 수강했었는데, 실질적으로 교수님이 가르쳐 주시는 것은 없어서 혼자서 공부했다.
그리고 여기서 난생 처음 게임을 만들어 보았다. 'Dungeon Escape' 라는 액션 퍼즐 게임이였다. 좀비들을 피해서 열쇠를 얻고 탈출하는 게임을 만들었는데, 정말 밤낮으로 쉴새없이 게임을 만들었다.
그냥 게임 만드는게 너무 재미있었다. 내가 작성한 코드가 그대로 반영되어 동작했고, Unity 내부에서 사용하는 여러 개념들이 재미있었다.
그러나 아직 게임 개발자를 진로로 잡기에는 못해본 것이 너무 많았다. 백엔드, 웹, 모바일. 나는 다 한번 해보고 진로를 정하고 싶었다.
멋쟁이 사자처럼
멋쟁이 사자처럼은 교내 프로그래밍 동아리다. 20여명의 학생으로 구성되어 각 학교마다 자율적으로 운영되고, 일년에 두번 정도 다같이 해커톤을 진행한다.
나는 2019년 8기로 합류했고, 여기서 Django 와 HTML+ CSS, JS 를 배웠다. 운영진 분들이 열심히 가르쳐주고 도와주셔서 많은 것들을 배웠다.
팀으로 웹페이지도 만들어보고, 무박 해커톤도 참가해보고, 재밌게 놀고... 여기서도 개발자로 목표로 하는 좋은 친구들을 만나서 좋은 영향을 많이 받았다. 소중하고 감사한 추억이다.
특히 멋사에서 개발을 하다보니 점점 개발자가 되는 것에 대한 확신이 들었다. 무박 해커톤을 진행할 때 별로 지치지 않고 끝까지 재미있었고, 집에서 혼자 새벽까지 개발을 하면서 너무 재미있어서 잠에 들기가 싫었다. 결정적으로 친구의 부탁을 받아 크롬 확장 프로그램을 개발했었는데, 완성해서 친구가 사용하는 모습을 보고 엄청난 성취감을 느꼈다. 내가 다른일을 해도 이것만큼 재미있고 뿌듯할까? 그런일은 없을 것 같다는 생각이 들었고, 개발자가 되기로 마음을 먹었다.
컴퓨터 공학과
2020년 2학기가 될때, 나는 신산업 소프트웨어 학과 이수를 포기하고 컴퓨터 공학과 이수를 시작했다. 멋사에서 개발자를 해야겠다고 마음 먹고나니 컴공 친구들과 같은 선상에서 경쟁해야겠다는 생각이 들었다. 그들 속에서 내가 경쟁력 있는지 판단하고 싶었고, 성장을 위해 어려운 도전을 하고 싶었다.
그 결과 컴퓨터 공학과에서 4.0/4.5 의 평균 학점을 받았다. 모든 컴공 수업을 들었던 것은 아니더라도, 주요 과목들 위주로 수강했기 떄문에 나는 개발자를 목표로 하는 학생들 중에 충분히 경쟁력 있고 잘 배웠다는 자신감을 얻게되었다.
하면 된다 라는 것도 이렇게 부딪혀서 알게되었다. 이전에 신산업 소프트웨어 학과를 먼저 이수했던 이유가 기존 학생들과 경쟁하기 두렵고 확신이 서지 않아서였는데, 지금 생각해보면 지레 겁먹을 필요가 없었던 것 같다. 그냥 부딪혀보면 될 일이였다.
애플 디벨로퍼 아카데미
2022년 3월 부터 애플 디벨로퍼 아카데미에서 iOS 개발을 배우기 시작했다. 이곳을 지원하게된 계기가 특별한데, 아버지가 신문에서 포항에서 새롭게 애플 아카데미가 생긴다는 소식을 보고 나에게 알려줬다.
나는 당시에 React 와 Spring 을 공부해보고 있었다. 그런데 소식을 듣고 iOS 개발을 해볼 좋은 경험이라 판단하여 지원했다.
이곳에서는 프로젝트를 기반으로 iOS 학습이 진행되었다. 프로젝트의 기획, 설계, 개발을 팀을 이뤄 주도적으로 진행하였고, 멘토님들이 지속적으로 피드백을 주시는 구조였다.
나는 솔직히 말하자면 조금 당황스러웠다. 프로그램의 전체적인 과정이 체계적으로 iOS 를 가르치고 퀄리티 있는 코드를 작성하게 만드는 것이 아니라 좋은 프로덕트를 기획하고 빠르게 만들어서 유저에게 제공하는 것에 초점이 맞춰져 있었다. 프로젝트 코드의 퀄리티는 프로젝트 구성원 중 iOS 개발을 이미 해본 사람의 수준에 의해 결정되었고, 처음 iOS 를 접한 사람들은 따라가기 급급했다. 나 또한 예외는 아니였다. iOS 개발을 배워 따라가기 위해서 아둥바둥했다.
당시에는 프로그램의 과정이 프로덕트 기획에 맞춰진 것에 대해서 조금 불만이 있었는데, 지금와서 돌아보면 내가 기대했던 바와 애초에 프로그램의 목적이 달랐다는 생각이 든다. 지금은 아카데미에서 제공하는 환경과 물적 지원덕에 즐겁게 프로젝트를 진행하고 기본적인 iOS 실력을 쌓을 수 있었기 때문에 감사하다.
특히 이곳에서 많은 iOS 개발자, 디자이너, 기획자들을 알게 되고 협업을 해보는 좋은 경험을 하였다. 함께 프로젝트를 하면서 많이 배우고 성장하였다. 내가 협업을 하면서 커뮤니케이션 쪽에 부족한 부분이 많다는 것을 깨닫게 되었고, 조기에 피드백을 받아 고쳐나갔다. 이 경험은 실제 현업에서 더 빛을 발할 것 같다.
애플 디벨로퍼 아케데미를 마무리 하는 시점에서 나는 백엔드, 웹, 게임, AOS (방학때 특강이 열렸는데, 한번 참가해서 해봤었다) iOS 개발을 다 해보게 되었다. 그런데 그 중에서 iOS 로 개발 할 때 제일 재미있었다. 제일 재밌었던 이유가 가장 오랜 기간동안 iOS 를 배우고 팀 프로젝트를 해서 그런 것 같기도 하다. 그리고 아카데미에서 아이폰 맥북 아이패드를 사용하면서 iOS 생태계에 빠졌고 이미 Xcode 와 Swift 언어가 너무 좋아져버렸다... 이거 생각해보니 애플 아카데미의 큰그림 아닌가..?
어쨌든 이러한 이유로 애플 디벨로퍼 아카데미를 수료하고 확실하게 iOS 개발자가 되기로 했다.
소프트웨어 마에스트로
소프트웨어 마에스트로 또한 애플 아카데미와 마찬가지로 나의 개발 인생에서 큰 변곡점이였다. 좋은 멘토님을 만났고 좋은 친구들을 사귀었다. 기술적으로 가장 많이 성장한 시기가 이때였던 것 같다.
애플 디벨로퍼 아카데미가 끝나고 나서 남은 학업을 마무리 해야했었는데, 소프트웨어 마에스트로와 함께 병행하면 좋을 것 같다고 생각했다. 본과정은 6월부터이고 나는 2학기에 학점 3점만 채우면 되는 상황이였다. 그래서 소마에 지원했고, 합격했다!
소마에서 가장 도움이 됐던 시스템은 팀마다 멘토님 3분을 모셔서 팀 프로젝트를 진행하는 것이였다. 기획 단계부터 구현 단계까지 모두 함께 참여해주시고 피드백을 주셨다. 특히 모바일 엔지니어 멘토님은 거의 매주 기술 세션을 열어서 연수생들을 가르쳐줬었는데, 이때 나는 모바일 엔지니어링에 대한 개념들을 많이 배웠다. 다른곳에서는 배울 수 없는 아주 값진 세션들이였다. 연수생을 위해서 평일 저녁을 희생하신 멘토님에게 너무나 감사하다.
그리고 모바일 엔지니어 멘토님 밑에서 함께 배웠던 친구들에게도 감사하다. 그들 덕분에 세션을 듣는 시간이 더 즐거웠고, 행복하게 개발할 수 있었다. 앞으로도 자주 만나서 놀고 모바일 엔지니어링에 대해서 이야기도 많이 했으면 좋겠다.
소마를 마무리하는 시점에 거의 2년 정도 iOS 개발을 했는데, 느낀 것은 기본이 중요하다는 점이다. 기능 구현전 키보드에서 손 떼고 설계하기, 트레이드 오프 생각하기, 객체지향 코드 작성하기 이런 기본적인 요소들이 어떤 특정 프레임워크를 잘 알고 잘 다루는 것보다 중요하다는 것을 느꼈다.
취업준비
의외로 취업준비 기간은 오래 걸리지 않았다. 소마를 수료한 후 거의 2개월..?
학교를 거의 졸업하자마자 채용전환형 인턴쉽에 합격하였다.
나는 당시에 코테 + 개발자 기본서적을 보면서 기초 역량을 다지고 있었다. 취업에 급급하기 보다는 개발자로서의 기본이 되는 부분들을 더 채워 나가고 싶었고, 여유를 뒀었다. 그래서 길게는 올해 하반기까지 취업준비를 하겠다는 생각을 했었다.
그런데 iOS 채용 전환형 인턴쉽 공고가 올라왔고, 지원해서 합격해버렸다 😧
정말 예상도 못해서 너무 놀랐고, 울컥했다. 실력을 인정받은 느낌이였다.
현재 출근을 일주일 정도 앞두고 있는데, 너무 행복하고 기대된다. 좋은 사람들과 재미있게 개발할 수 있을 것 같아서 설렌다. 많이 배우고 또 많은 것을 할 것 같다는 생각이 든다 😊
앞으로의 방향
이렇게 내가 개발자가 되기위해 해왔던 활동들을 되짚어 보면, 나에게는 새로운 환경에 빠르게 적응하고 학습하는 능력이 있다는 생각이 든다. 컴공, 멋사, 애플 아카데미, 소프트웨어 마에스트로 모두 다른 환경이였지만 나는 똑같이 재미있게 개발하고 빠르게 성장하였다.
개발을 좋아한다는 것도 나의 큰 장점인 것 같다. 기능을 설계하는 것, 새로운 개발 관련 개념을 학습하는 것, 코드를 작성하는 것 등 개발에 관련된 모든 활동이 재미있다. 그래서 개발을 하면서 힘들다는 느낌을 받은적이 없다. 몸이 아픈데 억지로 할 때 빼고는 😅
그리고 인복이 정말 좋다는 생각이 든다. 멋지고 좋은 사람들을 여러 활동을 통해 많이 알게되었고, 그들에게서 좋은 영향을 많이 받았다. 덕분에 많은 성장을 했다.
회고를 하면서 앞으로 내가 발전시켜야 할 부분도 많이 발견하였다.
학습한 내용을 정리하는 능력을 길러야 한다. 나는 새로운 개념이나 트레이드 오프 했던 부분을 그때그때 찾아서 공부하고 머릿속으로만 이해하고 넘어가는 경향이 있었는데, 시간이 오래 지난 후에 다시 이전에 공부했던 개념을 마주할 때 디테일 한 부분을 놓치거나 잊어버린적이 종종 있었다. 그래서 기억보다는 기록에 의존해야한다고 느꼈다. 이를 위해 Github 에 레포를 만들어 이슈를 발행해서 기록할 것이다.
메소드 네이밍과 분리를 잘 하는 능력을 길러야 한다. 이 부분은 인턴쉽 과제를 할 때 느낀 부분인데, 구현에 급급하다보니 메소드의 네이밍과 분리가 잘 되지 않아 시간이 흘러 내 코드를 다시 봤을 때 이해하기 너무 어려웠다. 코드를 작성한 내가 이렇게 보기 힘든데, 과제를 평가하는 분들은 얼마나 힘들까.. 죄송스러웠다. 그래서 상위 메소드를 적절하게 하위 메소드로 분리하여 코드를 '읽듯이' 볼 수 있도록 만드는 것의 중요성을 다시금 느꼈다. 이 능력은 클린코드 책을 읽고, 사내의 코드 스타일을 보면서 기를 생각이다.
객체지향에 기반한 코드 작성 능력을 체득화 해야한다. 설계와 코드에는 항상 개발자의 '의도'가 담겨야 한다. 중심이 되는 의도가 없는 설계와 코드는 설명하기 어렵고, 이해하기 어렵고, 쉽게 변경된다. 때문에 의도를 담는 것은 매우 중요한데, 대부분의 의도는 객체지향을 기반으로 하고 있다고 생각한다. 그래서 객체 지향을 잘 이해하고 코드를 작성하는 것은 매우 중요하다. 객체지향 기반 코드 작성 능력을 체득화하기 위해 코드를 작성할 때 객체지향에 유의하고, 선배 개발자 분들의 코드를 많이 보고, 코드 리뷰를 받으며 성장할 것이다.
공유하는 습관을 길러야 한다. 글을 쓴다는 것은 나에게 매우 무거운 일이다. 첫째로 구글에 서칭해서 쉽게 나오는 정보를 나의 블로그 글로 채우고 싶지 않기 때문에 쓸만한 주제를 선정하기 어렵다. 둘째로 부정확한 정보를 퍼트리고 싶지 않기에 여러번 내용에 대해 검증을 한다. 셋째로 글을 보는 사람의 입장에서 이해할 수 있도록 글을 여러번 정제한다. 이러한 이유로 글을 쓰는데 한참이 걸린다😅 그럼에도 이는 해야하는일이라고 생각한다. 나 또한 누군가가 소중한 시간을 들여 쓴 글들을 통해 도움을 받았고, iOS 개발 생태계를 발전시키는데 조금이라도 기여하고 싶기 때문이다. 그리고 개인적인 성장에서도 글을 쓰는 것은 매우 도움되는 일이다. 이를 위해 공부한 내용을 Github 레포에 따로 정리 해놓았다가 쓸만한 주제를 블로그에 옮겨 담을 것이다.
처음 iOS 개발을 시작한 후 벌써 iOS 3개의 버전을 거쳤다. 내가 매년 성장하는 것처럼 iOS 또한 매년 발전되는 것이 iOS 개발의 묘미인 것 같다. 매년 새롭게 배울 것이 생기고, 발전하는 것을 보는게 너무 재미있다. 어쩌면 iOS 자체가 재미있고 좋은 동료 같다는 생각도 든다.
나는 앞으로도 좋은 사람들과 함께 즐겁게 iOS 개발을 하고 싶다. 많은 성장을 하고, 많은 도전을 할 것이다. 개발자 하길 잘했다 😊
'회고' 카테고리의 다른 글
[2024.03 - 2024.06] iOS 인턴 회고 (1) | 2024.07.05 |
---|