본문 바로가기
후기

🐰 엘리스 SW 엔지니어 트랙 6기 수료와 회고 (주차별 수업 후기)

by 카누가 좋아요 2023. 12. 14.

엘리스 🐰

 

 

2023.08.07부터 2023.12.02까지 진행된 엘리스 SW 엔지니어 트랙 6기가 종료되었다...! 😊

길다고 하면 긴 시간이고, 짧다고 하면 짧은 시간이었지만 (개인적으로는 길게 느껴졌다🥹) 4개월 동안 정말 많은 것을 경험하였고 부트캠프를 진행하기 이전 기간보다 더 빠르게 성장할 수 있었다.

지난 4개월을 쭉 돌아본다는 느낌으로 후기글을 작성해 보려 한다!

 

 

 

🛫 트랙 지원하기

지원과 합격 후기는 다른 글에 기록해 두었다.

엘리스 SW 엔지니어 트랙 6기, AI 트랙 9기 지원 후기 (tistory.com)

 

엘리스 SW 엔지니어 트랙 6기, AI 트랙 9기 지원 후기

네이버 부스트캠프에서 탈락하고 나서 나중에 있을 다른 부트캠프를 준비하기 위해 계속 공부중이었는데 엘리스 트랙에 대한 광고를 보고 SW 트랙과 AI 트랙 모두 지원해 보았다. 0️⃣ 엘리스

developingdiaryoflily.tistory.com

 

사실 다른 부트캠프 지원을 준비하려고 코딩 테스트와 CS 공부를 하고 있는 상태에서 엘리스 부트캠프 공고를 보게 되었고, 6기 지원 마감이 얼마 남지 않은 시점에 지원하게 되었다.

거의 막차를 탄 것이었는데, 합격하고 나서도 개발 공부를 계속 하여 거의 쉬지 않은 상태로 트랙을 시작하게 되어서 트랙 수강 중간에 여유 있게 7기에 들어갈 걸 그랬나 생각도 많이 했지만 끝나고 생각해 보니 내가 몰랐던 것들을 조금이라고 더 빨리 경험할 수 있었고, 6기에서 좋은 동료들을 만난 거 같아 6기에 들어간 것을 후회하지 않는다.

 

지원할 시점에는 막연하게 이 과정을 잘 해낼 수 있을까 두려움을 조금 느끼면서도 어려운 것도 잘해낼 수 있을 것이라는 자신감도 같이 있었는데, 솔직하게 말하면 지원할 때 생각했던 것보다 훨씬 더 힘들었던 거 같다.내가 나에 대한 기대치가 높았던 것도 있고, 새로운 기술들을 쉴새 없이 익히고 빠르게 프로젝트에 적용해야 하는 부분에서 살짝 벽을 느꼈던 거 같다.

타 부트캠프도 마찬가지겠지만, 부트캠프 들어가기 전에는 마음을 단단히 먹고 들어가는 게 좋은 거 같다!

그리고 0부터 시작하려고 하는 것보다 최대한 많이 배우고 들어가는 것이 본인의 성장에 훨씬 더 도움이 되는 거 같다.

 

 

 

🏃‍♀️ 전반적인 트랙 진행 과정

1️⃣ 시간표 : 월, 수, 금 - 온라인 강의 7시간 수강 / 화, 목 - 오전 10시부터 오후 6시까지 실시간 수업 / 토, 일 - 휴일

월, 수, 금은 이미 제작되어 있는 강의와 실습 과제를 수행하며 7시간을 채우면 된다. 엘리스 자체 플랫폼에 시간이 기록되게 되고, 24시간 안에 7시간을 채우면 출석이 인정된다. 일찍 끝나서 7시간이 다 채워지지 않았을 때에는 그냥 강의 틀어놓고 시간을 채우면 된다.

 

화, 목은 hrd net 어플 qr 체크를 통해 출석을 하게 되고, 오전 10시부터 오후 3시까지 이론 수업, 오후 3시부터 오후 6시까지 실습 수업이 진행된다. 물론 12시에 점심시간 1시간, 1교시 끝날 때마다 쉬는 시간 있다. 이론 코치님, 실습 코치님 따로 계시고 강의는 엘리스 화상 강의실에서 진행되고, 소통은 디스코드 채팅으로 진행한다. 

 

