수료생이 전하는 내일배움캠프의 생활기 | 안드로이드 과정 심규상

수료생이 직접 이야기하는 생생한 내일배움캠프 생활을 들어보세요.
May 17, 2024
수료생이 전하는 내일배움캠프의 생활기 | 안드로이드 과정 심규상
✍🏼
내일배움캠프 안에서는 어떤 일들이 일어나고 있을까요? 4개월동안 오롯이 집중해야 하는 내일배움캠프를 선택하기까지, 많은 고민이 될 수밖에 없을 거예요. 이러한 분들을 위해 내일배움캠프를 직접 경험한 수료생들이 들려주는 '진짜' 내배캠 이야기로 여러분을 초대합니다. 수료생들의 생생한 경험담을 통해 내일배움캠프에서 어떤 성장과 발전을 마주할 수 있을지 그려보세요.
 
안녕하세요, 저는 안드로이드 앱 개발 2기를 수료한 심규상입니다. 오늘은 제가 경험한 내일배움캠프 생활을 모두 전달해드릴게요!
 

⏳내일배움캠프에서의 하루

Q. 오전 9시부터 오후 9시까지 어떤 일정으로 진행되나요?

9:00~10:00
ZEP에 입장한 뒤 코드카타를 시작합니다. 캠프에서 준비한 프로그래머스 문제들을 푸는데, 기존에 코드 카타를 어느정도해서 자신이 있다거나 프로그래머스보다 괜찮은 사이트가 있다면 거기에서 문제를 풀어도 됩니다.
10:00
팀원들이 모였는지 확인한 뒤 스크럼을 시작합니다. 오늘 어떤 공부를 할건지, 오늘 학습 목표는 어디까지인지 혹은 팀 프로젝트를 하고 있다면 오늘은 프로젝트의 어느 기능을 할건지를 말합니다. 하루의 목표치를 서로 공유하고 각자 공부를 시작합니다. 팀 프로젝트를 하고 있다면 Zep에서 화면공유를 하며 진행합니다. 화면에서 다른 사람들이 공부하고 있는 모습을 확인할 수 있어서 나태해지는 것을 방지하고, 서로의 진행 상황을 확인하며 동기부여가 됩니다.
13:00
점심 시간을 가집니다.
14:00
각자 점심을 먹고 모입니다. 오전중에 어떤 일을 했고, 얼마나 했는지를 공유하는 자리를 가집니다. 팀 프로젝트를 진행중이라면 간단하게 중간 회고를 합니다.
이 시간을 통해 오전 중에 나태해지는 것을 방지할 수 있습니다. 오전에 피곤하다고 공부를 안 하면 중간 회고 시간에 할말이 없으니 팀원들에게 눈총을 받을 수 있지 않을까 하는 생각에 좀 더 열심히 할 수 있습니다. 뿐만 아니라 막히는 부분을 공유해 서로 힘을 합쳐서 빠르게 해결할 수 있습니다. 그런 뒤 중간 회고가 끝나면 각자 공부 혹은 프로젝트를 진행합니다.
18:00
저녁시간입니다.
19:00
모여서 각자 공부 시간을 가집니다.
20:30
회고를 시작합니다. 서로 각자 얼마나 했는지, 스크럼 때 말한 목표치까지 했는지 확인하고, 못했다면 이유는 무엇인지를 공유합니다. 또한 오늘 공부 하면서 도움이 되었던 중요한 개념, 공부한 블로그 등 공유할 정보가 있다면 서로 공유합니다. 회고를 마친 후 TIL을 적습니다.
 

Q. Zep에서의 학습은 어떻게 이루어지나요?

