수료생이 전하는 내일배움캠프의 생활기 | 백엔드 Spring 과정 손창현

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

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

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

내일배움캠프는 기본적으로 오전 9시부터 오후 9시까지 진행되지만, 입실 체크와 퇴실 체크는 06:00부터 24:00사이에 가능합니다. 새벽 6시부터 24시사이에 12시간을 채우면 되는 방식입니다. 하지만 이 교육과정의 모든 일정은 오전 9시부터 오후 9시까지로 이루어져 있기 때문에 해당 일정은 지켜주셔야 합니다. 아침 일찍이나 점심 쯤에 입실 체크를 한다면 그 사이에 놓치는 부분이 있을 수 있기 때문에 정규시간을 지키는 것이 좋습니다. 점심시간은 오후 1시부터 2시이고 저녁시간은 오후 6시부터 7시까지입니다. 이 시간은 공식적인 시간이고 사실 저는 딱히 밥 먹는 시간을 정해두지 않고 제가 원하는 시간에 밥을 먹으면서 코딩하긴 했습니다 😄
일별로 해야할 일은 진행되는 스케쥴에 따라 달라질 수 있지만 TIL을 매일 작성해야 합니다. 그리고 한 주가 끝나면 한 주동안 내가 배운 내용을 다시끔 정리하고 상기하기 위한 WIL도 작성합니다. 내일배움캠프의 5개월 간의 교육과정동안 기초부터 심화과정까지 주차별 주제에 따른 여러 개인/협업 프로젝트를 경험해볼 수 있습니다.
 

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

실시간 세션은 Zoom에서 이루어지고 그 외 모든 활동은 Zep에서 이루어집니다. Zep은 메타버스 플랫폼으로 이 곳에서 오전 9시부터 오후 9시까지 학습을 진행하고 협업을 진행합니다. 내가 캠프에 정상적으로 참여하고 있는지를 Zep 접속 여부를 통해 확인하니 항상 Zep에서의 자신의 자리를 지키고 있어야 합니다. 또한 이곳에서 수강생, 튜터님, 매니저님과 소통할 수 있습니다. 알고리즘 스터디를 진행하는 공간도 따로 있을 뿐더러 여러 이벤트도 진행될 수도 있습니다.
가장 많이 쓰는 공간은 학습 공간으로 거의 대부분의 시간을 여기서 보낸다고 생각하시면 됩니다. 이곳에서 상주하면서 강의를 수강하고 개발을 진행하고 팀원들과 소통합니다. 또한 이 학습 공간에 튜터님과 매니저님도 상주하기 때문에 궁금한 점이나 문제가 생겼을 경우, 소통하는 공간이기도 합니다. 수료 이후에도 Zep 공간은 계속해서 이용이 가능하니 같은 수료생들과 계속해서 만남을 이어갈 수 있습니다.
 
 

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

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