토요일, 일요일은 휴일이다. 물론, 프로젝트 기간에는 여유로우면 살짝 쉬게 될 수도 있고, 그렇지 않을 수도 있다. 그리고 주차 테스트라는 게 있는데, 주말 동안에 풀어서 제출하면 된다. 이것도 응시율이  

 

🔊 참고로 몇 번 지각하고 결석하는 거로 트랙 이수 제한이 되지는 않는다. 진도율 좀 못채워도 되므로 나중에 발견하더라도 당황하지 않아도 된다! 그렇다고 너무 소홀히 하면 진짜 수료 못할수도 있으므로 적당히 째야 한다. 그리고 프로젝트는 필수 이수 사항이라고 한다! 

 

 

2️⃣ 공지, 소통 수단 : discord, notion

디스코드는 공지와 질문, 실시간 수업 시 소통 수단으로 쓰인다.

실시간 수업 시간에 디스코드에 채팅 치는 게 좀 부끄러울 수 있는데, 많이 할수록 본인에게 도움이 되는 거 같다! 확실히 반응이 많아야 수업 분위기가 살아나는 것도 있다. 

notion은 프로젝트 공지, 스터디 공지, 특강 공지 등등 좀 큼직큼직한 일정 공지에 주로 쓰인다.

처음에는 어디서 어떤 걸 확인해야 하고 질문해야 하는지 헷갈릴 수 있는데 시간이 지나면 적응이 되어 크게 걱정을 하지 않아도 된다!

운영 관련하여 모르는 게 있을 때는 매니저님 맨션 걸거나 DM 드려서 여쭤보면 빠르고 친절하게 알려주신다😊

 

 

3️⃣ 엘리스랩

성수와 부산에 있는 오프라인 학습장이다. 무료 예약이고, 가면 아이맥, 키보드, 마우스 무료 사용 가능하다. 대화가 가능한 좌석, 학습 몰입석, 미팅룸 등등 다양하게 있고 사람도 그렇게 많지 않아서 쾌적한 환경에서 공부할 수 있다. 나는 처음에 혹시 실시간 수업을 여기에서 진행하나? 생각을 했었는데 그건 아니고 공간 대여 느낌이다! 

시설은 좋은데 멀어서 생각보다 자주 가게 되지 않았다🥲 가깝다면 자주 가는 방문하는 것도 엘리스에서 본전을 뽑을 수 있는 방법 중 하나인거 같다!

 

 

4️⃣ 스터디

이거는 각 팀별로 자율적으로 진행하므로 고정된 시간과 장소는 없다!

 

 

5️⃣ 프로젝트

7주차까지 백엔드를 다 배우고 나서 1차 프로젝트가 2주동안 진행되고, 13주차까지 리액트를 다 배우고 나서 2차 프로젝트가 3주동안 진행된다.

 

1차 프로젝트는 공통 주제로 쇼핑몰 만들기가 목표인데, 구현해야 할 사항들이 미리 다 주어져서 주제와 앱 동작 흐름, 디자인만 덧붙이면 된다. 2차 프로젝트는 주제 선정, 기획부터 시작해야 한다. 즉, 처음부터 끝까지 알아서 해야 하는 프로젝트이다. 이전 기수들에서와는 다르게 둘 다 스켈레톤 코드는 주어지지 않는다.

1차 프로젝트는 어느 정도 틀이 주어지지만 프로젝트 경험이 없다 보니 2주가 짧게 느껴졌고, 2차 프로젝트는 기간이 3주이지만 처음부터 끝까지 설계를 해야 해서 빡빡하게 느껴졌다.

 