배치된 조로 번호에 맞게 Zep에 배치된 테이블에 앉아서 공부를 진행합니다. 랜덤하게 팀원들을 배치하여 조를 결성하여 조별로 의견을 교환합니다. 또한 팀 프로젝트를 진행할때는 화면 공유 기능으로 각자의 IDE 화면을 공유하여 진행합니다. 화면 공유 기능으로 팀원들의 상황을 확인하고 서로 공부하는 모습에 나태해지지 않도록 노력합니다.
맵의 중앙엔 튜터님들이 있는 공간입니다. 튜터님과 1:1로 소통을 할 수 있고, 단순 문제 해결부터 코드 개선 등 다양한 도움을 받을 수 있습니다.
가운데에서 오른쪽 공간엔 매니저님이 있는 공간인데, 캠프에서 팀을 운영하는 것에 대한 상담을 받을 수 있습니다. 예를 들어 초보 개발자에게 유용한 팁 등을 조언 받을 수도 있고, 필요한 요구사항을 전달 할 수도 있습니다.
팀 테이블 근처에 번호가 적혀있지 않은 테이블 또한 존재하는데, 여기에서 조용히 1:1 대화를 나눌 수도 있습니다. 팀 프로젝트 진행 중 막히는 부분이 있거나 1:1로 의견교환이 필요할때, 다른 팀원들에게 방해가 되지 않도록 이 테이블에서 소통했습니다.
 

📚내일배움캠프의 커리큘럼

Q. 내일배움캠프는 4개월 간 어떤 커리큘럼으로 진행되나요?

1~4주차
처음 2주간 맛보기 프로젝트 BMI, 로또 생성기 등을 만들어봅니다. Git, 마인드 셋, TIL등 공부하기 이후에 공부할 내용들에 대한 준비사항들을 이야기해주십니다. 이 시기에 저는 안드로이드 과정이어서 코틀린을 이용한 프로그램들을 만들어보고 상속과 추상화 같은 기본적인 개념들을 익히는 시간을 가졌습니다. 그렇게 첫 한 달을 보낸 뒤 본격적으로 안드로이드 스튜디오를 이용한 프로젝트를 진행 합니다.
5~6주차
새로운 팀원들을 만납니다. 이때부터 수준별 학습반을 신청해 추가적으로 강의를 들을 수 있습니다. 또한 본인의 반이 정해져 있어도 다른 반의 수업을 선택하여 들을 수 있습니다.
기초적인 로그인, 로그아웃 페이지를 만드는 것부터 시작합니다. 또한 뷰를 구성하는 법, 간단한 로직 짜는 법과 안드로이드에서 어떤 식으로 뷰를 구성하고, 동작을 원하는대로 처리하는지 감을 잡습니다. 이전에 했던 코틀린으로 이루어진 프로그램을 만들어 봤다면 금방 익숙해질 수 있습니다. 그렇게 2주정도 개인공부를 하고 팀프로젝트를 시작합니다.
7~8주차
협업하며 협업을 어떻게 하는지, 혼자서는 알기 어려웠지만 협업 하면서 보이는 중요한 사항을 배우는 시기입니다. 저는 코드 읽기 쉽게 만드는 법, 코드 컨벤션, 깃 사용법 등 협업 하는데 있어서 필수적인 것들의 중요성을 배운 시기였습니다. 또한 기본적인 협업 진행 프로세스를 구축합니다.
그리고 팀 프로젝트는 2주간 진행되며, 끝난 뒤 새로운 팀원들과 함께 다음 커리큘럼을 진행합니다.
9~10주차
뷰 바인딩과 프래그먼트 등 좀 더 다양하게 표현 할 수 있는 API를 익힙니다. 2주간 새로운 API로 개인 프로젝트를 만든 뒤 팀 프로젝트를 진행 합니다.
11~12주차
개인 과제 때 공부한 것들을 응용해서 팀프로젝트를 진행합니다. 이전에 팀프로젝트를 진행하며 구축한 프로세스를 발전시켜 더 효율적이고 체계적으로 협업을 진행합니다. 협업 관련 해서 더 좋은 코드를 생각하게 되고, 자신의 코드를 읽기 좋고 체계적으로 짤 수 있게 됩니다. 또한 다른사람의 코드를 보며 코드 독해력도 늘게 됩니다.
13~14주차
현업에서 자주 쓰는 라이브러리들의 사용법 등을 배웁니다. 서버와 통신, 로컬 DB등을 배우며 이전 보다 앱으로 표현 할 수 있는 것이 점점 많아지게 됩니다. 이 시기는 제가 급성장을 느끼는 시기였습니다. 이 시기 개인과제에서는 이전보다 훨씬 다양하게 표현하는 자신을 발견했습니다.
15~16주차
이전에 배운 내용을 바탕으로 Youtube API를 사용하는 팀프로젝트를 합니다. 이전 프로젝트에 비해 앱이 점점 커지며 구조가 중요해집니다. 가독성 좋은 코드 뿐만 아니라, 패키지 배치 등 구조를 나눠 프로젝트를 원활하게 진행하도록 합니다.
팀 프로젝트의 프로세스 또한 더욱 효율적으로 진행되는데 중요도에 따른 MVP 분리한 설계, 데드라인 설정 등 막힘 없이 진행할 수 있었습니다.
17~22주차
앞선 경험들을 바탕으로 최종 프로젝트를 6주간 진행합니다. 이때 실제로 앱을 배포하게 됩니다. 앞서 배운것들을 최대한 활용해서 앱을 개발합니다. 실제로 사람들이 사용한 것을 바탕으로 피드백을 받으며, 진짜 개발자가 무엇인지 느꼈던 시간이었습니다.
 

