TIL_ 20201116 MON - 20201120 FRI

아임 레조·2020년 11월 25일
2

TIL

목록 보기
22/22
post-thumbnail

🛫 Immersive 5주 차, 이번 주는

이번 주는 공식 문서와의 싸움이었다. 처음 코딩을 배울 때는 기본기가 없어도 너무 없다 보니 공식 문서를 이해한다는 것이 불가능에 가까웠다. MDN을 봐도 '이게 대체 무슨 말인가, 그래서 이 자리에 뭐가 들어간다는 거지?'라는 물음표만 더 커질 뿐이었다. 상황이 이렇다 보니 차근차근 풀어서 설명해주고 직접 코드를 보여주며 알려주는 튜토리얼을 찾아보거나 유튜브, 블로그 같이 이미 편집이 되어있는 콘텐츠를 먼저 찾게 됐다. 그런데 코스에서 이제부터라도 그런 튜토리얼에 의존하기보다 되도록 공식 문서를 가장 먼저 찾아보고, 그 공식 문서가 한국어면 땡큐인데 영어일지라도 찬찬히 읽고 이해하는 훈련을 시작하라고 권하기 시작했다. 그래, 뭐든 공식적인 자료가 신뢰도도 높고 업데이트도 빠르겠지! 특히 서치를 하면 할수록 영어 자료의 퀄리티가 훨씬 좋고 또 그 내용도 방대하다는 것을 절실히 깨닫는 중이라 공식 문서 + 영어 자료에 대한 마음의 문턱을 낮추는 습관을 들일 필요가 있겠다고 절대적으로 동의하게 됐다.

철저히 공식문서에 의존해서 공부해야 하는 첫 번째 주제가 바로 리액트였다. 드디어 등장한 리액트! 꽃! 크루가 리액트는 다행히 공식 문서가 친절한 편이라고 했다. 읽으면서 찬찬히 코드를 직접 따라 하며 개인 학습 시간을 가졌을 때도 그런 것 같다고 생각했다. 그런데 문제는 의외의 곳에 있었다. 기본적인 개념들에 대한 이해는 어느 정도 끝났다고 생각했는데 막상 코드로 작성을 하려니 손이 떨어지지 않는 것이었다! 여기서 개념을 이해하는 것과 코드를 잘 작성하는 것은 확실히 다른 훈련이 필요하다는 것을 다시금 깨달았다.

코드 작성이 쉽지는 않았지만 리액트는 굉장히 재미있었다. 내가 봐온 애플리케이션이나 서비스를 이제 서툴고 투박하게나마 따라서 엇비슷하게 만들 수 있게 되었다는 것이 흥분됐다. 아직 갈 길은 멀었지만 이제 슬슬 미니 프로젝트를 하면서 학습 동기를 더 높여봐야지 다짐도 했다. 시각적으로 볼 수 있는 결과물을 만드는 재미도 느껴보고 싶다.


🧳 공부한 내용

  • Toy Problem 11 - 14
  • Mini node server:
    이 스프린트는 처음으로 client와 server를 모두 구현하는 것이라 꽤 의미 있었다. 함께 진행한 페어에게 많은 것을 배웠다. 한마디로 '삽질도 하면 다 쓸모가 있다'로 정리할 수 있는데, 3시간 가까이 필요한 module과 package를 설치하고 콘솔을 돌려보는 데 시간을 보냈다. 그런데 나중에 더 공부하고 보니 이 과정에서 나왔던 '오류'가 정말 잘못되어서 난 오류가 아니라 미완성에서 비롯된 '오류'였다. 왜 오류가 났는지 파악하지 못해서 오랜 시간을 소요한 것이었지만 이후의 과정은 빠르게 이해할 수 있었다.
  • Chatter box server:
    지난주는 server에 대해서 개념 정도만 이해하고 주로 client 구현을 진행했는데 이번 주는 server 구현에 조금 더 많은 시간을 보냈다. 아, 이제 나도 저 둘을 다 구현할 수 있게 되었구나!
  • node.js(exports, require)
  • refactor Express:
    이런 좋은 게 있는데 왜 처음부터 알려주지 않았을까라는 생각이 들었지만, Express를 제대로 이해하기 위해 꼭 선행되어야 하는 학습 과정이었다고 생각하며:-)
  • React(Component, Props, state, lifecycle etc)
  • ES6, JSX:
    이머시브 첫 시간에 ES6 문법에 대해 간단하게 연습하고 지나갔다. 이때 내용 이해를 대강 했다고 생각했는데 막상 리액트에 적용하려고 하니 헷갈리는 것들이 몇 가지 있다. DOM과 함께 발목을 잡지 않도록 솔로 데이에 보충 공부를 해야겠다.
  • Recast.ly:
    이 스프린트가 생각보다 쉽지 않았다. 유튜브 화면을 클론 코딩하는 작업이었는데 다행히 페어가 멱살을 끌고 달려주었다. Component를 만들어서 리액트의 dataflow에 맞게 코드를 작성하고 필요하면 state를 끌어올리기(lifting) 해주는 것이 머리로는 도저히 그려지지 않았다. 그래서 이번주는 연습장에 그림을 참 많이 그렸다.
  • React Dataflow
  • Lifting state up
  • JS Module and Youtube API

