[부트캠프 후기]제로베이스 백엔드 취업 스쿨

오늘내일·2024년 2월 12일
0

🌱 시작하게 된 배경

개발자에 관심을 가졌던 최초의 기억은.. 대학교 교양수업에서 배웠던 파이썬이다. 수업을 듣는데 '어? 쉬운데?', '어? 재밋는데?'라는 생각을 했었다. 비록 교양수업이지만 시험성적도 잘 나왔었다.(물론 재수강이라 1등을 해도 b+밖에 안 나왔지ㅠ) 개발에 대해 흥미는 있었지만 빨리 취업해야 된다는 생각에 직업에 대한 큰 고민없이 빨리 갈 수 있는 곳으로 취업을 했다.

대출 영업을 하면서 술도 많이 먹고, 마초 문화(?)때문에 강압적인 문화 등 ISFJ인 나에게 업무를 하는 방식이 맞지 않다는 걸 점점 느꼈다. 물론 성과를 내고 팀장도 해보고 했었지만 내 일에 대한 회의감이 들때마다 떠올랐던 것이 개발자였다. 사실 개발자 실무를 해보기 전까진 정확히 알 수는 없지만 내향적이고 몰입하는 걸 좋아하는 나에게 개발자가 맞는 옷일 것이라 생각했다. 그래서 하던 일을 그만두고 용기를 내어 도전하게 된 것이다.

그런데 개발 기술을 배우기에 막막해서 와이프의 추천으로 부트캠프를 알아보고 있었다. 여러 부트캠프를 비교하다 제로베이스를 선택했다. 부트캠프를 선택할 때 처음 고민한 것이 오프라인과 온라인 중 어떤 것으로 진행할 지 였다. 나는 오프라인으로 서울까지 오며 가며 시간을 줄이기 위해서 온라인으로 선택했다.(왔다 갔다 귀찮은 것도 있었지..) 그 다음으로는 온라인으로 진행함에도 매일 출석체크를 하는 것이 싫었는데 제로베이스는 딱히 출석체크를 요구하지 않아 자율적으로 하고싶었던 나에게 적합한 부트캠프였다. 그렇다고 공부를 적당히 하면 되는 것은 아니다.

커리큘럼


제로베이스 백엔드 스쿨 커리큘럼은 위와 같은데 위 과정 하나하나 회고를 해보려고 한다.

🍏자료구조/알고리즘 with 코딩테스트

부트캠프를 처음 시작하면 백엔드는 일단 java 언어에 익숙해지도록 java 기초에 대해서 수강을 하고 얼마 안 있어 자료구조/알고리즘 강의를 수강한다. 자료구조/알고리즘 강의를 수강함과 동시에 일주일에 한번씩 코딩테스트가 진행된다.

나는 부트캠프를 하기 전 python으로 반복문 정도 작성할 수 있는 수준이었다. 그래서 처음으로 java 언어를 접했을 때 객체의 상속, 접근제어자 등 낯설게 느껴지고 배워도 이게 왜 필요한 지 와닿지 않았다.(나중에 개인, 팀 프로젝트를 진행하면서 아 그게 이런 의미구나라고 생각했다.)

자료구조/알고리즘 강의는 예전에 고등학교 때 배우는 수학의 느낌이었다. 특히 초반에 queue, stack 등 기본적인 자료구조를 배울 때는 그렇게 어렵지 않다는 느낌이었는데, 후반부에 dp, 백트랙킹 등 배울 때는 너무 어렵게 느껴졌다.

그렇게 강의를 들으면서 코딩테스트를 진행했는데 자료구조/알고리즘 강의가 그러했듯 초반에는 곧 잘 80점 이상을 받기도 해서 자신만만했었다. 그러나 후반으로 갈 수록 어려워져 50점도 못 받는 경우가 허다했다.

부트캠프 막바지인 지금도 50점 넘기기가 어렵다. 코딩테스트를 매주 진행하며 익숙해져서 쉬운 문제는 풀지만 어려운 문제는 여전히 손도 못 대고 있다. 생각해보면 코딩테스트는 꾸준함이 중요한 것 같다. 나는 과제를 하거나 강의가 밀렸다는 핑계로 자료구조/알고리즘 복습을 게을리 했다.(거으 안 했..) 다행히 제로베이스 백엔드 스쿨이 좋은 점이 강의를 수강기간 이후에도 볼 수 있다는 점인데, 백엔드 스쿨 종료 후에 조금씩이라도 복습을 하며 코딩테스트 점수를 올려 볼 생각이다.

🍎컴퓨터 공학