Q. 미니 프로젝트(기본기 프로젝트)과정에서는 무엇을 배울 수 있었나요?

미니 프로젝트에선 안드로이드 개발이 무엇인지 감을 잡을 수 있습니다. 로그인, 로그아웃, 회원가입 등의 기능을 구현하면서, 안드로이드에선 어떻게 뷰를 구성하는지, 어떻게 원하는대로 로직을 구현하는지 방법을 익힐 수 있습니다. 기초적인 단계이기 때문에 금방 따라 할 수 있습니다.
이 시기의 협업은 처음 협업하는 것이기 때문에 미숙한 점이 많았지만 개선해야 할 점을 정리하면서 이후 협업에서 발전할 수 있었습니다.
 

Q. 각종 언어 및 프레임워크 학습에서 어려운 점은 없으셨나요?

레트로핏을 처음 적용할때 어려웠습니다. 하지만 예제들을 구글링, git 검색 등으로 찾아보고 다른 사람들이 만들어둔 프로젝트를 분석하면서 해결할 수 있었습니다.
프레임워크를 학습할 때에는 다양한 프레임워크를 직접 활용하면서 사용법을 익히게 되는데요. 여러가지 기술 스택들을 공부해보며 자주 사용하는 방법 사람들이 사용하는 방법들을 찾아보고 일단 따라 해보면서 사용법을 익히고 그 다음 세세하게 공부하는 식으로 학습했습니다.
 

Q. 내일배움캠프는 정규 과정 외에도 다양한 세션을 제공하고 있습니다. 가장 만족한 세션은 무엇인가요?