사실 저 기간 동안에 완성도가 있는 프로젝트를 만들어내는 팀은 그렇게까지 많지 않다. 프로젝트를 진행하면 아마 대부분의 팀이 마감일이 다가올수록 허겁지겁 매일 밤을 새가며 코드를 작성하게 될 것이다. 그리고 생각보다 중도 하차하시는 분들이 꽤 계셔서 그런 경우 더 힘들어질 것이다. 완성도 있고 기능이 풍부한 프로젝트를 만들고 싶다면 프로젝트가 끝나고 나서 따로 시간을 내어 작업을 이어나가야 할 가능성이 높다.

부트캠프마다 정해진 프로젝트 기간이 다른 거 같다. 이를 고려하여 엘리스 부트캠프 합류를 고민해 보면 좋을 거 같다! 

 

 

 

✏️ 1번째 달 : HTML + CSS + JS 배우기

📍 1주차 : HTML + CSS

 

 

1주차에는 HTML과 CSS를 배웠다.

 

사실 첫 수업을 딱 듣고 나서 좀 의심이 되었다. 이정도로만 배우고 가도 된다고? 이런 생각이 들었기 때문이다. 정말 HTML과 CSS를 처음 접하시는 분들께는 부족할 수 있는 강의라고 생각이 들었다. 

나는 이전에 간단한 개인 프로젝트를 통해 HTML과 CSS를 기본은 배우고 간 상태였기 때문에 따라가는 데에많이 어렵지는 않았다.

 

하지만 강의를 듣기 전까지는 CSS의 원리를 생각하면서 개발을 하기 보다는 막 코드를 작성하고 어쩌다 성공하면 그 코드를 적용하는 끼워맞추기식 개발을 하고 있었다. 그래서 이번 기회에 CSS를 좀 더 파보자는 생각을 하게 되었고, mdn 문서 등을 보면서 공부한 내용을 블로그에 기록하였다. 결과적으로 애매했던 position의 개념을 잡게 되었고, 멀게만 느껴졌던 flex와도 친해질 수 있었다.

이후에 프로젝트를 진행하다 보니 grid도 유용하겠다는 생각이 들었다. grid는 아직 그렇게 익숙하지 않아 추후에 더 공부해 보아야겠다고 생각이 들었다.

또한, CSS 애니메이션을 익힐 수 있어서 재미있었다. 후에 프로젝트를 진행했을 시에는 CSS 라이브러리를 사용해 세세하게 애니메이션 코드를 작성하지 않아도 되었고 편리하였지만 어떻게 하면 CSS로 구현할 수 있을지에 대한 것은 어느 정도 파악하고 있어야겠다는 생각도 들었다.

 

 

📍 2주차 ~ 4주차 : JS

 

 

 

2주차에서 4주차까지는 JS 문법부터 동작 원리까지 자세하게 배우는 시간이었다. 개인적으로 이 시간이 진국이라고 생각이 들었다. 여태까지는 단순한 문법의 JS 코드를 작성하는 방법만을 알고 있었다면, JS 수업 이후에는 사용할 수 있는 메서드 폭이 더 넓어졌고 (filter, map, reduce, forEach 등등), 동작 원리(이벤트 루프, 실행 컨텍스트)를 배우면서 코드의 실행 순서 예측이 더 잘 되었다.

 

가장 인상 깊었던 부분은 비동기 개념, promise를 배운 것과 그것을 이용하여 통신(fetch, axios 등)하는 원리를 자세하게 배운 것이였는데, 강의 듣기 이전에는 단순하게 fetch로 get 요청을 보내고, then으로 결과를 받는다 이렇게 기계적으로 코드를 작성하였지만, 강의 이후 fetch는 비동기 작업이고, promise 객체를 반환해 then을 통해 비동기 작업의 성공(fullfilled 상태)을 다루고, catch를 통해 에러를 잡아낼 수 있다(rejected 상태)는 식의 원리를 알게 되어 좀 더 유연한 코드 작성이 가능해졌다. 

하지만 이 부분도 계속 상기시키지 않으면 결국 까먹게 되니 다시 천천히 되짚어볼 예정이다! 사실 지금 상태에서 말로 설명해 보라고 하면 말문이 막힌다 🥲

 

