본문 바로가기
회고/네이버 부스트캠프 9기

[네부캠] 네이버 부스트캠프 9기 - 베이직 과정 회고

by NewCodes 2024. 7. 13.

 

 

안녕하세요. NewCodes입니다!

 

 

네이버 부스트캠프 9기 

베이직 과정이 어떤 과정인지 알아보고, 

여기서 제가 얻었던 것들을 진솔하게 적어보겠습니다. 

 

 


📌 부스트캠프 - 베이직 과정 소개

 

부스트캠프는 어떤 부트캠프인가? 

부스트캠프에서는 '베이직 - 챌린지 - 멤버십'으로 총 5개월의 단계적 과정을 거칩니다. 이를 통해 지속 가능한 개발자로 성장하기 위한 기본기문제해결력을 키웁니다. 

 

그리고 베이직 이전에 1차 코테, 챌린지 이전 2차 코테, 멤버십 이전 3차 코테가 존재합니다. 정말 '단계적'으로 성장을 유도하는 게 모집 프로세스에서도 보이네요!! 힘들긴 하지만 성장에는 분명 도움 될 거라고 생각합니다 ㅎㅎ.. 

 

제가 부스트캠프에 지원했던 이유는 '기본기' 때문입니다. 뻔한 말이긴 하지만, 어떤 분야이든 기본기가 가장 중요하다고 생각합니다. 그리고 이 기본기를 잘 다질 수 있는 곳이 부스트캠프라 판단했습니다. CS 지식, Web 전반의 지식 등동료와 함께 주도적으로 학습할 수 있는 곳은 이곳이 유일했습니다.

 

 

베이직은 어떤 과정이지?

 

베이직은 이번 9기에서 신설된 과정입니다. 총 2주의 과정 동안 컴퓨터적 사고를 기반으로 프로그래밍하며 문제를 해결합니다. 매일 새로운 미션이 주어지고, 이를 해결하기 위해 자기 주도적으로 학습하고 성장해야 합니다. 

 

베이직에서 따로 꼭 참여해야 하는 코어 타임은 없습니다. 매일 새로운 미션을 해결하여 제출만 하면 됩니다. (다만, 금요일에는 그룹 미션이 있어 정해진 시간에 참여해야 합니다.)

 

 

베이직에서의 하루 일과는?

베이직에서의 하루는 다음과 같이 지나갑니다. 사람마다 다르겠지만 저는 아래 과정을 모두 마치는 데까지 4~5시간이 소요됐습니다. 

  1. 미션 요구사항 분석 및 설계 -> 풀이
  2. 미션 풀이 저장소 제출 (+리드미)
  3. 학습내용 톺아보기
  4. 수료생의 접근법 시청 및 동료 저장소 살펴보기
  5. 셀프 체크리스트
  6. 데일리 회고

 


👨🏻‍💻 베이직 이전의 나

베이직에 참여하기 이전의 저의 실력은 다음과 같았습니다. 참고해 주시면 감사하겠습니다. (링크는 관련 자료입니다.)

 

  1. 웹 개발: Java + Spring으로 게시판 웹 만들 수 있는 수준
  2. 알고리즘: 프로그래머스 3700등, 백준 골드5
  3. CS 지식: OS, DB, Network 등 기초 개념 설명할 수 있는 수준
  4. JavaScript: 간단한 코드만 작성 가능한 수준

 

이 상태에서 '1차 문제 해결력 테스트'에 응시했고, '2차 문제 해결력 테스트 대상자'로 선정되었습니다. (1차 코테 정보는 아래 링크 참고해 주시면 되겠습니다.)

 

1차 문제 해결력 테스트 회고

 

[네부캠] 네이버 부스트캠프 9기 - 1차 코딩테스트 회고

안녕하세요! NewCodes입니다!   이번 네이버 부스트캠프 9기에 지원했습니다! 자기소개서와 포트폴리오를 열심히 작성하고~~1차 코딩테스트를 봤습니다!   2024년 6월 15일에 진행한네이버 부스

newcodes.tistory.com

 

베이직 과정에 참여하기로 했습니다! 베이직을 듣지 않아도 다음 코테를 볼 수 있지만, 베이직에서도 얻어갈 게 분명 있을 것 같아서 지원했습니다. 그러면 제가 2주 동안 뭘 얻었는지 살펴보시죠 ㅎㅎ

 

 


🌈 베이직에서의 성장 경험

1. 문제 해결력 +1 업그레이드 

 

문제 해결력이라는 게 눈으로 보이는 건 아니지만, 조금은 더 성장한 게 느껴졌습니다. 핵심만 정리하자면 다음과 같습니다.

 

1. 우선 저만의 문제 해결 프로세스가 조금은 정립되었습니다. 미션이 주어졌을 때, 이를 분석하고 학습하고 해결하고 회고하는 데까지 하나의 사이클이 익숙해졌습니다. 덕분에 챌린지 때 조금은 더 원활하게 미션을 수행할 수 있을 것 같습니다. 

 