컴퓨터 공학은 워낙 아는게 없어서 처음 강의 들으면서 침흘리고 있었던 적이 많았다. 강의를 들으면서 침흘리면서도 제로베이스에서 제공하는 컴퓨터 공학 200문제 이상을 풀어야 했다. 나는 문제를 풀면서 당연히 아는 것이 없기 때문에 챗gpt에게 엄청 물어보면서 문제를 풀었었는데, 내가 워낙 컴퓨터 공학 지식이 없었기 때문에 챗 gpt한테 물어봐도 틀리는 문제가 더러 있었다.

그리고 강제성이 있는 것은 아니지만 제로베이스에서 블로그에 컴퓨터 공학 개념을 정리해서 발간하는 걸 권장했었다. 나도 최대한 시키는 대로 블로그에 컴퓨터 공학 개념 정리를 했었는데 내가 정리했던 내용들이 확실히 기억에 오래 남아있다. 물론 블로그 발간도 요즘은 못 하고 있지만 앞으로 좋은 개발자가 되기 위해서라도 일주일에 하나씩 발간하는 습관을 가지면 좋을 듯 하다.(아래는 내가 정리했던 개념들..)

백엔드 취업스쿨이 끝이 보이는 지금도 복습을 게을리해서 컴퓨터 공학에 대해 아는게 거의 없다. 그래도 강의와 퀴즈를 풀기 위한 검색, 블로그 정리를 통해 어느정도 컴퓨터 공학에 나오는 단어들과 친해질 수 있었다.

그리고 개인, 팀 프로젝트를 끝마치고 나중에 다시 컴퓨터 공학 개념을 복습하면 내가 작성했던 코드 및 배포하면서 생겼던 문제들과 컴퓨터 공학 개념이 맞물리면서 조금 더 선명하게 이해할 수 있을 것 같다.

🍊 OOP와 DB

본격적으로 스프링 프레임워크 강의를 듣기 전에 OOP(Object Oriented Programming), DB(DataBase), 웹프로그래밍에 대한 강의를 수강하였다.

OOP(객체지향 프로그래밍)은 java와 연결하여 상속, 다형성, 추상클래스, 인터페이스 등을 강의로 들었다. 강의 들을 당시에는 이러한 개념이 정확히 어디에 쓰이는지 알 수가 없어서 선명하게 이해가 되지 않았었다. 그런데 개인, 팀프로젝트를 하면서 객체지향이라는 개념을 아주 조금씩 이해하고 있는 듯하다.

그리고 DB와 웹프로그래밍 기본 개념을 수강했다. 백엔드 취업 스쿨이다 보니 DB가 중요했고 기본적으로 SQL query 작성에 대해서 배울 수 있었다. 웹프로그래밍 기초로 JSP를 사용하여 HTML 코드에 java 코드를 넣어 동적웹페이지를 생성하는 방법을 배웠다.

사실 SQL 쿼리에 대해서 다음 과정인 스프링 프레임워크 강의를 들으면서 굳이 배워야 되나 하는 생각이 들었다. 왜냐면 JPA를 통해서 query를 거의 직접 작성할 일이 없다고 생각했기 때문이다. 그러나 프로젝트를 진행하면 할 수록 기본적으로 query가 중요하다는 생각이 든다. 복잡한 query는 queryDSL을 사용하여 직접 작성해야 하기도 하고, JPA를 사용하더라도 query가 내 의도대로 작동하는지 확인을 해야 하기 때문이다. 따라서 조금 여유가 생기면 SQL 관련해서는 추가로 공부를 하면 좋을 듯하다.

그 다음으로 과제가 나오는데 프로그래밍에 대한 이해도가 낮았던 나에게 가장 힘들었던 과제였다. 과제 주제를 간략하게 말하면 open API에서 공공와이파이 정보를 받아서 가공하고 간단한 웹페이지를 만들어 공공와이파이 정보를 제공하는 것이었다. 과제를 하면서 가장 애먹었던 점은 open API를 호출해서 받은 json 포맷의 정보를 파싱해서 객체로 만드는 작업이었다. 아무것도 몰랐던 나에게 처음 만난 json 파싱은 막막하게 다가왔다. 더욱이 과제를 하려면 처음에 json 파싱부터 해야 데이터를 가공하고 웹페이지를 만드는데 시작부터 막혀서 막막했던 기억이 있다.

우여곡절 끝에 과제를 다 했고 다 하고 보니 이 과제를 통해서 웹 프로그래밍에 대해 프론트엔드가 어떤 역할인지 백엔드가 어떤 역할인지 얕게나마 이해할 수 있었다. 과제하는게 힘들었던 만큼 뿌듯하기도 했다.

🍋스프링 프레임워크