JS를 배우는 중간중간에 인스타그램 클론 코딩, 행맨 게임 제작하기, CoffeeMaker 만들기 등 스켈레톤 코드가 제공이 되는 나름 규모있는 실습 문제가 나온다. 

저 3개의 실습들이 트랙 수강 중에서 가장 어려웠던 실습들이었던 거 같다. 혼자서 풀어내기 어렵긴 하지만 포기하지 않고 조금이라도 풀어내면 모듈화 같은 코드 디자인 방법을 얻어갈 수 있을 것이다.

특히 이전까지는 브라우저에 데이터를 저장하는 방법으로 localstorage만을 알고 있었는데, 인스타그램 클론코딩을 통해 FileReader로 데이터를 읽어서 indexedDB를 이용해 브라우저에 데이터를 저장하는 새로운 방식을 배우게 되어서 좋았다. (이때까지는 백엔드와 데이터베이스 조작에 관해 배우지 않아 이러한 방법으로 데이터를 저장했었다.)

 

 

 

✏️ 2번째 달 : Express + Typescript + MongoDB 배우기

📍 5주차 : Node.js 소개 + Typescript

 

 

2번째 달부터는 백엔드 관련 수업이 진행된다. 백엔드는 정말 처음 경험해 보는 거라 좀 긴장이 되었지만, 5주차는 좀 가볍게 지나가는 느낌이었다.

Node.js가 무엇인지에 대해 살펴보고, JS ES6 문법을 복습한다.

Typescript도 배우는데 한 3~4일 정도만 배운다. Typescript 필수 개념은 다 배우기는 하는데 3~4일 배워서 자유자재로 사용하는 것은 불가능했다. 

2차 react 프로젝트 때 Typescript를 도입하게 된다면, 많은 interface를 만들면서 수많은 빌드 에러를 마주하고 맨땅에 헤딩을 반복하며 살짝이나마 익숙해질 수 있을 것이다. 이렇게 실전에서 사용하게 되면 강의에서 배웠던 type 이외에 굉장히 다양한 type을 만나볼 수 있다.

 

 

📍 6주차 : Express + MongoDB + mongoose

 

6주차부터는 본격적으로 Express 프레임워크를 이용해 백엔드 코드를 작성하는 법과 ODM인 Mongoose의 개념과 쿼리들, Express에서 MongoDB를 사용하는 방법 등을 배운다.

생 node.js로만 코드를 작성하는 것은 없다고 보면 되고, 바로 Express 프레임워크를 적용하여 작성하게 된다. 이때 미들웨어와 오류처리 방법, Rest API에 대한 개념을 자세하게 배우고, Postman이나 MongoDB compass 같은 여러 툴들도 같이 만나볼 수 있다.

오히려 6주차가 5주차에 비해 백엔드 기초에 더 가까운 느낌이다.

 

나는 개인적으로 이때에는 app.get 등을 사용해 라우팅 처리를 하고, 라우팅 핸들러로 클라이언트의 요청을 받는 방법 등 대충의 코드 흐름과 개념 자체만 잡고 넘어갔었고, 깔끔한 오류 처리나 미들웨어와 next() 함수 사용, Restful한 경로 작성법, 위에서 언급한 툴들 사용법 등 세세한 부분은 1차, 2차 프로젝트를 진행하면서 직접 코드를 작성해 보며 지식을 얻어갈 수 있었던 거 같다.

프론트엔드만 배워오던 나에게는 백엔드 자체가 너무 멀게 느껴졌는데, JS로도 이렇게 백엔드 구축이 가능하다는 부분에서 흥미를 느꼈지만 사실 저때 Mongoose부분과 Postman 사용 실습 부분은 잘 따라가지 못했었고, 지난주에 배웠던 타입스크립트도 굉장히 애매하게 습득한 느낌이라 회의감이 조금씩 느껴지기 시작했었다.

 

 

📍 7주차 :  CRUD + 로그인과 인증 / 인가, 회원가입

7주차에는 백엔드 과정에서의 핵심이라 할 수 있는 CRUD와 로그인, 회원가입 구현을 진행한다.