안드로이드 프로젝트 세션입니다. 각각 다른 장점을 가지고 있어서 만족한 세션들을 차근차근하게 이야기해보겠습니다.
회원가입 페이지 만들기
안드로이드로 뷰를 구성하는 방법, 원하는 로직을 원하는대로 구성하는 방법 등을 익힐 수 있었습니다.
SNS 페이지 만들기
협업에 대한 기초를 배울 수 있었습니다. 예를 들어, 협업 하면서 중요한 부분과 특별히 신경 써야되는 부분 등을 알 수 있었습니다.
애플마켓
가장 도움이 되었던 부분은 수준별 학습반의 수업 내용과 튜터님의 도움입니다.
자주 사용하는 뷰 바인딩과 리사이클러 뷰를 사용법을 배우며 다이얼로그와 알림등의 사용법을 익힐 수 있었습니다. 개인적으로 이때부터 성장 곡선이 확 오르기 시작했다고 생각이 드는데, 수준별 학습반에서 MVVM패턴에 대해 배우기 시작하고 이를 적용해 보면서 디자인 패턴과 아키텍쳐에 대해 입문할 수 있었습니다.
이때 개인 과제가 어렵게 느껴지지 않아서 아직 미숙했던 MVVM 패턴을 계속 적용하며 난이도를 자체적으로 조정하며 공부했습니다. 반면 구조를 짜는 건 어렵게 느껴져서 튜터님들의 도움을 받으며 빠르게 익숙해질 수 있도록 노력했습니다.
연락처앱 만들기
리사이클러 뷰, 알림 등을 좀 더 다양하게 사용하고 협업툴을 이용한 협업에 익숙해질 수 있는 세션이었습니다.
그리고 MVVM 패턴으로 구성했다가 다시 인터페이스 등으로 구현하게 되며 인터페이스에 대해 심도 있게 공부할 수 있었습니다.
더불어 모션 레이아웃도 사용할 수 있게 된 세션입니다.
이미지 검색 앱 만들기
Preference와 room, retrofit과 API등을 다루는게 목적인 세션이었습니다. 프로젝트에 제한 사항이 없어지면서 다양하게 시도해보며 확 성장할 수 있었던 세션이었습니다.
저는 클린 아키텍쳐의 기본적인 틀을 구성하기 시작했고, MVVM패턴에 제법 익숙해져서 retrofit과 recycler viewtype을 배워 다양한 것들을 이것 저것 추가해보기 시작했습니다. 유지 보수가 좋은 아키텍쳐 패턴을 사용하였기 때문에 기능을 추가하기가 수월했고, 코드를 읽기에 어려움이 없어서 다양하게 시도하고 구조적인 고민을 많이 하며 성장한 세션이었습니다.
Y Media: 나만의 미디어 앱
구조 설계의 중요성을 느낄 수 있었던 세션이었습니다. Youtube API를 사용해 Retrofit에 익숙해지고 팀 협업 역할배분과 목표를 나눠 협업에 더욱 익숙해지는 것이 목적인 세션입니다. 앞서 연습했던 아키텍쳐 패턴들을 통해 효율적으로 프로젝트를 관리할 수 있었고 retrofit에 익숙해 질 수 있었습니다.
 

Q. 내일배움캠프의 하이라이트라 할 수 있는 최종 프로젝트, 규상 님은 어떤 점이 가장 좋으셨나요?

최종 프로젝트를 진행하며 앱이 배포되는 방식과 전체적인 앱을 기획 및 배포하는 프로세스를 경험해 볼 수 있었습니다.
최종 프로젝트는 총 6주간 진행되었습니다. 우선 브레인 스토밍을 통해 아이디어를 계속해서 수집하고, 수집된 아이디어를 바탕으로 자료를 조사하기 시작한다. 그리고 아이디어와 비슷한 앱 등을 조사하기 시작하고, 벤치마킹할점 차별화할 기능 등을 정리합니다. 다음으로는 와이어 프레임을 짜고 전체적인 디자인을 설정합니다. 이때 기능을 같이 논의하고, 사용자 입장에서 어떤 식으로 사용할지 생각하며 프로젝트 구조를 설계합니다.
그리고 기능별로 중요도를 나누고 우선순위에 맞춰 작업을 진행하면서 협업하는데요. 먼저 완료된 인원이 아직 맡고 있는 인원이 없는 기능 중 중요도가 높은 기능을 구현합니다.
 
 

🧑🏼‍🏫내일배움캠프에서 만난 사람들

Q. 내일배움캠프의 튜터님은 어떤 분들인가요?

튜터님에게는 단순한 오류나 프로젝트 개선 방향 등 다양한 조언을 받을 수 있습니다. 저는 초반 주차에 단순 에러때문에 튜터님을 찾아갔는데 단순 에러 해결 뿐만 아니라 이후에 에러가 발생하면 어떻게 해야하는지를 튜터님과 같이 진행하면 다음에 에러가 발생할 시 대응하는 방법을 배울 수 있었습니다.
맵 중앙의 튜터 방에 들어가면 튜터님과 1:1로 소통이 가능한데요. 튜터님은 점심, 저녁 시간 제외 오전 9시부터 밤 9시까지 계십니다. 이 시간에 찾아가서 여러분이 필요한 조언을 받으시면 됩니다. 튜터님 마다 각각 피드백하는 방식이 다르기 때문에 다양한 튜터님으로 부터 조언을 받고 자신에게 맞는 분에게 찾아가는 것이 좋습니다. 🙂
 