전체적인 커리큘럼은 학습 주제에 따라 프로젝트를 나누며 진행하고 중간 중간에 실시간 세션을 통해 여러 지식을 학습합니다.
정식 커리큘럼 이전에 사전캠프를 진행합니다. 이 사전캠프 기간동안은 HTML, CSS, Javascript, Sql, 기초 Java를 학습하면서 정식 교육과정에 대한 준비를 합니다. 이후 정식 커리큘럼부터는 다음과 같이 진행됩니다.
첫 번째로 사전 캠프 기간동안 수강한 웹 개발 기초 강의를 이용해 간단한 팀 소개 페이지를 제작합니다. 팀원들과 처음으로 협업할 수 있는 프로젝트인데요. 이때 백엔드와 프론트엔드로 나누기보단 한 페이지씩 맡아서 하는 것을 추천드립니다. 참고로 저는 백엔드/프론트엔드로 나누어 진행한 것에 대해 후회가 됩니다. 왜냐하면 전부 다 경험을 해봐야 하는데 누구는 백엔드 경험만 하고 누구는 프론트엔드만 경험하기 때문입니다.
두 번째로 Java 강의를 수강하면서 프로그램밍의 기초와 Java 사용법에 대해서 학습 합니다. 학습한 Java를 활용하기 위해서 순수 Java로만 프로그래밍하여 개인 프로젝트, 협업 프로젝트를 진행합니다.
세 번째로 백엔드 프레임워크인 Spring에 대해서 수강하며 Spring의 기초 지식을 쌓습니다. 이후 Spring을 활용하여 협업 프로젝트로 백엔드 API를 개발합니다. 백엔드 API를 개발하기 때문에 요구사항, ERD, API 명세서 작성법에 대해 학습하고 작성합니다. 이를 토대로 백엔드 API를 개발합니다.
네 번째로 이제는 심화적인 Spring 강의를 수강하고 학습합니다. 이를 활용하여 이전 프로젝트보다 조금 더 복잡하고 심화적인 협업 프로젝트(백엔드 API)를 진행합니다.
다섯 번째로 GitHub Actions, Dokcer, AWS 등에 대해서 학습하면서 백엔드 인프라에 대해 학습하고 배포까지 해보는 협업 프로젝트를 개발합니다.
마지막으로 최종 프로젝트를 개발합니다. 이 또한 협업 프로젝트이며, 그동안 학습해왔던 모든 지식을 총동원하여 프로젝트를 개발합니다. 학습한 것 이외에 내가 개발하고 싶은 것을 학습하고 개발해볼 수 있는 시간입니다. 이는 단순 배포로 끝나는 것이 아닌 유저 테스트를 통해 개발-운영-개선에 대해 모든 것을 경험해볼 수 있는 프로젝트입니다.
 
 

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

프로젝트를 하며 실무 기술을 다루는 법과 협업하는 방법을 배웠습니다.
프로젝트 주제는 간단한 팀 소개 페이지를 제작하는 것입니다. 만약 사전 캠프에 참여하지 않았다면 사전 캠프에서 제공하는 강의를 수강하면서 프로젝트 개발에 참여하면 됩니다. 사전 캠프에서 주어지는 강의를 모두 수강했다면 학습한 내용을 활용하여 프로젝트를 개발하면 됩니다. 해당 강의들은 웹 개발 기초 강의(Java, HTML, CSS, Javascript)이기 때문에 개발을 처음 배우는 사람이라도 충분히 학습하고 프로젝트에 참여할 수 있을 정도로 난이도가 어렵지 않습니다.
협업 방식은 아직 GitHub 사용법에 대해서 배우지 않았기 때문에 각자 코드를 파일로 주고 받아 합치는 등 원시적인 방법을 사용하는 등 각자 팀에서 정하는 방법으로 하면 되지만 이때부터 GitHub 사용법을 공부하고 사용해보는 것을 추천드립니다.
 

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

JPA를 학습할 때, 가장 어려웠지만 열정적으로 학습했던 것 같습니다. JPA는 사용자가 연관관계만 형성해주면 자동으로 JPA가 SQL을 해결해주어 자칫 작동 원리에 대해 모르고 지나칠 수 있습니다. 하지만 작동 원리에 대해 잘 알고 있어야 해당 툴을 잘 사용한다고 말할 수 있기 때문에 저는 JPA를 사용하지만 연관관계를 사용하지 않고 SQL을 직접 작성해 봄으로써 어떤 식으로 동작해야 하는지, 어떤 식으로 동작하는지에 대해 정확히 JPA의 중요성과 필요성, 작동 원리에 대해서 공부할 수 있는 시간이 되었습니다.
Spring 트랙에서는 Java, Spring, JPA를 주력으로 학습합니다. Java→Spring→JPA 순서로 학습이 진행됩니다. 여러 언어로 Spring을 사용할 수 있지만 Spring 트랙에서는 Java를 사용하는 만큼 Java 강의가 주어집니다. 저는 Java 강의 학습 주간에 해당 강의를 수강하면서 오늘 배웠던 내용을 정리하여 TIL을 작성하며 내용을 정리하였습니다. 내용을 정리하지 않고 강의만 계속해서 수강한다면 쉽게 까먹을수 있기 때문에 보다 더 오래 기억하고 추후에 찾아보기 위해 TIL을 이용하여 정리하고 작성하시는 것을 추천드립니다. 이것은 Java에만 국한된 방식이 아닌 Spring이나 JPA 등과 같이 모든 학습을 진행할 때 위와 같은 방법으로 학습하는 방법이 좋다고 생각합니다.
 

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