CRUD는 게시판 구현 실습을 통해 배우게 되고, 여기에서 페이지네이션까지 배우게 된다.

여기에서 지금까지 말로만 들었던 CRUD가 각각 Create(생성), Read(읽기), Update(갱신), Delete(삭제)임을 알게 되었고, 기본적인 데이터 처리 기능으로 Mongoose에서는 각각 create, find, save, deleteOne 등의 다양한 메서드를 이용해 CRUD를 구현할 수 있다는 것을 깨달을 수 있었다.

 

또한 내가 백엔드에서 가장 궁금했던 부분이 회원가입과 로그인 구현이였는데, 수업을 통해서 회원정보를 DB에 저장할 시 crypto 모듈을 이용해 비밀번호를 hash화 해서 저장하고, passport.js를 통해 회원정보 일치를 확인하는 strategy를 설계해 두고 passport.use 메서드를 이용해 해당 strategy를 사용할 수 있도록 선언해 두면 유저 검증이 필요할 때 미들웨어로 passport.authenticate 메서드를 사용해 주면 해당 strategy로 인증 간단하게 처리할 수 있다는 흥미로운 사실 또한 알 수 있었다.

 

그리고 이미 로그인 되어 있는 유저 정보를 확인하기 위해서 JWT 토큰을 서버가 클라이언트에게 전달해 주고, 클라이언트는 이것을 저장해 두었다가 인증이 필요한 요청에 사용하여 유저에 관련한 데이터베이스 접근을 줄일 수 있다는 것도 새롭게 알게 되었다. 

JWT를 관리하는 방법으로 localstorage에 저장, cookie에 저장, sessionstorage에 저장 이렇게 3가지 방법을 배울 수 있었고, 그 중 cookie에 저장하는 방식에 관심이 많이 갔다. 아무래도 평소에 어떤 웹사이트 접속 시 'cookie 수집 허용' 이라는 문구를 많이 보아서 그런 거 같다. 쿠키를 사용할 시 서버에서 클라이언트로 jwt를 전달해 줄 때 res.cookie라는 메서드를 사용하면 되고, 이렇게 클라이언트가 쿠키를 전달받으면 jwt를 저장하기 위해 추가 작업을 하지 않아도 되므로 편리해질 수 있겠다는 생각이 들었었다.

 

지단 달에 JS를 배울 때와는 다르게 난생 처음 들어보는 개념들을 짧은 기간 안에 배우려니 백엔드 수업은 좀 허겁지겁 따라가고, 듬성듬성하게 기억이 나는 느낌이 있긴 했다. 하지만 이렇게라도 백엔드에 대하여 배우니 웹의 전반적인 동작 흐름에 대해 알 수 있어서 시야가 더 넓어진 기분이었고, 나중에 풀스택으로 개인 프로젝트를 만들어 보고 싶다는 생각도 들었다.

 

 

 

💻 1차 스터디와 1차 프로젝트

📍 1차 스터디

우리 1차 스터디 고잉메리 🚢

 

1차 스터디는 트랙 시작 1주일 후 정도부터 개설을 시작한다. 스터디는 본인이 직접 개설할 수도 있고, 다른 분이 개설한 스터디에 가입 신청을 할 수도 있다.

1차 스터디로는 다른 분이 개설하신 알고리즘 스터디에 참여하였다. 우리 스터디는 매주 목요일 저녁마다 모여서 팀장님이 선정해 주신 문제들을 미리 해결해 온 후에 풀이 방식을 공유하는 형태로 진행하였다.

 

스터디 이전까지는 익숙한 유형의 알고리즘 문제들만 풀게 되는 경향이 있었는데 (정렬, 이분 탐색, 스택, 큐 등) 스터디를 진행하면서 자료구조와 알고리즘의 개념부터 다시 잡을 수 있게 되었고, 익숙하지 않았던 알고리즘들 (DFS, BFS, DP 등)에 도전할 수 있어서 좋았다. 