Q. 튜터님께 도움을 받았던 경험을 한 가지 말씀해주세요.

초반엔 단순 에러를 가지고 자주 찾아갔는데, 로그찍는 법, 디버그 보는법, 에러를 찾아가는 과정을 배우며 디버깅을 빠르게 하는 법을 배웠습니다. 또한 코드를 개선하면서 디자인 패턴, 아키텍쳐 패턴등을 공부하며 적용했는데 튜터님이 개선점과 개선 방향 등을 제시해 주셔서 막힘없이 계속 공부를 진행 할 수 있었습니다.
MVVM패턴 같은 경우 초반엔 잘못된 방식으로도 많이 썼는데 튜터님이 그 때마다 틀린 점을 알려주셔서 고칠 수 있었습니다. 그리고 코드가 문제 없이 작동 해도 더욱 가독성 좋고 유지보수하기 좋게, 더 효율적으로 관리하는 방법 등 현업에서 사용하는 개발 꿀팁을 계속 알려주셨습니다.
 

Q. 내일배움캠프의 매니저님은 어떤 역할을 해주시나요?

매니저님에게는 캠프 진행 중 필요한 부분이 있다면 말씀드릴 수도 있고, 이력서, 취업 등 취준생 입장에서의 경험도 들을 수 있습니다. 매니저님의 경우 과거에 캠프를 통해 학습하고 매니저가 되신 분이 많기 때문입니다. 팀 프로젝트 진행 시 좀 더 효율적으로 진행하는 방법, 매니저님이 캠프에 있을땐 어떤 식으로 팀 프로젝트를 진행하셨는지 등 다양한 조언을 얻을 수 있었습니다.
튜터님 방의 오른쪽에 매니저님 방이 있는데요. 보통 9:00 ~18:00까지 계셔서 찾아가시면 언제든 대화하실 수 있습니다.
 

Q. 매니저님께 도움을 받았던 경험이 있나요?

팀 프로젝트를 진행하면서 생긴 문제를 상담한 경험이 있습니다. 이때 저희 팀프로젝트의 개선점, 매니저님이 팀 프로젝트를 하셨을 때는 어땠는지, 어떻게 진행하면 좋을지 등을 여쭤보았습니다. 경험이 많은 매니저님의 조언을 바탕으로 노션에 템플릿을 미리 만들어두고, 진행 과정을 생각하며 마인드맵, 피그마, 협업 규칙 등 팀프 로젝트를 하기전에 미리 준비할 수 있었습니다. 더불어 이력서 조언이나 취업 시장에 대한 질문도 받아주셨습니다.
 

Q. 팀프로젝트에서 만난 팀원들은 어땠나요?

다양한 팀원들을 만나면서 더욱 발전할 수 있었습니다. 팀원은 이전에 했던 사람이랑 가능한 겹치지 않게 팀을 지정해주시는데요. 매번 팀프로젝트가 끝나면 KPT를 작성해서 팀프로젝트를 진행하면서 아쉬웠던 점, 좋았던 점을 바탕으로 개선할 부분을 찾습니다. 여기에 기초하여 다음 프로젝트를 진행하기 때문에 다음 팀 프로젝트는 더욱 매끄럽게 진행할 수 있습니다.
저는 커밋 컨벤션, 코드 컨벤션 등 협업 규칙을 만들고, 마인드맵과 피그마 등 개발하기전 진행할 것들을 준비해두고 프로젝트를 시작했습니다. 어느 정도 프로젝트의 틀이 잡히면 기능 별로 MVP를 정리해 기능의 우선 순위를 정하고 표로 만들어 위에서 부터 순차적으로 프로젝트를 진행했습니다. 코드 컨벤션, 커밋 컨벤션 등에서는 팀 별로 규칙을 정해 협업을 매끄럽게 할 수 있도록 합니다.
 

💡안드로이드 개발자를 고민하는 후배들에게 하고 싶은 말