2. 요구사항을 읽고 설계했던 게 기억에 남습니다. 특히, UML 다이어그램을 통해서 특정 객체의 상태 변화를 그리거나 데이터 흐름 및 데이터 구조를 표현한 경험이 생각나네요. 과거에는 UML 다이어그램을 어렴풋이 접하기만 했지 어떻게 그리는지 어떤 요소들이 있는지 자세히 알지는 못했었습니다. 하지만, 이번 기회를 통해서 다이어그램을 직접 그려볼 수 있었습니다. 

 

  이 경험 덕분에 다음에 다이어그램을 그릴 일이 생기면, 부담감 없이 잘 그릴 수 있을 것 같습니다!! 참고로 다이어그램 그리는 사이트 draw.io 적극 추천합니다!! 웹에서 바로 접근 가능하고 사용법도 직관적이어서 금방 익힐 수 있었습니다. 

 

 

2. JS 언어 숙련도 향상

원래 저는 JS로 간단한 코드만 짤 수 있는 수준이었습니다. 하지만, 이제는함수형 프로그래밍을 이해하고 그 특징을 이용한 코드를 짤 수 있게 되었습니다.고차함수, 클로저, 비동기등에 대해 더욱 익숙해졌습니다.

 

함수형 프로그래밍 개념 간단히 정리

 

 

+) 아래 영상 정말 추천합니다..!!! 

 

또한, 클린 코드로 작성하기 위해서 노력을 많이 했었습니다. 특히 변수, 함수 네이밍과 함수 분리에 대해 신경을 많이 썼습니다. 개인적으로 이 두 가지만 기본적으로 잘해도 코드가 훨씬 보기 편하더라고요 ㅎㅎ 

 

JS로 클린코드를 설명한 문서도 읽기도 했습니다. 아직 다 읽진 못했지만, 해당 문서 추천합니다!!

https://github.com/sbyeol3/clean-code-javascript-kr

 

위 문서 읽을 때 영어 원문도 같이 펼쳐서 읽으시는 걸 추천합니다. 오타가 많은 건 아닌데 1~2개씩 있더라고요. 그리고 의미가 모호한 부분은 영어 원문을 참고하면 훨씬 이해가 더 잘 됩니다!!

 

그리고 JS 테스트 프레임워크인 Jest를 경험해보기도 했습니다. 이를 통해 테스트 코드를 짜서 직접 미션 풀이 코드를 테스트해보기도 했습니다. 이건 매주 하진 못했지만, 그래도 경험한 것 자체에 의의를 두고자 합니다 ㅎㅎ 

 

 

3. 디버깅 기능 드디어 활용했다!

저는 평소에 IDE에 내장된 디버깅 기능을 잘 사용하지 않았습니다. 그 대신 매번 출력 찍어보는 습관이 있었습니다. 하지만, 이번 기회에 디버깅에는 어떤 기능들이 있고 어떻게 사용하는지 알게 되었습니다. 덕분에 이제 디버깅을 활용할 수 있게 되었어요!!

 

디버깅 기능을 활용하기 위해서 꼭 알아야 하는 것들에 대해 간단히 요약해 봤습니다!

  • Debug View
    • VARIABLES: 지역 변수, 전역 변수 볼 수 있음
    • WATCH: 변수에 대해 표현식 설정해서 그 값 볼 수 있음
    • CALL STACK: 어디를 통해서 함수가 호출되었는지 볼 수 있음
    • LOADED SCRIPTS: 외부 모듈을 포함해서 현재 실행 중인 코드의 스코프에 load된 모든 script를 보여줌
    • BREAKPOINTS: 중단지점. 체크박스를 사용해서 특정 breakpoint를 활성화 또는 비활성화할 수 있음

  • Debug Toolbar
    • Continue(넥스트): 현재 디버깅 지점에서 다음 중단점까지 실행
    • 스텝-오버: 현재 줄의 코드를 실행하고, 그다음 줄로 이동 (함수 호출을 만나면, 함수 내부로 들어가지 않고 함수 호출 후의 다음 줄로 이동)
    • 스텝-인: 현재 줄의 코드를 실행하고, 함수 호출을 만나면 그 함수의 첫 번째 줄로 이동
    • 스텝-아웃: 현재 함수의 나머지 부분을 실행한 다음 일시 중지

 

4. 그룹 미션 - 함께 하는 것의 중요성

그룹 미션을 통해서는 함께 하는 것의 중요성을 다시금 느꼈습니다. 일례를 들어보겠습니다.

 

특정 알고리즘에 대해 다룬 그룹 미션이 있었습니다. 그 알고리즘에 대해 제가 잘못 이해한 건 아니지만, 핀트를 잘못 잡고 있었던 부분이 있었습니다. 처음에는 제가 제대로 이해한 줄 알았습니다. 하지만, 동료들과 함께 그 알고리즘을 바탕으로 설계하는 과정에서 충분한 의사소통을 핀트를 올바로 잡을 수 있었습니다. 

 