팀장님께서 적당히 어려운 난이도의 문제들을 선정해 주셔서 오히려 더 좋았던 거 같다. 또한, 단순히 코드를 올리고 끝나는 형태가 아니고 발표를 해야 해서 내가 문제를 해결한 방식을 말로 설명하는 능력을 키울 수 있게 되었고, 그 문제에 대해 한번 더 되짚을 수 있는 기회가 되어 좋았다.

 

알고리즘 스터디이지만 평일 아침에는 TIL을 매일매일 진행하여 지난 시간에 배웠던 내용을 되짚고, 모르는 부분을 공유하고 서로 알려주기도 하여 혼자 공부할 때의 외로움을 좀 덜어낼 수 있었다.

그리고 팀장님이 계획적으로 진행을 잘 해주셔서 1차 프로젝트 시 팀장으로써 어떻게 이끌어 나가야 할지에 대해서도 배울 수 있어서 감사했다👍

 

스터디 참여가 필수라고 적어져 있기는 하지만 모든 레이서가 다 참여하고 있지는 않은 거 같았다. 상황에 따라서 참여하면 되는 것 같지만 왠만하면 참여해서 인간관계도 넓히고 수업 후 남는 시간을 좀 더 의미있게 보내 보면 좋을 거 같다! 😊

 

 

📍 1차 프로젝트

1차 프로젝트 회고는 글이 너무 길어질거 같아 링크로 대체한다!

 

 

 

✏️ 3번째 ~ 4번째 달 : React 배우기

📍 10주차 ~ 11주차 : React의 전반적인 개념과 스타일링

 

10주차와 11주차에는 React에서 필수적인 개념인 컴포넌트, props, state, 자주 쓰이는 hooks(useState, useEffect, useContext, useReducer, useMemo, useCallback 정도)에 대하여 배운다. React의 특징인 SPA에 관해서 배우고, routing 또한 배워서 react에서의 페이지 이동에 대하여 알 수 있다.

스타일링 방법으로 styled-component와 Sass에 대해서도 새롭게 배우게 되고, Api 통신에서 항상 중요한 부분인 '비동기' 에 대해서도 되짚어보고 간다.

중간중간에 todo list 제작이나 회원가입 페이지 제작 등 작은 실습들을 거치면서 React 라이브러리 사용에 익숙해질 수 있는 시간이라고 생각하면 될 거 같다.

 

사실 이때부터 엘리스에서 제공해주는 강의에만 의존하지 않았다. 특히 실시간 이론 수업 시간에, 코치님은 열정적으로 많은 예제를 통해서 가르쳐 주셨는데 내가 좀 따라가기 버거웠던 느낌이 있었다. 날이 갈수록 수업 흐름을 계속 놓치게 되어 억지로 수업을 따라가려고 하기보다는 부족한 기초를 천천히 채워가며 진행하는 것이 좋겠다고 생각이 들어 실시간 수업 시간에는 recoil이나 서버 컴포넌트 같은 정규 과정에 없는 최신 기술들이나 이론적인 부분만 얻어가려 했고, 내가 잘 따라가지 못하는 예제 설명 시간이나 클론코딩 시간에는 유튜브로 react Hooks 관련 영상이나 상태 관리 관련 라이브러리 사용 영상을 보며 이해가 잘 되지 않았던 부분을 채워나갔었다.

이렇게 하니 이론 시간에 놓치는 부분은 좀 생길지라도 실시간 실습 수업 시간에는 잘 따라갈 수 있었고, 프로젝트 시에도 크게 문제 없이 진행할 수 있었던 거 같다.  

 

엘리스 합류 전, Nomad coder에서 제공하는 무료 React 강의를 통해 React에 대해 살짝 배우고 들어갔다. 그때 배운 것 중 기억에 남는 것은 useState 훅을 사용해 로딩창 띄우기, useEffect 훅을 이용해 api 통신을 하여 데이터 가져와 state에 저장하기, routing으로 페이지 이동할 수 있게 하기, state에 따라 다른 스타일(className) 적용하기 이 정도이다.

컴포넌트 분리도 할 줄 모르고, JSX 문법만 사용할 수 있는 수준이라 컴포넌트 분리라기 보다는 페이지 단위로 분리하는 느낌의 코드를 작성했었고, props 개념도 잘 잡혀 있지 않아 제대로 활용하지 못했던 거 같다.

 