제가 가장 도움되었던 세션은 CI/CD 관련 세션입니다. CI/CD를 해본 경험이 있긴 하지만 단순한게 구현만 해보았지 구체적인 동작 원리나 개념에 대해서 모른채로 구현했기 때문에 AWS, Docker 세션을 들으면서 CI/CD에 대해 좀 더 체계적으로 정리할 수 있는 시간이 되었습니다.
온라인 세션은 Web, Java, Docker, AWS, MSA와 같이 기술적인 특강 뿐만 아니라 TIL을 써야하는 이유, 알고리즘, Git 사용법, 좋은 개발자의 비밀 특강 등 개발자로서 성장하는 데 필요한 세션도 포함되어 있습니다. 주로 세션의 목적은 강의로 제공되지 않은 내용에 대해서 수강생들이 쉽게 학습할 수 있도록 제공됩니다. 실시간으로 이해가 안되는 점에 대해 채팅으로 질문하며 수강할 수 있다는 좋은 점이 있습니다. 또한 기술 질문외에 현업 개발자에게 들을 수 있는 재미있는 이야기를 들을 수도 있습니다. 최종 프로젝트 이후에는 개발자로의 취업을 위한 이력서 세션도 존재합니다. 더불어 수료생들의 취업을 위한 많은 지원이 있으니 우리는 공부에만 열중하면 되어서 너무 좋았습니다.
 

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

최종 프로젝트 덕분에 포트폴리오에 가장 자랑스럽게 적을 수 있는 프로젝트가 생겼습니다. 최종 프로젝트에서의 저의 역할은 이전부터 공부하고 구현해보고 싶었던 것이기 때문에 더 열정을 부을수 있었습니다. 또한 혼자서는 절대 불가능했지만 많은 기능들을 마음이 잘 맞는 팀원들과 협업하여 개발했기 때문에 다른 팀들과 비교해 MVP 스펙에서 가장 완성도 높은 많은 기능을 가진 프로젝트를 완성할 수 있었습니다. 이로써 협업의 중요성에 대해 다시끔 알 수 있게 된 계기가 되기도 하였습니다.
최종 프로젝트는 이전에 진행했던 프로젝트와는 다르게 진행됩니다. 각 팀마다 담당 튜터님, 부담당 튜터님을 배정받고 기획 단계에서는 각 팀마다 작성한 기획 문서를 보고 담당 튜터님들이 질문 리스트를 만들고 고쳐야 할 점이 있다면 수정하는 등 자문을 구하며 진행합니다. 개발 단계에서도 마찬가지로 계획에 따라 최종 프로젝트가 잘 진행되고 있는지, 그렇지 않다면 어떤 식으로 계획을 변경해야 할지, 해당 기술은 어떤 식으로 구현해야 할지 등 튜터님과 주기적으로 상담하며 최종 프로젝트를 진행합니다. 최종 프로젝트는 2~3주간 MVP 스펙을 달성하고 중간 발표를 진행하고 이후 남은 시간 동안은 리팩토링이나 추가적인 기능을 개발하고 최종적으로 완성한 프로젝트를 발표하는 최종 발표로 마무리됩니다.
팀원과의 협업 방식은 GitHub로 이루어지며 이전 프로젝트와는 달리 칸반 보드를 사용하여 실시간 개발 정도를 알고 이슈를 작성하는 등 조금 더 체계화된 규칙을 가지고 협업 개발을 진행하는 것이 좋습니다.
GitHub 사용에 아직 익숙하지 않은 팀원이 GitHub에 자신이 수정한 내용을 강제로 푸시하는 바람에 이전에 다른 팀원들이 작성한 모든 코드들이 날아갔던 적이 있습니다. 심지어 새벽 시간대였기 때문에 저희는 이것 때문에 골머리를 썩고 있었습니다. 하지만 혹시 몰라 늦은 시간에도 불구하고 조심스럽게 튜터님께 DM을 보냈더니 기적과 같게도 아직 주무시지 않으셨고 도움을 주시는 덕분에 무사히 해결할 수 있는 일이 발생하기도 하였습니다.
 
 

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

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