자세히 말하자면, 저는 해당 알고리즘 원리 자체는 이해했었지만 그 알고리즘이 사용되는 배경, 이유 등은 인지하지 못하고 있었습니다. 하지만 동료 분께서 이 지점을 잘 짚어주셨습니다ㅎㅎ 함께 하면 확실히 이런 디테일적인 부분에서 혼자 하는 것보다 훨씬 더 나아지는 것 같습니다. 제가 못 보던 걸 동료는 볼 수 있으니까요! 반대도 마찬가지고요!

 

그리고 함께 학습하는 것의 효용을 극대화하기 위해서는 개인적으로 아래와 같은 태도가 꼭 필요하다고 생각합니다. 

  1. 질문 편하게 하기!
  2. 절차, 계획을 세우기!
  3. 상대방 배려하기!

챌린지 때도 이를 잘 지켜보겠습니다 ㅎㅎ

 

 


⭐️ 베이직에서 얻은 깨달음 정리

https://webzine.daesoon.org/m/view.asp?webzine=309&menu_no=5180&bno=9586&page=1

 

저에게 있어 베이직은 한 템포 멈춰 서서 초석'을 다질 수 있는 시간이었습니다. 구체적으로는 JS 숙련도, 디버깅 활용, 문제해결력 등을 얻었습니다. 그리고 여기에 더해 두 번의 그룹미션 경험도 쌓게 되었고요.

 

기간 자체는 짧았고 이것 자체만으로는 큰 성장을 했다고 보기는 어렵겠지만, 앞으로 큰 성장을 위한 밑바탕이 되었다고 생각합니다. 이를 바탕으로 챌린지에서도 성장하는 경험을 더더욱 많이 쌓고 싶습니다. 

 

베이직을 처음 시작할 때 제가 세웠던 목표가 있었습니다.

  1. 나만의 문제 해결 프로세스 만들기 
  2. 데일리 회고 습관 만들기 
  3. JS 숙련도 향상

이 3가지 모두 달성했네요 ㅎㅎ 문제 해결 프로세스 템플릿 형식으로 만들어뒀습니다. 이는 챌린지 때 활용해 보려고요! 베이직이 끝난 지금도 데일리 회고 꾸준히 하고 있고요! JS 실력도 조금은 더 늘었습니다!

 

아쉬웠던 점은 동료의 미션 저장소를 보긴 했지만, 리뷰를 달거나 코멘트를 남기는 활동은 하지 않았습니다. 이와 같은 활동도 주도적으로 더 했다면 얻어가는 게 더 많았을 것 같습니다. 챌린지에서는 이 아쉬움이 남지 않도록 코드 리뷰도 열심히 해보고자 합니다!

 

 

베이직을 통해 얻은 깨달음 압축해서 3가지로 정리해 보겠습니다.

 

1. 문제 진득하게 분석하자. 구현 후에 요구사항 한번 더 체크하자.

2. 문제에 갇히면 안 된다. 환기하는 시간을 가지자.

3. 그룹 활동할 때 주저 없이 질문하자. (좋은 질문을 해야 된다는 강박을 버리자.)

 

 


🎯 베이직 이후, 나의 목표

 

이제 챌린지에서의 목표를 세워보겠습니다. 혼자 공부할 때는 얻을 수 없었던 것들을 주로 얻어보고자 합니다. 4주 간 해당 목표를 매번 상기하며 달성할 수 있도록 노력해 보겠습니다. 

 

  1. 미션 뿌수기
    • CS 지식: 나만의 언어이되, 다른 사람도 볼 수 있도록 정리하기
    • 코드: 한 줄 한 줄 근거, 생각이 담긴 코드를 작성하기
  2. 피어 세션 적극적으로 참여하기
    • 리뷰어로서: 상대방을 배려하며, 도움이 되는 피드백을 하자. 
    • 리뷰이로서: 의견의 다양성을 수용하며, 최대한 배울 점을 보자.
  3. 커뮤니티 활동 활발히 하기
    • 공유: 대부분 알고 있지 않을까? -> 분명 도움 될 사람은 있다. 편하게 공유하자. 
    • 질문: 이런 질문해도 될까? -> 이런 생각하는 것 당연. 하지만, 두 번 이상 생각하지 말자.

 

베이직 회고 글 여기서 마치겠습니다. 시간 정말 빠르네요. 어느새 저는 챌린지 회고 글을 쓰고 있겠죠?!


 

부스트캠프 관련 이미지 출처: https://boostcamp.connect.or.kr/

 

부스트캠프

개발자의 지속 가능한 성장을 위한 학습 커뮤니티

boostcamp.connect.or.kr

 

 

 

+) 이 글은 베이직 Review 우수 후기에 선정되었습니다~~~!! 🥳

감사합니다 ㅎㅎ