엘리스 수업을 통해 useState, useEffect, useRef, props 개념, 이벤트 핸들링에는 어느 정도 익숙해졌고, useContext, useReducer같은 새로 알게 된 Hook들 적용도 가능해졌다. but 이때까지는 styled-component에는 정말 익숙하지 않았다. 2차 프로젝트 이후에야 깨달음을 얻은 거 같다.

 

 

📍 12주차: 상태 관리 (Redux, Redux toolkit) + React 테스팅 (react-testing-library)

12주차에는 전역 상태 관리를 위한 라이브러리인 Redux와 보일러 플레이트 코드를 감소시킬 수 있는 Redux toolkit을 배우게 된다.

 

상태 관리 라이브러리는 이번에 처음 배워보는 것이었는데, Redux에서는 단방향 흐름 아키텍쳐인 flux 패턴에 대해 이해하고 가는 것이 핵심인거 같았다. 어떠한 행위로 데이터를 변경할 것인지를 Action 객체를 생성하여 Dispatcher에 전달하고 (Action은 사용자가 form 제출과 같은 어떤 동작을 함으로써도 생성 가능하다.), Dispatcher는 그것을 Store로 전달하여 Store에 저장되어 있는 상태를 Dispatcher에 등록되어 있는 데이터 변경 콜백 함수를 이용해 변경할 수 있었다. 이렇게 하여 어떤 상태가 변경이 되면 Store에서 View(컴포넌트)로 상태가 변경이 되었음이 전달되어 리랜더링이 일어나도록 할 수 있었다.

이러한 흐름 자체가 기존에 계속 사용하던 양방향 데이터 흐름을 가지는 MVC 패턴보다 훨씬 더 깔끔한 거 같았다.

 

useState Hook과 props drilling을 이용하여 상태 관리를 하는 방법, useContext Hook을 이용하여 상태 관리를 하는 방법을 실습을 통해 알아보고 후에 redux와 redux toolkit을 이용해 상태 관리 하는 방법을 역시 실습을 통해 배움으로써 4가지 방법을 모두 비교할 수 있다. 

redux보다 redux toolkit이 더 간단하게 코드 작성이 간단하다는 것까지는 깨달을 수 있었지만 사실 아직 나에게는 redux보다 useContext Hook을 사용하여 상태 관리를 하는 방법이 더 편하고 익숙하다.

이 부분은 redux에 익숙하지 않아 그런 거 같아 추후에 더 공부하고 실습을 많이 해보면서 redux를 많이들 사용하는 이유를 꼭 느껴보아야겠다는 생각이 들었다.

 

그리고 테스팅 코드 작성법도 배우는데, jest 라이브러리와 react-testing-library를 배우는데, jest는 이론만 짚고 넘어가는 느낌이고, react-testing-library로 실습을 진행한다.

테스팅 코드 작성 수업은 거의 해설을 그대로 베끼면서 진행한 거 같다. 이 부분도 아직까지는 잘 와닿지는 않는다. 2차 프로젝트에서도 테스팅은 진행하지 않아서 추후에 더 공부해 보면서 개인 프로젝트 진행 시 여력이 되면 적용해 보고 싶다.

 

 

📍 13주차 : SSR + 배포 + styled-component

 

마지막 수업 주간인 13주차에는 가볍게 들어도 되는 느낌의 수업들로 구성되어 있다.

서버 사이드 렌더링 수업이 있긴 하지만 개념 정도만 훑고 지나가는 느낌이다. Next.js를 직접 가르쳐 주지는 않는다. SSR 수업에서는 '검색 엔진 노출' 이라는 키워드가 중요한 거 같았다.

React 프로젝트를 배포하는 방법도 배우는데, 이것도 상세하게 배우는 느낌은 아니고 찍먹 느낌이다. 2차 프로젝트에서 직접 겪어보는 것이 더 배워가는 것이 많을 것이다.

 