🧳 개선하고 싶은 점

  • Course reflection 시간에 크루에게 개인적으로 상담을 하기도 했지만 내 요즘 최대 관심사는 Toy problem을 어떻게 활용할 것인가이다. 실제 있을 코딩 테스트에 대비할 겸 매일 아침 Toy 1문제를 1시간씩 고민하는 건데 100% 통과를 못 하는 날이 대부분이다. 문제에 처음 보는 개념이 나올 때도 있다. 그럼 해당 개념을 서치하고 내용을 이해하고 정리하는 데만 30분 정도 소요되기도 한다. 아직 레퍼런스 코드를 열어본 문제는 단 한 문제도 없다. 문제의 퀄리티가 좋아서 나중에 다시 열어보고 고민하는 시간을 갖고 싶어서였는데, 통과하지 못하는 문제들이 많아지다 보니 코딩 테스트를 제대로 준비하고 있는 건가 확신이 들지 않았다. 이에 대한 크루의 답은 '우선 매일 1시간씩 고민하는 시간이 더 중요하다. 이 시간을 잘 보내고 있는 것 같으니 그걸로 됐다. 지금 당장 문제를 100% 통과하지 않아도 된다. 오히려 코스 수강이 다 끝난 다음 다시 토이 문제를 풀어볼 것을 권한다. 더 잘 풀릴 수 있다'는 것이었다. 음, 그렇단 거지? 그럼 다음 주도 힘내서 고민해봐야지.

  • 가끔 동기들의 블로그를 들어간다. 다들 어떻게 공부하고 있는지, 나만 어렵게 느끼는 것은 아닌지 일종의 염탐(?) 같은 것인데 언제나 심리전에 져버리는 자신을 발견한다. 다들 어쩜 그렇게 야무지게 하루하루를 만들어나가고 있는지, 그리고 블로그는 어쩜 저렇게 잘 정리할 수 있지. 나의 하루도 치열하지만, 동기들의 하루와 비교할 때면 나의 하루는 별것 아닌 하루처럼 느껴지고, 내가 정리한 블로그 글들은 하찮게 느껴진다. 이 부분에 대해서도 조급함이 느껴져서 크루에게 상담을 받았다. 크루의 답은 '타인은 비교 대상이 아니다. 내가 얼마나 이해했는지가 중요하다. 사람마다 스타일은 제각각이다. 하루에 공부할 수 있는 양도 모두 다르다. 그러니까 절대절대절대절대로 비교하지 말고 나의 페이스를 유지하자!'라는 것이었다. 도를 닦는 기분으로 '오늘의 나'는 '어제의 나'보다 얼마나 더 발전했는지만 신경 쓰겠다고 다짐한다. 그래! 나의 경쟁상대는!!!! 오직 나야!!!!!!! 라는 오글거리는 생각을 남기며!


🛬 나의 이번 주는 별 3개짜리였다. (5점 만점)

profile
어쩌다보니 백엔드 개발자/ 번아웃 없이 재밌게 개발하고 싶어요

1개의 댓글