본문 바로가기
Today I Learned(TIL)

코드스테이츠 IMMERSIVE Course 회고

by 연제원 2021. 3. 13.

코드스테이츠에 들어와서 Pre Course를 한 달 동안 수료하고 Immersive Course에 들어온지 얼마 안된 것 같은데 벌써 2달이 지났고, 프로젝트로 가기 위한 마지막 HA를 진행했다.

처음 시작할 땐 return이 왜 굳이 중괄호 { } 안에 들어가야하는 지 의문을 가졌던 나였는데, 세션을 기반으로 한 로그인 창을 구현할 줄 알게 되었다.

 

이머시브 코스에 들어오고 나서 개념정리는 했었어도 나에 대한 정리는 해본 적이 없는 것 같다. 다음 주부터 프로젝트를 진행하는데 그 전에 나의 마음가짐과 생각 정리를 해볼 겸 회고 글을 쓰기로 다짐했다.


코드스테이츠에 오고 나서 바뀐 것

스스로 부족함을 인정할 수 있게 되었다.

코드스테이츠는 기본적으로 페어활동으로 스프린트를 진행한다. 1주일에 약 2개 정도의 스프린트를 진행하는데 매번 페어가 랜덤으로 바뀐다. 매번 진행을 할 때마다 잘하시는 페어분들을 만나면 너무 좌절감이 느껴졌다. 배운것들을 이해하고 쉽게 적용할 수 있을 줄 알았는데, 막상 코드를 짜보려고 하면 머리가 백지가 되었다. 하지만 페어활동을 할 때면 이해한 척, 아는 척을 많이 했다.

 

'이해하지 못했다'를 보이기 싫었으니까!

 

이는 나에게 독이 되었다. 스프린트를 완료하고 나면, 일단 완료는 했으니까 충분하겠지 라고 스스로를 위안했다. 하지만 복습을 하려하면 어디서부터 접근을 해야할 지, 이걸 왜 이렇게 생각했지? 라는 기초적인 부분부터 오래걸렸다. 그 뒤로 나는 스스로 부족함을 인정했다. 잘하는 페어분들이 계시면 양해를 구해서라도 그 순간에 이해를 다 하려고 노력했다. 그러다보니 정규 시간이 끝나고 자습하는 시간에 어떤 부분을 더욱 공부해야 할지, 어떤 개념이 모자란지 판단할 수 있게 되었다.

 

안일함, 게으름을 버렸다.

나는 대학교 때 기계공학을 전공했다. 그 때 당시엔 학점도 잘? 받은 편이었고 친구들에게 과제나 배운 것들을 항상 가르쳐주는 입장이었다. 그러다보니 항상 그 날 배웠던 것들을 더욱 심화적으로 파고들 생각도 하지 않았고, 다른 친구들도 모르는 게 많은데 이 정도 알고 있으면 충분하겠지? 라는 생각을 항상 했었다. 그런데 코드스테이츠에 오고나서 이러한 안일한 생각은 버렸다.

 

사실 코드스테이츠에 들어오고 나서 초반엔 같은 생각을 하고 있었다. 비전공자가 많다는 말과 엔지니어 분들이 가끔 말씀하신 '하루에 받아들이기 어렵다'라는 말은 나를 충분히 안심시켜줬다. 그래서 나는 오늘 배운 것을 이해하기만 하면 '정말 잘했다' 라는 스스로 위안을 했다. 또한 '지금은 정확하게 몰라도 나중되면 더 잘하겠지?!'

 

이는 큰 착각이었다.

 

비전공자들이 많지만 전부 비전공자들이란 말은 아니다! 수강하시는 분들 중엔 전에 개발자로 일하다 오신 분, 전공자분들도 계셨다. 이런 분들은 스프린트 내용을 이해하는 데 수월하셨을 것이다. 하지만 여기에 끝나지 않고 스스로 무언가를 깊게 파고드셨다. 코드스테이츠에서는 '모각코(모여서 각자 코딩)' 이라고 하는 ZOOM방에 들어와 각자 할 것을 하는 모임?이 있다. 처음엔 궁금한 것들을 여쭤보기 위해 항상 들어가 질문을 드렸었다. 그러다보니 점점 익숙해지는 분들도 생기고 스터디를 만들게 되었다.

스터디 이름은 모각코야호~

그 중 앞서 말했던 잘하시는 분들은 나보다 더 열심히 공부한다는 느낌이 들었다. 단순히 열심히의 개념이 아니라 정말 무언가에 몰두하셨다. 여기서 정말 크게 감명을 받았다. 복습을 하면서 '아 많이 했다. 잠시 쉬어야지' 하며 휴대폰을 보곤 했던 나를 다시 되돌아보게 해준 계기가 되었다.

복습을 끝내고 '오늘 이 정도면 충분하지'라는 생각을 했던 나는, '어떤 부분이 많이 부족한지'를 스스로 찾는 노력을 하게 되었다.

 

정리하는 습관을 기를 수 있었다.

나는 궁금한 것이 생겼을 때 바로바로 찾고 궁금증을 해결하는 데만 초점을 두곤 했다. 하지만 이는 내 머릿속에 들어오지 않았고 나중에 똑같은 궁금증이 생겼을 때, 또 찾아봐야하는 비효율적인 것이었다. 

 

처음엔 정리를 해보자는 마음으로 블로그에 글을 작성했다. 하지만 내용, 개념정리를 위해 글을 썼다가 점점 보여주기 식인 글이 되었다. (복습을 하는데 1~2시간이었다면, 블로그 글을 적는데 3~4시간이 걸렸다...ㅠ)

 

얼마나 비효율적인가!

 