튜터님은 교육생들에게 우리가 배우는 개발 분야에 대해 지식을 제공해주는 사람입니다. 튜터님들은 오전9시부터 점심시간까지, 오전 9시부터 저녁시간까지, 저녁시간 이후인 7시부터 9시까지 이렇게 세 파트로, 각각 다른 튜터님들이 상주해 계십니다. 오전 9시부터 점심시간이나 오후 7시부터 오후 9시까지 계시는 튜터님들은 보통 현업과 병행하여 출근 전이나 퇴근 후에 활동한다고 생각하시면 됩니다.
오전 9시부터 저녁시간까지 활동하시는 튜터님들을 담당 튜터님들이라 칭하는데 다른 튜터님들보다도 오랜시간 상주하시는 만큼 더 많이 상담을 하고 더 많은 질문을 할 수 있습니다.
저희는 튜터님들께 많은 질문으로 끊임없이 괴롭혀야 합니다. 그래야 저희가 많은 것을 얻어가기 때문입니다. 튜터님들은 저희를 도와주기 위해 있는 사람들입니다. 튜터님들께 개발과 관련된 모든것을 질문할 수 있습니다. 혹여나 제 질문에 대한 지식이 없는 상태더라도 어떤 튜터님들은 검색하여 알려십니다. 저는 주로 기술적 의사결정을 할 때나 내가 공부하는 것이 이해가 잘 되지 않을 때, 주로 튜터님들을 찾아갔던 것 같습니다.
튜터님들이 처음에는 질문에 내용에 대해 간단하게만 설명해줬다면 시간이 지날수록 실력이 높을수록 아무래도 교육생이 학습한 내용도 많아집니다. 소위 개발 관련 내용에 대해 튜터님들과 의사소통이 점점 가능해지기 때문에 조금 더 구체적인 대화를 진행하며 더 많은 것을 얻어갈 수 있습니다.
 

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

JPA에 대해서 학습할 때, 사실 JPA를 왜 배우는지 왜 JPA를 써야 하는지 다른 기술을 사용하면 안되는지, JPA는 어떤 식으로 동작하는지에 대한 의문이 생긴 적이 있습니다. 그래서 이에 대한 고민을 튜터님과 상담한 경험이 있습니다. 이 상담을 통해서 JPA뿐만 아니라 앞으로 어떤 식으로 개발 공부를 해야 하는지, 어떻게 개발을 진행해야 하는 지에 대해 많은 것을 알게 되었습니다.
먼저 JPA는 ORM 기술들 중 하나로 대체 가능한 여러가지 기술이 있습니다. 절대적으로 JPA를 알려준다고 JPA에 매몰되어 학습하지 말라고 하셨습니다. 각 상황에 따라 더 적합한 선택지가 있고 이에 따라 기술적 의사 결정을 해야한다고 말씀하셨습니다. 또한 JPA에 작동원리를 모른채 의존하여 개발하게 된다면 나중에 다른 기술을 학습할 때 수월하게 학습하지 못하고, 어떤 문제가 발생했을 때 제대로 해결할 수 없을 뿐더러 또 다른 문제를 발견할 수 있을 것이라 말씀하셨습니다. 이에 따라 저는 JPA를 사용하지 않고 개발을 진행해보면서 어떨 때 JPA가 필요한지, JPA의 동작 원리에 대해 알 수 있는 의미있는 프로젝트를 진행할 수 있었습니다.
 

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

