일기/나의 일기

부스트캠프 후기


0. 후기


4주와 설날까지 합쳐, 5주 정도의 부스트캠프가 끝났습니다.

마지막 날엔 채용을 위한 발표가 있었습니다. 네이버, 라인, 청소연구소 등, 다양한 기업에서 왔었고, 수없이 발표를 연습했지만, 그 어느때보다 떨렸습니다. 기업에 오신 분들 앞에서 조금이나마 잘 보이고 싶었던 욕심과 마지막 발표라는 욕심에, 그 어느 때보다 열심히 발표를 했습니다.


7분이라는 발표 시간은 빠르게 흘러갔고, 질의응답까지 진행됐습니다. 발표가 끝난 뒤에는 아쉬움과 안도감이 함께 느껴졌고, 고생했다는 팀원들의 응원을 받을 수 있었습니다.


그리고 남은 다른 팀들의 발표를 듣게 됐고, 5주 동안의 노고를 부스를 진행하면서 보여줄 수 있었습니다.  또한 팀별로 부스를 열고, 다양한 사람들에게 4주 동안 진행했던 프로젝트의 많은 부분을 보여줄 수 있었습니다.


1. 회고


 부스트캠프를 진행하면서 다양한 선배개발자들의 모습을 볼 수 있었습니다. 오랜시간 동안 같이 프로젝트를 하거나 그 분들의 많은 모습을 알지는 못해도, 말 몇마디로도 선배들의 각종 경험을 조금이나마 배울 수 있었고, 몇 년 후에, 후배 개발자들에게 비춰지고 싶은 개발자의 모습들을 여럿 정할 수 있었습니다.

끝이 있기에 시작이 있다는 말을 알 수 있었던 하루였습니다. 평상시에 '내가 무엇을 해야할까?'라는 고민을 많이 했습니다. 그렇기에 부스트캠프를 진행하는 4주 동안, 아무 생각없이 코딩을 할 때가 가장 고민이 없었고, 내가 무엇을 만들고 있다는 행복함을 느낄 수 있었습니다. 

 부스트캠프 마지막 시간은 각종 기업의 부스를 다니며, 기업에서 나온 개발자분들과 얘기를 하는 시간이 있었는데, 질문이 주어졌을 때, 취업에 유용한 질문을 하기 보다는 개발을 하면서 어려웠던 점과 앞으로 '무엇을 하면 좋을까요?' 라는 질문을 해봤습니다.

 누군가 내가 그러한 조언을 했다고 해서, 그 조언대로 쉽게 하지는 않겠지만, 가장 현실적인 조언인 "취업을 해서, 무엇을 배우는게 가장 현명하다."라고 답변을 들을 수 있었습니다. 가장 현실적이고, 가장 추상적인 답변이겠지만, 적어도 이전과는 다르게 '취업을 해서 무엇인가 이뤄내야겠다'는 생각을 할 수 있었습니다.


2. 현자타임 끝

 

 정말 부스트캠프가 끝이 났고, 아무 생각없이 배우면서 코딩할 수 있는 4주의 좋은 시간이 너무 빠르게 지났습니다.

다시 카페에서 코딩을 하면서, 시간이 날 때마다 생각을 정리할 수 있도록, 블로그를 운영할 수 있게 되었고, 4주 전과는 이런게 달라졌습니다.


- 깃허브를 통해서 협업을 하는 방법

- RxJava, Koin, Kotlin, Dagger2, LiveData, DataBinding, MVVM 등등등등 짧은 시간 동안, 다양한 폭넓은 라이브러리 및 아키텍쳐 경험

- 왜 다양한 개발자와 함께 코딩을 하면 재미있을까?

- 24명의 안드로이드 또래 개발자들과의 네트워킹

- 부스트캠프라서 배울 수 있던 점

- 생각정리


2.1. 깃허브를 통해서 협업을 하는 방법



 함께 프로젝트를 진행하고 있다는 느낌이 가장 많이 들 때는 각종 커밋들이 모이고, 풀리퀘가 닫히고, 닫힌 풀리퀘를 볼 때, 협업을 하고 있구나 라는 생각이 많이 듭니다. git pull 명령어 한 번이면 500줄 넘는 코드가 들어와있고, 내가 해당 액티비티를 개발하고 있지 않아도, 팀원들이 기획한 것에 맞춰서 뚝딱뚝딱 만들어서 인텐트만 합쳐줄 때, 그 행복함은 표현할 수 없을 것 같습니다.

 프로젝트를 진행하기 전에, 코딩 컨벤션으로 약속을 하고, 꾸준히 리뷰를 하면서 더 좋은 코드를 얘기하고, 변경하며, 같이 협력할 때 또한, 같이 성장하고 있다는 기분을 들게 합니다.


2.2. 안드로이드 구조에 대해서 제대로 이해할 수 있었던 시간



2.2.1. Home, Map, Detail 3개를 중심적으로 View가 만들어집니다. 실제로는 더 많은 View가 만들어집니다.


2.2.2. Home, Map, Detail을 중심으로 ViewModel이 만들어집니다. 여기에서는 ViewModel을 제한적으로 사용해서 아쉬웠습니다. 하지만, 그 또한 좋은 경험이 됐고, 다음 프로젝트에서는 ViewModel을 더 유연하게 사용할 수 있도록 공부해봐야겠습니다.


2.2.3. 각종 Model을 가져오기 위한 Repository 패턴 사용, 프로젝트에서는 통신을 하기 위해 Retrofit을 사용했고, DB를 가져오기 위해 Room을 사용했고, 각종 변수값을 유지하기 위해서 SharedPreference를 사용했고, 실시간 코멘트를 위해서 Firebase를 사용했습니다.