그러다 어떤 한 페어분이 노션에 정리하는 것을 추천해주셔서 써보게 되었다. 노션은 정말 내가 찾던 것이었다! 간단하지만 정말 깔끔했다.

공부를 할 때 아무거나 적어놓고 후에 정리를 하면 되었다. 또한 남들에게 보여줄 필요가 없으니 내 마음대로 보기 편하게 사용할 수 있었다.

사실 정리라고 해봤자 찾은 것들을 복붙하고 순서없이 끄적이기만 했었는데, 이를 내 언어로 바꿔 정리, 저장을 해놓으니 나중에 같은 궁금증이 생겼을 때 바로바로 찾아서 보면 되었다.

이렇게 보니 정말 정리를 못하는 것 같다...

사실 대학교를 다닐 때 정리라곤 A4용지에 직접 수기로 정리한 적 밖에 없어서 지금도 노션을 제대로 이용하고 있는 느낌은 들지 않는다. 하지만 이렇게 노션에 꾸준히 정리하다보면 나중엔 깔끔하게 되겠지..? (바램)


마지막 HA를 진행하며

Immersive Course에 들어와 총 3번의 HA를 치뤘다.

HA는 프로젝트를 진행하기 전 최소한 갖춰야 할 지식, 구현 능력을 판단하는 것이라고 생각한다. 즉 팀원들에 대한 예의...?

 

마지막 HA는 로그인 여부에 따른 마이페이지를 보여주는 웹을 만드는 것이었다. (물론 뼈대는 코드스테이츠에서 제공!) 이 과정에서 배운 점과 느낀 것을 적어보고자 한다.

 

테스트케이스

HA 테스트를 치면서 테스트케이스를 통과하기 위해 시간이 매우 오래 걸렸다. 분명히 구현은 되는데, 왜 테스트케이스는 통과가 안되는 것인가!

당시에 구현은 가능했기에 테스트케이스가 중요한가..? 라는 생각이 들었다. 하지만 정말 중요한 것이라고 지금은 생각이 든다.

단순히 테스트케이스라는 단어에서 벗어나 생각을 해보면, 내가 앞으로 어디에서 일하게 될 지 모르는데 그 팀에서는 그 팀만의 규칙이 있을 것이다. 즉, 테스트케이스는 그 팀의 규칙이라고 생각한다.

 

개발은 혼자하는 것이 아니기 때문에 팀의 규칙을 벗어나지 않고 함께 진행하는 것이 중요하다고 생각한다. 하지만 구현에만 초점을 두고 팀의 규칙을 무시한다는 것은 오우..

또한 테스트케이스는 내가 어떤 방식으로 구현해야할 지 정해주는 길잡이라고 생각한다. 프로젝트를 진행하면서 단순히 그때그때 기능을 추가하는 것보다 처음에 명확한 목표를 잡고 개발을 하며 내가 생각했던 방향이 맞는지 고려해야 할 것이다.

 

개발의 흐름

서버는 클라이언트로부터 요청을 받고, 데이터베이스에 유저의 정보 유무에 따라 응답을 해주는 것

클라이언트는 서버에 로그인 요청을 보내고 응답을 받으면, 유저정보를 리액트 state에 저장을 해주는 것

이 목표였다.

 

단순히 로그인 창을 구현하는 HA였지만, 이 안에서도 수많은 코드, 폴더, 파일이 나뉘었다. 테스트케이스 통과를 위해 이리저리 폴더를 옮겨다니면서 정신이 없었다.

 

조금이라도 사이즈가 커진다면 더 많은 기능들이 들어갈 것인데 처음부터 기능마다 잘 나눠야한다고 생각이 들었다. 또한 기능 하나하나를 구현하는 것도 중요하지만 전체적인 흐름을 잡는 게 중요하다고 느꼈다.

 

처음엔 테스트케이스 하나하나 통과를 위해 코드를 짰지만, 이상하게 통과가 안되었고 잠시 쉬는시간을 가진후 처음부터 큰 흐름을 인식하고 진행했다. 그러다보니 잘못 생각했던 문제점들이 하나 둘 씩 발견되었고, 이를 해결할 수 있었다.

 

대표적인 실수가 부모 컴포넌트로 받은 함수, props를 그대로 사용하면 되는 것이었는데, 굳이 자식 컴포넌트에서 이를 실행하는 함수로 만들어 넣어줬었다..

 

결론은 생각을 좀 깊게 해보자!!


결론

이제 2주, 4주 프로젝트가 남았다.

지금까지 스프린트, HA는 뼈대가 제공되어져있고 내가 살을 채우는 방식으로만 진행이 되었다면, 프로젝트는 처음 뼈대부터 내가 만들어야 한다. 지금까지 코드스테이츠에서 배웠던, 깨달았던 것들을 바탕으로 프로젝트를 진행해볼 것이다.

 

지금까지 횡설수설 했지만 앞으로 남은 프로젝트에서 중요하다고 생각하는 점은

 

  • 천천히 생각하기
  • 명확한 목표 세우기
  • 기능별로 구분 짓기 (예를 들면 MVC 패턴..?)

앞으로 남은 프로젝트가 너무 기대된다. 나 혹은 우리 팀원들이 생각하는 바를 직접 내손으로 구현할 수 있다!

자신감을 가지고 하나씩 완료하다보면 좋은 결과를 얻을 수 있겠지?!

'Today I Learned(TIL)' 카테고리의 다른 글

TIL_210316(First Project 프로젝트)  (0) 2021.03.17
TIL_210315 (First Project 시작!)  (0) 2021.03.16
TIL_210311  (0) 2021.03.12
TIL_210310  (0) 2021.03.11
TIL_210309  (0) 2021.03.10

댓글