나머지 수업에서는 styled-component 실습을 많이 한다. 특정 UI를 구현하는 것이 실습으로 주어진다. 이 부분은 강의를 들으면서 따라 치며 이해만 하고 넘어가도 되는 부분이라 생각한다.

 

Next.js와 배포는 제대로 경험을 해본 적이 없기 때문에 이것도 추후에 공부해서 꼭 프로젝트에 적용해 보아야겠다는 생각이 들었다.

 

 

 

💻 2차 스터디와 2차 프로젝트

📍 2차 스터디

이것도 글이 너무 길어질 거 같아 다른 글 링크로 대체하겠다!

 

📍 2차 프로젝트

이것도 링크로!

 

 

 

👏 마지막으로

앞으로도 화이팅!!!

 

이렇게 모든 수업 주차를 돌아보니 지금까지 내가 무엇을 배워왔는지 되짚어볼 수 있어서 좋은 거 같다.

최대한 좋은 것은 좋고, 아쉬운 것은 아쉽고, 못한 부분은 못했다고 솔직하게 작성하였다!!

너무 많은 것을 단기간 안에 배우다 보니 솔직히 중간에 뭘 배웠는지 까먹어서 중간중간에 강의를 다시 찾아보기도 했다😂

 

솔직하게 고백하자면, 엘리스를 진행하는 시간 동안 고통 >>>>>>>> 뿌듯함 이었다.....🥲

일단 나에 대한 기대치가 높아서였는지 수업을 잘 따라가지 못했을 때에는 회의감을 많이 느꼈고, 팀 프로젝트 시에는 혹시 내가 다른 팀원들에 비해 뒤쳐지지 않을까, 능력 부족으로 피해를 주지 않을까 항상 걱정하면서 진행했었고, 배우는 모든 순간에서 아쉬움이 남았었다.

칭찬을 들어도 뿌듯함을 느끼기보다 혹시라도 안주하게 될까봐 항상 스스로를 채찍질만 했었다. 4개월 동안 무조건 최대한을 얻어가고 싶었던 내 욕심 때문인거 같다.

다른 사람들의 부트캠프 후기를 찾아보면 뭔가 다들 엄청난 열정을 가지고 단기간 안에 성장도 많이 하고 갓생사는 느낌인데 나는 시간이 갈수록 열정도 식어가고 멘탈이 갈리고 있어서 React를 배울 시기에는 살짝 슬럼프가 찾아온 거 같았다.

 

그래도 코딩은 여전히 재밌고, 엘리스에서 기술적인 것 이외에도 협업과 의사소통 과정 등 많은 것을 배울 수 있었다. 그리고 다 끝나고 나서 돌아보니 항상 최선을 다했기 때문에 후회되는 점은 없다!

모르는 게 많기 때문에 부트캠프에 들어온 것이고, 서툴기 때문에 배우는 데 어려움을 겪는 것은 당연한 것이기에 너무 자책하지 않고 마음의 여유를 가지고 앞으로 해야 할 공부를 천천히 해나가야겠다는 생각이 들었다. 어차피 미리 교육과정의 모든 것을 배우고 들어오지 않는 이상 4개월 안에 배우는 모든 기술을 순탄하게 마스터하는 것은 절대 불가이다❗

 

한마디로, 엘리스 트랙 합류는 내가 좀 더 겸손해질 수 있는 기회였다고 생각한다. 많은 것을 배웠지만, 그것들에서 파생되는 것들이 많기 때문에 내가 앞으로도 배워나가야 할 것들이 정말 많구나를 깨달을 수 있었다. 엘리스 시작 전에는 수료 후 최대한 빨리 취업해야겠다는 생각을 하였지만 실제 수료를 하고 나서는 오히려 시간적 여유를 가지고 부족한 부분을 채워나가야겠다는 생각이 강하게 들었다.

 

🔊 그리고 엘리스가 국비 부트캠프 중에서 커리큘럼도 알찬 편이고, 열정적인 분들이 많고, 전공자 분들도 생각보다 꽤 계셔서 좋은 부트캠프라고 생각한다! 

 

긴 글 끝 ❣️

댓글