이제 스프링 프레임워크에 대해 약간의 선수지식을 강의로 듣고 강사님과 함께(물론 온라인이지만 내 마음만은 강사님과 함께) 프로젝트를 하나하나 실습했다.
이 강의를 들으면서 처음에는 아무것도 이해하는 것 없이, 무지성으로 그냥 강사님이 코드 작성하는 걸 따라서 작성했었다. 그러다보니 이렇게 해서 내 실력이 되기는 할까하는 불안감이 생겼다.

불안감이 스물스물 피어오를 때 쯤 제로베이스에서 '스프링부트 핵심가이드' 책 정리 과제를 주었다. 권장사항이었지만 불안감이 가득했기 때문에 최대한 열심히 책을 정리해서 블로그에 올렸다. 개인적으로 제로베이스에서 권장한 책 정리 미션이 신의 한 수라고 생각했는데, 그 이유는 강의를 보면서 무지성으로 작성했던 코드들이 책을 정리하면서 '아 이런 의미였구나'하고 깨달으며 이해가 조금씩 됐기 때문이다.

🍉개인 프로젝트

그렇게 스프링 프레임워크에 대해 강의수강과 책 정리를 통해 익숙해져서 개인 프로젝트를 진행한다. 개인 프로젝트는 자유주제로 기획 및 ERD작성부터 꼼꼼하게 진행한다. 멘토님께서 처음 기획 및 ERD 작성하는 사항까지 꼼꼼하게 리뷰를 해주신다. 그래서 사실 초반에 기획으로 READ ME 작성하는 부분에 많은 압박을 받았다. 그런데 확실히 멘토님 말씀대로 기획과 ERD를 꼼꼼하게 작성하니 코드를 작성할 때 어느정도 편한 부분이 있긴 했다. 그리고 코드를 git에 PR을 작성하면 멘토님께서 리뷰를 해주신다.

개인적으로 개인 프로젝트에서 가장 아쉬웠던 게 이 당시에 몸이 안 좋아서 프로젝트를 완벽하게 마무리하지 못 한 점이다. 그러다보니 코드리뷰를 많이 못 받았고 배포까지 스스로 해 보지 못 한 점이 많이 아쉽다. 아쉬운 부분은 나중에 혼자 시간을 내어서라도 프로젝트를 배포까지 마무리해야 겠다.

🍇팀 프로젝트

이 글을 쓰고 있는 지금은 팀 프로젝트가 막바지이다. 우리 팀 프로젝트 같은 경우에는 백엔드 4명, 프론트엔드 2명으로 진행되고 있다. 팀 프로젝트가 아직 끝나진 않았지만 진행하면서 느꼈던 점을 써보려고 한다.

팀 프로젝트 초반에 다른 팀원들과 대화해보니, 백엔드 4명 중 상대적으로 내가 실력이 떨어진다는 걸 느껴서 스스로 주눅이 들기도 했었다. 어찌저찌 폐 안 끼치려고 따라가고 있는 중이다.(다른 팀원들도 그렇게 생각해주면 좋겠다.ㅠㅠ)

팀 프로젝트를 하며 실력이 많이 늘고있다는 느낌을 받는다. 그렇게 느끼는 이유 중 가장 큰 것이 코드 리뷰인 듯 하다. 다른 팀원이 내 코드를 보고 리뷰를 해주면 내 코드의 부족한 점을 배우거나, 내가 알고있는 내용들을 정리해서 다른 사람에게 전달할 수 있기 때문이다.

그리고 다른 사람의 코드를 보면서 리뷰를 하면 내가 직접 써 보는 기술이 아니어도 전체적인 흐름을 배울 수 있기도 하다. 꼼꼼하게 보고 다른 팀원이 코드를 이렇게 작성한 이유가 궁금해서 물어보면 배우는 것이 많다.

백엔드 스쿨을 마친 후

스스로 조금 더 열심히 하지 못 했다는 아쉬움이 없진 않지만, 제로베이스 백엔드 스쿨을 하면서 처음 아무 것도 모르던 상태에서 지금은 코드를 작성할 수 있고 모르는 부분은 찾아서 배울 수 있는 정도는 된 것 같다.

팀 프로젝트를 하고 나면 위에서 6개월의 부트캠프를 진행하며 스스로 부족하다고 생각했던 부분을 채워가며 이력서를 제출해 보려고 한다. 지금까지 배운 부분에서 조금씩 더 배우며 나아지면 성공적인 취업도 가능할 것 같다!!!

제로베이스 바로가기 : https://zero-base.co.kr/category_dev_camp/school_BE

* 해당 게시글은 소정의 지원금을 받고 작성되었습니다.
profile
다시 시작합니다.

4개의 댓글

comment-user-thumbnail
2024년 5월 22일

취업 하셨나요?!

2개의 답글