1️⃣ 앱 개발자는 화면을 구성하는 역할을 하므로 앱의 UI/UX를 공부하는 건 언젠가는 꼭 해야하는 공부입니다. 일관성 있는 UI/UX나 다른 앱에서 일반적으로 사용하고 있는 UX들은 필수적으로 알고 있는 것이 좋습니다.
2️⃣ 과제는 필수/선택이 있는데, 선택까지 전부 다 하시는 것이 좋습니다. 과제를 낼 초반엔 수업만 들어도 누구나 할 수 있을만한 간단한 과제입니다. 초반에 쉬운 부분부터 전부 구현을 하지 않는다면 나중엔 따라가기 벅찰 수 있습니다.
3️⃣ 선택 과제까지 수월하게 했다면 +a로 ‘내가 뭘 더 할 수 있을까?’를 고민해보세요. 초반에 나오는 과제들은 선택과제를 한 후에도 보통 시간이 남는데, ‘여기에서 어떤 기능을 추가해볼까?’ 혹은 ‘어떻게하면 코드를 개선할 수 있을까’를 고민하고 자체적으로 과제의 난이도를 올려 진행해보세요.
4️⃣ 새로 배운 기능들은 이해가 가지 않아도 일단 따라해 봅니다. 동작이 어떻게 되는지 감을 잡고 다시 공부를 하면 이해가 잘됩니다.
5️⃣ 초반에 선택 과제까지 전부 다하고, 코드카타를 더 풀어보는 방법도 좋습니다. 코드카타를 단순히 풀 뿐만 아니라 어떻게 하면 코드가 더 개선될지 고민해 보고 찾아보는 것도 좋습니다. 코드를 짤때 더 다양한 시각으로 코드를 짤 때 도움이 됩니다.
6️⃣ GPT를 이용하는 것도 좋습니다. 코드를 적고 개선점 혹은 문제점 등을 물어보면 생각해보지 못한 방법의 아이디어들을 던져 줍니다. 이때 새로운 함수들도 배우면서 시각을 넓히는데 많은 도움이 되었습니다. 일정 수준이 넘어가면 투입 시간 대비 효율은 떨어지지만 초반엔 정말 좋다고 생각합니다. 처음부터 이런 식으로 하다 보면, 과제는 빠르게 끝낼 수 있습니다. 남은 시간에는 추가로 공부할 것들을 생각합니다. 기존에 했던 것을 깊게 파보거나 새로운 기능을 추가로 공부하는 것도 좋습니다.
7️⃣ 과제는 기본으로 다하고 +a로 무언가를 추가로 하는 것을 추천드립니다. 자신만의 무기가 됩니다.
8️⃣ 공부를 할때 읽기 좋은 코드를 목표로 코드를 짜는게 좋습니다. 단순히 메소드, 함수의 이름, 뷰의 이름을 짜는 것부터 구조나 클래스 구분 등 다른 사람이 봐도 의미를 알기 쉽게 만드는 걸 목표로 코드를 짜면 좋습니다. 잘 읽히는 다른 사람들의 코드를 읽어보면서 왜 이해가 잘 되는지 생각해보고, 아니라면 코드를 해석하면서 코드 독해력을 늘려보세요.
9️⃣ 프로젝트를 할 때 빠르게 할 수 있는 방법은 범용성 높은 코드를 짜는 것입니다. 코드를 어느 프로젝트에서나 사용할 수 있게 짜게 된다면 겹치는 기능들은 정말 빠르게 구현 할 수 있습니다. 프로젝트를 빠르게 구현하다보면, 남는 시간동안 새로운 기능 혹은 심도 깊은 공부를 할 시간이 주어집니다.
 
 

고민이 끝났나요? 이제 내일배움캠프에서 개발자로의 여정을 시작하세요

국비지원 부트캠프는 인생에 딱 한번 얻을 수 있는 기회입니다. 내일배움캠프는 수강생들이 이 기회를 헛되이 날려보내지 않도록 최선을 다해 교육과정을 준비했습니다. 개발자로 새로운 커리어를 시작하고 싶다면 단단한 의지만 준비해오세요. 내일배움캠프와 함께 보내는 4개월은 인생 최고의 성장 경험이 될 것입니다.
 
 
 
CREDIT
글 | 심규상 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
Share article
Subscribe to our newsletter
RSSPowered by inblog