[네이버 부스트캠프] 네부캠 웹풀스택 9기 챌린지를 돌아보며
길다면 길고, 짧다면 짧은 한달 간의 네이버 챌린지가 끝났습니다. 2018년도 부터 다닌 대학 생활도 마침 다음주면 끝나게 되는데요, 덕분에 감회가 정말 새로운 것 같습니다. 챌린지를 시작할 때만 해도 이거 정말 할 수 있을까 라는 고민이 많았습니다. 애초에 챌린지가 끝나고 멤버십에 대한 부분은 고려도 안했었습니다. 오히려 저에게 문제는 졸업 관련해서 학점 이슈가 생기는 바람에 1주차를 공학수학 1 수업과 함께 해나가야 된다는 것이었습니다. 그런 만큼 정말 베이직 때 처럼 끝까지 달려보자를 목표로 세우고 열심히 해나갔던 것 같습니다.
지원했던 계기를 돌아보며
처음 제가 네이버 부스트캠프를 지원 했던 이유는 단순합니다. 부족한게 많고 더 배우고 싶다고 생각을 해서였습니다. 물론 취업을 해야 되는 시기에 서있는 부분도 맞고 주변 친구들이 부족하지 않다고도 많이 해줘서 이걸 한번 더 하는 게 맞을까 라는 생각을 많이 했던 것 같습니다.
하지만 네부캠을 시작하기 전에 학점 연계 인턴십으로 인턴을 하게 되면서 현업에서 업무를 맞아 4개월 간 개발을 해보면서 업무를 잘 쳐내는 것과 잘 해나가는 것은 다르다는 것을 느꼈습니다. 특히나 제가 작업한 코드들이 다음에 오실 개발자 분이 보셔야 된다는 인지를 하며 내 코드가 과연 좋은 코드일까 라는 고민을 많이 햇었습니다. 회사 내부 사정으로 인해 관련해서 의견을 구할 개발자 분이 많이 계시지도 않아서 정말 개발 커뮤니티나 지인들에게 많이 물어보면서 교차 검증을 해나가려고 했던 것 같습니다.
그 과정에서 가장 크게 느꼈던 것이 결국 잘 하려면 기본이 탄탄해야 된다는 것이었던 것 같습니다. 무언가 설명을 듣더라도 결국 기본적인 부분이 탄탄하지 못하다 보니 놓치거나 바로 파악이 안되는 부분이 많았기에 그 부분이 가장 크게 느껴졌던 것 같습니다. 그래서 그 부분을 네부캠을 하면 채울 수 있지 않을까라는 생각을 많이 했고 인턴이 끝나가던 시기에 지원을 했습니다.
설계와 문서화의 중요성
네부캠을 하기 전에도 다양한 활동 들을 해온 편이라고 생각을 합니다. 그 과정에서 항상 부족했던 것이 설계에 대한 부분이었습니다. 물론 설계를 안한 것은 아니었습니다. 학교 전공 수업에서 소프트웨어 설계와 종합 설계 프로젝트 수업을 들으면서 소프트웨어를 설계하면서 쌓아올려가는 과정을 배웠습니다. 하지만 배웠던 클래스 다이어그램이나 시퀀스 다이어그램 같은 지식들을 토이프로젝트나 해커톤에 나가서 활용할 정도인가라고 생각을 많이 했습니다.
그래서 이번 챌린지를 하면서는 정말 그런 생각이 많이 바꼈다고 생각합니다. 특히 동료와 함께 설계와 페어 프로그래밍을 하는 활동이 저에게는 챌린지 과정 중에 가장 감명이 깊었던 활동이라고 생각합니다. 챌린지 미션을 해나가는 기본 지식 부터 하나씩 짚어나가고 서로의 의견을 공유하는 것을 밑바탕으로 설계를 쌓아올려나가 볼 수 있었습니다. 특히나 설계를 하는 과정에서 전체 프로그램의 흐름도, 클래스 다이어그램, 함수/메소드별 다이어그램을 따로 그려나갔고 이런 설계를 문서화 해둘 수 있었습니다. 그리고 문서화 해둔 설계가 페어 프로그래밍 과정으로 코드로 구현해나가는 경험을 할 수 있었습니다.
항상 설계를 가볍게 해도 된다고 느꼈던 부분은 어차피 구현하는 과정에서 에러가 생기면 그 때가서 해결 하면 되지 않을까라는 생각이 무의식 중에 있었기 때문이라고 생각합니다. 이번 챌린지를 하면서 설계를 "꼼꼼하게" 하는 것이 생각보다 시간이 많이 안드는 것을 체감 했습니다. 특히 설계를 바탕으로 미리 일어날 수 있는 에러를 예측해볼 수 있었습니다. 3주차에 와서 확연히 체감을 했지만 하면 할수록 기초를 잘 다지는 것이 얼마나 중요한지 그리고 그 다져둔 기초를 어떻게 문서로 표현하냐에 따라서 저를 포함하여 함께하는 동료들의 효율이 얼마나 올라갈 수 있는지를 체감할 수 있었습니다.
인공지능이 정말 개발자를 대체 할까?
챌린지를 하면서 가장 많이 나왔던 질문 중 하나였고, 저도 항상 궁금했던 부분 중 하나였던 것 같습니다. 실제로 제가 참여하고 있는 스마일게이트 개발 캠프 커뮤니티에서도 커뮤니티 행사 때 단골 질문이었던 게 기억에 남을 정도 입니다. 모두가 각자만의 답을 생각하고 있겠지만 저의 경우에는 힘들지 않을까 라는 생각을 했습니다.
챌린지 과정에서 읽었던 책에서 나왔던 내용 중 "프로그래머와 소프트웨어 개발자는 다르다" 라는 문구가 위의 질문에 대한 정답을 어느정도 포함하고 있다고 생각합니다. 프로그래머가 단순하게 요구사항에 맞게 코드를 작성하는 사람이라면 소프트웨어 개발자는 프로그래밍을 할 수 있을 뿐만 아니라 소프트웨어 개발에 필요한 프로그램 구조와 기획 능력 그리고 클라이언트에 맞춰 요구사항과 프로그램을 수정 할 수 있는 능력을 갖췄다고 생각합니다. 단순히 용어의 차이가 아니라 프로그램을 만들어 나가는 과정에서 코드를 작성하는 것 외에도 정말 신경써야 될 부분이 많기 때문입니다.
이번 네부캠 챌린지를 끝낼 때 작성했던 설문에 저도 30프로 정도는 gpt를 사용했던 것 같다 라고 체크를 했었습니다. 그 이유로는 gpt에게 요구사항을 던져주고 이렇게 저렇게 작성해줘를 한게 아니라 한 명의 비서 역할로써 gpt를 정말 많이 사용했었기 때문입니다. 물론 요구사항을 정리해서 던져주면 잘 짜주긴 합니다. 하지만 기능적으로 사람이 이해하는 바와는 다르게 구현을 하는 부분도 많고, 결과 값에 대해서 다르게 표출해내는 경우도 많습니다. 그리고 그렇게 구현을 하면 실력을 향상 시키는데는 도움이 안되겠죠.
그렇게 사용하기 보다는 정말 보조하는 역할로 썼을 때 효과적이었다고 생각합니다. 팀원과 혹은 홀로 설계 해둔 내용들을 점검하고 mermaid.js를 활용해서 다이어그램을 그리거나 코드에서 오류를 찾는 방식으로 활용했을 때 정말 그 성능이 극대화 되었다고 생각합니다. 물론 언젠가는 gpt가 왠만한 개발자 분들 보다 잘하는 날이 올 수도 있겠지만 그게 지금 당장은 아닐거 같다는 생각을 이번 챌린지를 하면서 했던 것 같습니다.
챌린지를 하면서 성장 한 점
이번 챌린지를 통해서 가장 이해도나 지식이 많이 올라간 부분은 역시나 자바스크립트 였습니다. 인턴을 하면서 항상 자바스크립트를 사용하지만 기본 지식이 많이 부족하다고 생각을 했었습니다. 챌린지 과정에서 평소에 사용을 하던 함수형 프로그래밍 뿐만 아니라 클래스, 정규표현식 등의 개념들을 학습하고 적용해볼 수 있었습니다.
특히나 객체지향에 대한 개념을 다져볼 수 있었고, 이걸 자바스크립트에서 하나씩 적용해볼 수 있었습니다. 이론으로만 알고 있던 개념과 지식들을 챌린지를 통해서 실제 코드로 구현하고 다양한 상황에서 활용해보며 자바스크립트에 대한 실력이 성장 했다고 생각합니다.
체력이 부족했다...
평소에 먹는 걸 좋아해서 다이어트(명목상..)를 겸한 헬스를 꽤나 오래 해왔습니다. 군 입대 시절 부터 운동을 한 지는 4년차였고, 평소에도 밤을 그냥 새는 편이라 체력이 부족할 거라고는 생각도 안했습니다. 문제는 1주차에 계절학기와 함께 하면서 생겼습니다. 계절학기에 공학수학 1을 들으면서 챌린지를 병행했고 1주차를 하면서 기말고사 준비를 하느라 화~목을 그대로 밤을 새고 작업을 했습니다. 이로 인해서 4주 전체적으로 생활패턴이 많이 무너졌던 것 같습니다. 챌린지를 하기 전에 네부캠을 해봤거나 챌린지를 했던 친구들에게 매일 밤을 샌다라고 들어서 대비를 했었지만 계절학기라는 변수가 생각보다 컸던 것 같습니다.
그래도 평소에 꾸준히 주 4,5회 씩 운동을 갔던 습관이 큰 도움이 되었던 것 같습니다. 챌린지를 하고 남는 주말이나 빈 시간에는 1시간 이상은 꼭 운동을 다녀오려고 했고 4주를 버티는 데 많이 도움이 되었던 것 같습니다. 장기적으로 버티는데 자신이 있었지만 이런 변수가 생길 수도 있구나를 체감했고 체력관리와 일정 관리의 중요성을 많이 느꼈던 것 같습니다. 특히나 챌린지를 하면서 다른 부분을 놓친게 조금 있어서 일정 관리를 필요성을 제대로 느꼈던 것 같습니다. 꾸준히 운동도 계속 가야 될 것 같고 특히나 일정 관리를 좀 더 잘 하는 방법을 고민 해봐야 될 것 같습니다.
네부캠과 함께하는 하반기
운이 좋게도 챌린지 후에 웹/풀스택 9기 멤버십을 참여할 수 있게 되었습니다. 아마 멤버십을 하는 분들 중에 취준과 함께 멤버십을 하는 분들이 많을 거라고 생각합니다. 저도 취업 준비를 하면서 앞으로 14주간 멤버십을 해볼 예정입니다. 베이직과 챌린지를 하면서 가장 부족하다고 느꼈던 점이 스스로 생각해봤을 때 학습한 내용을 정리하는 부분이 많이 부족했다고 생각합니다. 물론 필요할 때 찾아보면 되지 않나라는 생각을 할 수 있지만 결국 정리를 해둬야 빠르게 복기 하기에 유리한 건 당연하니까요. 챌린지를 하면서 최대한 함께하는 캠퍼 분들과 좋은 피드백과 상호작용을 나눠보자 그리고 끝까지 챌린지를 해내자를 목표로 세웠었는데, 멤버십에 입과 한 만큼 계속해서 그런 목표를 유지해서 다양한 경험을 할 수 있길 기대합니다.
챌린지 회고 모음
1주차 회고 - https://jacky0831.tistory.com/91
2주차 회고 - https://jacky0831.tistory.com/92
3주차 회고 - https://jacky0831.tistory.com/93