매니저님은 오전 9시부터 저녁시간 시작인 오후 6시까지 상주해 계십니다. 매니저님은 캠프가 원활하게 진행되는데 필요한 모든 것을 관리하십니다. 튜터님들과 비교해 기술적인 질문이나 상담보다는 캠프에 대한 질문, 캠프를 진행하는데 생기는 문제 등 캠프에 대해 궁금한 전반적인 질문하고 상담할 수 있습니다. 또한 저희 매니저님은 오전 9시에 Zep에 출석해 있지 않은 인원에 대해서 모닝콜 전화를 해주시곤 했습니다. 전화번호를 모르는 팀원이 출석하지 않은 상태일 때 대신 연락해주셔서 모든 팀원이 출석할 수 있도록 도와주십니다. 또한 TIL을 작성하지 않는다면 매니저님 방에서 TIL을 작성하실 수도 있습니다. 😅
 

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

매니저님께 특별히 개인적으로 도움받은 적은 없습니다. 하지만 캠프를 무탈하게 수료할 수 있었던 이유는 제가 보지 못하는 곳에서 매니저님이 캠프가 원활하게 진행되게끔 노력했기 때문에 이러한 결과가 나오지 않았을까 생각이 듭니다. 또한 틈틈히 수료생들에게 찾아와 어려운 점은 없는지 등 캠프 관련 질문 이외에도 여러가지 이야기를 들려주며 수강생들에게 편안한 분위기를 형성할 수 있도록 도움을 주셨습니다. 전에는 어려워서 질문하기 힘들었지만 여러번의 상담을 통해 매니저님과 친해져 캠프에 관련된 질문을 많이 함으로써 성공적으로 캠프 과정을 마칠 수 있었습니다.
 

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

팀원들 모두 열정이 넘쳤습니다. 랜덤으로 팀을 구성했는데요. 각 교육생들의 수준 별로 초급팀, 중급팀, 고급팀으로 구성하는 경우, 초급 실력을 가진 인원과 고급 실력을 가진 인원을 한 팀으로 구성해 모든 팀을 균등하게 구성하는 경우 등 여러 구성 방식이 있고 매니저님의 결정에 따라 달라집니다. 팀이 바뀌는 주기는 보통 큰 주제를 기준으로 변경됩니다. Java → Spring 기초 → Spring 심화 → JPA 심화 → 최종프로젝트 이렇게 5개 학습 주제에 따라 팀이 변경됩니다. 보통 1~2주이고 최종 프로젝트의 경우는 5주간 같은 팀과 함께 하게 됩니다.
팀의 협업 방식은 팀에서 정하는 방식에 따라 다르겠지만 보통 GitHub를 사용하여 협업이 이루어집니다. 저는 프로젝트를 개발하고 변경할 때, Pull Request만을 이용하여 커밋할 수 있게 하여 무분별한 내용 변경을 방지할 수 있었습니다.
 

Q. 팀원과 교류하며 가장 기억에 남는 일화를 작성해 주세요.

최종 프로젝트에서 우리 조는 오전 9시부터 오후 9시를 넘어 새벽 2~3시까지 학습하는 등 12시간을 넘어 개발에 대한 열정을 쏟아 부었습니다. 궁금한 점이나 이해가 안되는 점 등 끊임없이 소통하며 일과 시간이 끝난 이후에도 가끔 오락을 하며 친목을 도모하기도 하면서 최종 프로젝트를 진행하였습니다.
열정이 가득하고 마음이 잘 맞는 팀원과 함께 하여 저희 조는 최초로 MVP 스펙을 달성하여 제일 먼저 유저 테스트를 진행할 수 있는 성과를 내게 되었습니다. 혼자였다면 절대로 불가능했다고 생각합니다. 하지만 팀원과의 끊임없는 교류, 협업이 있었기 때문에 이러한 최종 프로젝트를 성공적으로 마칠 수 있었다고 생각했습니다.
 

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

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