
Section 2 가 끝났다. 우여곡절이 많았지만 HA 2 를 무사히 잘 마치고 Section 3 로 넘어갈 수 있게 됐다. Section 2 를 막 시작했을 때, 뱃멀미를 하는 것처럼 너무 힘들었다는 얘기를 했었다. 그도 그럴게 Class, prototype, 자료구조 등을 갑자기 공부하니 이해도 잘 안 되고, 많이 힘들었던 것 같다. 프론트엔드가 아닌 백엔드 지식들도 배우면서 컴퓨터와 더 밀접한 개념을 배우려니 더 힘들었던 것 같다.
1. Section 2 동안에 배운 내용들
1. [ JS / Node ] 객체 지향 자바스크립트
2. [ 자료구조 / 알고리즘 ] 기초 - 재귀
3. [ 자료구조 / 알고리즘 ] 기초 - 자료구조
4. [ JS / Node ] 비동기, Node.js 모듈 (fetch)
5. [ HTTP / 네트워크 ] 기초, 실습 (http, express)
6. [ React ] 데이터 흐름의 이해와 비동기 요청 처리
7. [ React ] 컴포넌트 디자인 - 방법론, 실습
8. [ React ] 상태 관리
9. [ 배포 ] 클라이언트 빌드와 배포 (versel)
프론트엔드의 개념과 백엔드의 개념이 적절하게 섞여 있다. 이 내용들을 바탕으로 총 11 개의 미니 프로젝트를 진행했다. 프로젝트는 페어 프로그래밍으로 진행했으며 두 명이서 페어를 맺었다.
2. Section 2 좋았던 점, 아쉬운 점
기본적인 코드 스테이츠에 대한 좋은 점과 안 좋은 점은 Section 1 후기 때 작성해 놨다. 가장 기본적인 부분은 이미 이 블로그에서 했으니, 이번에는 Section 2 라서 느꼈던 것들을 얘기해보고자 한다.
https://je-developing.tistory.com/43
[코드 스테이츠] 33일차, Section1 - 시작의 아름다운 마무리
두 번의 HA 시험이 끝나고 합격 메일을 받아냈다. 드디어 하나를 끝냈는데 이 기분은 마치 군대에서 훈련소 끝낸 느낌이다. 기간도 딱 비슷하고 기초적인 것들을 압축해서 배운 것 같다. 훈련소
je-developing.tistory.com
Section 2 를 진행하며 좋았다고 할만한 점은 일단, 백엔드에 대한 기초적인 지식을 적절한 타이밍에 습득할 수 있었다는 것이다. Section 3 에서 더 자세한 백엔드 내용을 공부하겠지만, 그래도 프론트엔드와 백엔드를 적절하게 섞음으로써 React 에서 서버를 어떻게 다룰 것인지에 대해 학습할 수 있었다. 전에 Section 1 때도 얘기했지만 커리큘럼은 정말 잘 짠 것 같다. 큰 흐름을 이해하다 보면 지금 왜 이 파트를 공부하는지 알게 되는 것 같았다. 내가 전에 괜히 가이드 라인이라고 소개한 게 아니다. 길잡이의 역할은 제대로 해주었다.
다만, 좀 아쉬웠던 것은 코드 스테이츠라면 역시나, 개념적인 부분을 잘 가르쳐주지 않다는 것이다. 정확히 얘기하면 "가르쳐 주지 않는다" 가 포인트다. 가르쳐주기는 한다. 그런데 그건 sprint review 한~두 시간 정도의 분량이다. 코드 스테이츠는 기본적으로 학생들이 사이트에 들어가 코드 스테이츠 글을 읽고 직접 사용해봄으로써 개념을 터득한다. 그런데 시간이 지날수록 이 글이 "공식 문서"의 것을 번역해서 옮겨 적은 것들이 눈에 보인다. 개념을 보고 부족해서 공식 문서로 넘어가면 코드 스테이츠에서 본 내용들이 적혀 있다.
이건 좀 여러 방면에서 생각해볼 수 있다. 긍정적인 생각이라 하면 우리는 진짜 개발자로서의 역량을 기르고 있다는 것이다. 개발의 기술은 방대하고 그 발전 속도는 매우 빠르다. 우리가 지금 코드 스테이츠에서 배운 기술들이 1년 뒤에도 사용되고 있으리란 법은 없다. 실제 패스트 캠퍼스 2019년도에 만들어진 강의를 보면 지금은 안 쓰는 것들이 종종 보인다. 아무튼 이렇다 보니 개발자는 공식 문서를 보고 구글링하면서 탐색하는 능력을 길러야 한다. 마치 백과 사전을 모두 배울 수 없으니 백과 사전을 옆에 두고 모를 때마다 찾아보는 것과 비슷하다. 그런 점에서 코드 스테이츠식 공부 방법은 이후 내가 개발자를 하는데 있어서 매우 유용할 것이다.
그러나 한 편으로는 나는 돈을 내고 공부하고 있는데 이렇게 공부하는 거면 차라리 나 혼자 공식문서만 보면서 공부하면 되는 거 아니야? 라는 생각이 들 수 있다. 나만 이 생각을 하는 게 아니라 대부분의 코드 스테이츠 수강자라면 공감하고 있다. 비록 6개월이라는 긴 시간 동안 학습하는 거지만 그럼에도 그 학원 비용이 만만치 않기 때문에 현실적인 부분에서 그렇게 생각할 수밖에 없는 것 같다.
물론, 코드 스테이츠는 그 모자란 개념을 커버하기 위해 다양한 소스들을 제공한다. 첫 번째는 매일 푸는 알고리즘 문제 Toy. Toy 문제는 난이도가 상당하다. 그래서 크루분들도 수강생들이 이 Toy 문제들을 1시간 안에 풀 수 있을 거라 생각하지 않는다. 다만, 이 문제를 풀기 위해 얼마나 노력했는가를 본다. 주석으로 수도 코드를 작성하고, 이 문제를 풀기 위해 몇 번의 테스트를 돌렸는지 확인한다. Toy는 일반 알고리즘 문제들과 다른 게 테스트 케이스가 눈에 보인다. 그렇기에 테스트 케이스로 지금 내 코드가 어느 부분에서 잘못됐는지를 확인하고 고쳐 나가면서 알고리즘에 대한 이해를 일반 프로그래머스 문제들보다 더 빠르게 학습할 수 있다.
두 번째는 페어프로그래밍과 미니 프로젝트다. 처음부터 끝까지 수강생의 손으로 만드는 프로젝트는 아니지만 뼈대가 잡힌 코드에서 배운 내용들을 직접 작성해보는 방식의 공부는 굉장히 효과적이었다. 전에도 말했지만 개념만을 가지고는 개발할 수 없다. 개발과 실전이 어느 정도 균형이 맞아야 한다. 코드 스테이츠는 실전에 무게가 더 많이 실린 감이 없지 않아 있지만, 그래도 우리가 직접 코드를 작성한다는 소중한 기회가 있기 때문에 개념을 커버하는데 가장 큰 공헌을 하고 있다. 그리고 가끔씩 Sprint Review 라고 해서 크루분들이 그날의 내용을 강의해주시는 게 있는데, 그 때 진짜 이해가 완전 잘 되게 가르쳐 주시는 크루분들이 계신다. 그분들 덕분에 사는 경우가 몇 번 있었다.
이번 Section 2 동안에 아쉽다고 생각하는 것 중 하나는 TEST Case 다. 앞서 말한 미니 프로젝트를 진행할 때, 내가 올바르게 작성했는지 길을 잡아주는 것이 test case 다. 그런데 이 test case 가 별로였던 이유는 너무 쓸데 없는 오류가 많다. 최근 평일 블로깅할 때 "오늘의 오류 해결" 이라는 카테고리에 글을 잘 올리지 않고 있다. 그 오류가 내가 개념을 잘 이해하지 못해서 생긴 오류이기에 주말 개념 블로깅할 때 쓰려고 미뤄두는 것도 있다. 하지만 대부분의 경우 그 오류가 굉장히 이상할 때가 있다. 나는 분명히 아무것도 작성하지 않았는데 테스트 케이스가 모두 통과된 경우도 있었고, 같은 스터디 그룹원 분은 live server 가 켜져 있어서 테스트가 통과되지 않은 경우가 있었다. 이런 경우, 크루님께 여쭤보면 이미 예전에도 이런 오류가 있었던 걸 알고 계셨다는 듯이 바로 live server 를 꺼보라고 말씀해주셨다. test case 수정은 어려운 작업이니까 그 점은 바라지 않지만, 최소한 그런 오류가 있다는 걸 아셨을 때 사전 공지를 해주셨으면 어떨까 하는 생각이 든다.
이 부분에서 가장 최악을 찍었던 게 HA 2 였다. HA 는 수강자에 입장에서 매우 중요하고, 긴장되는 순간이다. 그런데 처음 문제를 풀기 시작했을 때 Node 버전이 16이 아니었다는 이유로 화면이 렌더링 되지 않았다. 이전까지 Node latest version 으로 과제들을 무리 없이 해결했는데 갑자기 에러가 생기니 너무 당황스러웠다. 다행히 2시간 쯤 뒤에 Node 버젼을 16으로 바꾸라는 공지가 올라와서 해결은 잘 했다. 그런데 그 공지를 보지 못한 동기분은 제출 2시간 전이 될 때까지 오류를 껴 안은 채 진행해야 했다. 그리고 Node 버전을 16으로 올렸지만 그럼에도 오류가 해결이 되지 않은 동기분이 글을 올렸을 때, 올라온 공지 글은 "환경에 대한 에러 사항을 핸들링 하는 것도 HA 과정의 일부입니다." 였다. HA 전에 사전 공지로 개별적인 환경이 잘 세팅되어 있는지 확인해 달라는 공지를 받았다. 이전까지의 코드 스테이츠 과제를 진행할 때 문제가 없던 세팅과 환경으로 준비했다. 그런데 HA 때, 그것도 여러 수강생이 공통적인 오류를 맞닥뜨렸다면 그 부분은 코드 스테이츠의 잘못이라고 생각한다.
그렇다고 코드 스테이츠에 들어온 것을 후회하는가? 절대 그렇지 않다. 비록, HA 에서 큰 아쉬움이 남기는 했다. 하지만, 그럼에도 후회하지 않는다.
Section 1 을 끝내고 나서의 나보다 Section 2 를 끝내고 나는 훨씬 성장해 있다.
개발자로서 지녀야할 역량, 공식 문서를 보면서 에러를 핸들링하고 모르는 개념이 있다면 계속 찾아보는 스킬이 늘었다. 이건 일반적인 주입식 학원에서는 기를 수 없는 역량이라고 생각한다. 코드 스테이츠가 자신하는 것처럼 정말 개발자로서 지녀야할 가장 기본적인 역량을 기르고 있다는 건 부정할 수 없으며 내가 코드 스테이츠를 선택해서 좋다고 생각하는 가장 큰 이유다.
3. Section 3 에 대한 각오
먼저, 오직 백엔드를 배운다는 점이 나에겐 너무 무겁다. React 를 코드 스테이츠에서 배우지 않기 때문에 React 공백 기간이 한 달 정도 생기는 것이다. 프론트 엔드를 희망하는 나로서는 이 한 달의 공백은 매우 크다
그렇기에 다음과 같은 목표를 설정한다
- 개인 프로젝트를 진행하자
나 혼자서라도 리액트를 사용하고 CSS 에 대한 이해도를 높이자.
- 백엔드에 흥미를 갖자
내가 프론트엔드에 흥미를 가졌기에 더 열심히 공부했던 것처럼 백엔드에도 흥미를 가져서 풀스택 개발자가 되기 위해 노력하자 - 절대 자만하지 말자
지금 되돌아 보면 Section 1 때는 정말 기초를 배웠던 것이다. 그런데 이 생각은 아마 내가 매 Section 을 거듭할 때마다, 더 나아가면 커리어를 쌓아갈 때마다 할 것 같다. 그러니, 언제나 지금의 나는 내 실력에 자만해서는 안 된다. 저번 블로깅에서도 언급했듯이 늘, 내 실력에는 만족하지 말되 다만 내가 지금까지 해온 노력에 대해서는 자부심을 갖도록 하자
'코드스테이츠 > 코드스테이츠 @ 개발 일지' 카테고리의 다른 글
[코드 스테이츠] 78일차, "다시 일상으로" (0) | 2021.10.04 |
---|---|
[코드 스테이츠] 77일차, "개인 프로젝트하며 느끼는 점들" (0) | 2021.10.03 |
[코드 스테이츠] 75일차, "지금 개인 프로젝트 중이라..." (0) | 2021.10.02 |
[코드 스테이츠] 74일차, "Section 3 넘어가기 전 휴식" (0) | 2021.09.30 |
[코드 스테이츠] 73일차, "HA 2 (2)" (0) | 2021.09.29 |