해당 Repository을 ViewModel에서 관리하고 있습니다.


2.2.4. Koin을 통한 DI 작업, 프로젝트를 시작할 때는 Dagger2를 과감하게 선택을 했지만, 프로젝트를 시작하는 단계에서 Koin을 사용해보자는 쪽으로 방향이 기울었고, Koin을 사용하게 되었습니다. Dagger2와 Koin에 대해서는 아직도 많이 배워야 하지만, Dagger에서는 조금 더 명확하게 DI를 사용했던 경험이 있었고, Koin을 사용하면서 유연하고, 빠르게 DI를 사용할 수 있다는 장점이 있었습니다.

실제로, Koin을 통해서 appModule에서 코드 재활용과, lateinit을 통해서 각종 메모리를 절약했고, 라이프사이클에 의존하여 해당 모듈을 관리할 수 있던 경험을 할 수 있었습니다.


2.2.5. 경험 : 프로젝트를 진행하기 전에는 MVVM을 사용하더라도, View를 그대로 주입시키거나, BinidingUtil 쪽에서 많은 것을 처리하려고 했습니다. 하지만, 해당 프로젝트를 통해서 View를 더 분리시키고, BindingUtil을 각종 Listener를 통해서 작업을 분리시키고, LiveData를 통해서 작업을 세분화 해봤습니다. 다음 프로젝트에서는 Test 코드를 작성해보고 싶고, 더 효율적으로 MVVM을 사용하기 위해서 많은 스킬들을 공부해야겠다고 생각했습니다.


3. 왜 다양한 개발자와 함께 코딩을 하면 재미있을까?

우리의 새벽은 밝다.


 구조를 잘 아는 개발자, 디자인을 잘 아는 개발자, 그리고 저, 이렇게 프로젝트가 진행됐습니다. 모든 부분에서 크게 성장할 수 있었던 것은 팀원들에게 많은 도움을 받았기 때문입니다. MVVM 패턴을 조금 더 잘 알기까지, 계속 되는 질문을 모두 답변해줬던 팀원과 어플리케이션의 큰 그림을 그리고 있는 디자인을 잘하는 팀원에게, 프로젝트의 일관성과 프로젝트 발표를 위한 효율적인 작업 등을 배울 수 있었습니다.

 그리고 서로 개발했던 경험들을 함께 공유하고, 토론하고, 개발하고, 다시 공유하고, 토론하고, 개발하며 '서울살이'를 만들던 과정이 너무 재미있었습니다. 팀원들과 함께 무엇인가 만들어가는 경험, 그것은 아마도 '화가가 그림을 그리고, 목수가 집을 만들며 느끼는 재미가 아닐까?' 라는 경험을 할 수 있었습니다.


4. 24명의 안드로이드 또래 개발자들과의 네트워킹


 개인적인 프로젝트를 진행하고, 공모전을 진행하며 실력을 쌓으려고 했던 저는, 또래 개발자들을 만날 경험이 적었습니다. 제가 부스트캠프를 진행하면서 가장 크게 얻어가는 것은 또래 개발자들과 소통할 수 있던 시간이었습니다. 모두가 개성있고, 정말 열심히 개발하고, 정말 잘 놀던 사람들을 만난 시간이 너무 짧다고 느낄정도였습니다. 다른 조에서는 어떤 방식으로 개발을 하고, 다른 사람은 같은 로직을 어떻게 처리하는 지 경험할 수 있었고, 그리고 비슷한 문제를 같이 고민할 수 있는 점들이 너무 좋았습니다. 

 다들 천생 개발자인 줄 알았는데, 하나 같이 잘 놀고, 같이 웃으면서 떠들었던 시간들이 행복했습니다.



5. 부스트캠프라서 배울 수 있던 점


 대외활동을 해본 경험은 없습니다. 하지만, 많은 교육을 들었다고 생각합니다.

부스트캠프는 해당 기술력을 4주동안 무궁무진하게 점핑시킬 수 있는 기회라고 생각합니다. 디자이너, 기획자, 개발자 협업이 아닌, 개발자/개발자/개발자 협업은 다른 것보다 개발력을 중심적으로 보는 프로젝트가 진행될 것이고, 저는 부스트캠프를 하면서, 각종 모든 트렌디한 기술을 시도하려는 개발자들과 함께 개발을 할 수 있었습니다.

- 부스트캠프는 최고의 서포터와 함께 하는 게임이었습니다. 3기째 진행되고 있는 부스트캠프는 각종 유명하신 개발자분들이 튜터링을 꼼꼼히 해주고, 커넥트 재단의 높은 수준의 서폿팅을 받을 수 있는 최고의 기회였습니다. 그에 따라서, 간접적으로 개발 방식이나 라이프스타일을 경험해볼 수 있었고, 4주동안의 높은 커리큘럼을 통해 수준 높은 결과물을 만들 수 있다고 생각합니다. 

- 부스트캠프는 제게는 너무 좋은 1달이었습니다. 

 


6. 생각정리


 다시 일상으로 돌아왔습니다. 11시에 쓰지 않는 Slack의 스니펫이 어색한 물이 빠졌습니다. 

이제는 다시 공모전을 찾아보고, 1인 개발을 하며, 취업을 준비하고, 개인 어플리케이션을 개발하며 카페에서 블로그를 쓰는 일상으로 돌아왔습니다. 

앞으로 1년 후, 그리고 10년 후, 저는 개발자를 하며, 후배 개발자들을 가르치는 선임 개발자가 되고 싶습니다. 이번에도 저는 높은 계단 하나를 올랐습니다.