TIL

[TIL] 코드스테이츠 6주차

Posted by Dev X on September 6, 2020

Solo Week

일요일

  • 치팅 데이.

  • 함수형 프로그래밍에 대한 강의를 들었다. 막연하게 함수를 만들면 편하니까 함수를 쓰자라고 생각했는데 함수형 프로그래밍이라는 고찰아래 많은 사람들이 고민을 해왔다는 것을 알게되고 내가 생각없이 작성하던 함수들에 대해 다시 돌아보게 되었다. 나는 함수를 효율적이고 단일책임적으로 관리를 하고 있는지 앞으로 코딩을하며 계속 신경써야겠다.


월요일

  • 자료구조 스프린트 3번째 과제에 진입했다. 스택 큐까지는 전에 알고 있던 개념이라 쉬웠지만 그래프와 이진 트리는 낯선 덕에 직접 구현해야 한다니 막막하기만 했다. 특히 개념적으로 공부할 거리가 너무 많았어서 시작 전에 갈피를 못잡고 혼란스러웠는데 테스트 코드를 뜯어보며 역으로 요구사항을 정리하다보니 문제가 이해되었다.

  • 미리 꼼꼼히 공부해두었던 this와 class 덕분에 에러가 발생해도 어디에서 잘못된 것인지 찾는 시간이 꽤 빨라졌다. 이래서 기초가 중요하다는 것을 느낀다. 특히 this와 참조 속성이 독학때 내내 내 발목을 잡는 것 같았는데 속이 매우 후련하다.


화요일

  • 자료구조 스프린트의 마지막 날이었다. 마지막 과제까지 다 마치고 처음부터 코드를 돌아보며 리팩토링하는 시간을 짧게 가졌는데 테스트 케이스를 통과하고 기분좋게 보내줬던 코드들이 다시 돌아보니 비문과 비효율적 조건문들로 가득해 충격이었다. 코드를 짜는데 막힘은 없는데 알고리즘적 사고를 하는 것이 아직 서툴어서 문제다. 슬슬 알고리즘 문제풀이를 시작해야겠다.

  • 리팩토링을 하며 코드 가독성을 최대한 신경쓰려 하는데 이런 식으로 하는 것이 맞는지 궁금할때가 있다. 최대한 추상화를 시키고 좋은 이름을 찾아보려 노력 중이다. 이럴때는 페어의 의견이 더 절실해지는 것 같다. 다음에 여유가 된다면 페어 분과 코드 리뷰를 진행해보고 싶다.

  • 그리고 역시 수학이 문제다.. 예체능한다고 수학을 완전 놔버렸던 것을 이렇게 후회하게 될 줄이야.. 중등수학 문제집이라도 구해서 풀어봐야하나 싶다…


수요일

  • 어려워했던 prototype에 대해 다시 공부하게 될 기회가 생겼다. 솔직히 class 문법이 생기고 나선 prototype에 관심이 없어지고 관성적으로 class 문법을 사용해왔었는데 확실하게 알아볼 시간이 생겨서 다행이다. 막연하게 prototype이란 이렇게 유용한 목적으로 쓰인다~라는 것만 알고있었는데 prototype이 생기기전엔 어떻게 객체를 생성했었는지 class를 어떻게 구현해왔었는지 차근차근 알아보니 더 확실히 prototype의 목적과 구성에 대해 이해하게 되었다.

  • class와 prototype에 대한 포스팅을 작성하고 상속을 prototype으로 구현하는 것에 대한 포스팅도 작성해야겠다.


목요일

  • prototype을 이용한 객체 생성 패턴을 실습해 보았다. 객체 생성패턴 구현까지 이해하고 이젠 prototype을 확실하게 알겠다고 생각했는데 막상 상속패턴을 구현하려고하니 constructor와 Object.create, new 키워드에 대해 정확하게 이해하지 못했던것 같아 반성했다. 특히 new 키워드는 아무 생각없이 객체 생성을 하는 기능을 한다라고만 알고 있었는데 언어 특성상의 특정 기능이 있다는 것을 알게되고 정말 놀랐다.

  • this에 대해서도 이젠 어느정도 알겠다 싶었는데… 한참 고민하던 의문의 에러가 또 this 때문이라는걸 알았다.. this는 절망이다…ㅋㅋㅋㅠㅠ setTimeout의 this가 무조건 global을 받는다니.. 함수실행 this 패턴 공부만으로는 알지 못했었다!! 아직 이벤트 큐 공부를 제대로하지 않아서일까. 주말 내에 이벤트 큐 공부를 마쳐야겠다.


금요일

  • 오랜만에 css를 디테일하게 만져볼 기회가 생겼다. 웹퍼블리싱을 배우긴 했지만 자주 쓰지 않으니 암기해야할 패턴(반응형 이미지나 뭐 그런거..)같은 걸 자꾸 깜빡하고 그랬었는데 재차 연습을 해보니 굳었던 머리가 풀리는 것 같다. css를 미리 공부 안했었다면 이것까지 공부해야해서 한참 고생했겠지..ㅋㅋㅋ 휴… 그래도 나중에 scss를 한번 복습할 시간도 필요할것 같다. mixin이나 extend 같은 것들이 가물가물하다.

  • setTimeout의 this문제는 그냥 함수 디자인 때문이었다.. MDN에 있는걸 몰랐었다니.. 시간날 때 아래 링크를 살펴볼 것
  • https://developer.mozilla.org/ko/docs/Web/API/WindowTimers/setTimeout
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this#As_an_object_method

토요일

  • prototype 상속에 대한 포스팅을 마쳤다. 역시 강의보고 실습까지만 마쳤을 때랑 포스팅까지 했을때의 이해도가 확연하게 차이가 나는 것 같다. 특히 구조를 그림으로 그려보고 아니고가 영향을 많이 끼치는 것 같다. 글을 쓸때는 헤더부터 짜놓고 디테일을 작성하는 편인데 prototype에 대한 정리가 끝나고 class에 대해 작성할 때 쓸 것이 별로 없었다는 데서 그만큼 꼼꼼하게 공부했나보다 싶어 뿌듯했다.

  • 잠깐 미뤄두었던 알고리즘 책을 다시 펼쳤다. 탐욕 알고리즘 부분만 잠시 보았는데 예전에 했던 알고리즘 스터디가 다시 떠올랐다. 그때 딱 탐욕 알고리즘으로 해결해야 할 계단 오르기 비용 문제를 만났었는데 엄청난 무력감을 느꼈었다. 알고리즘 패턴을 알고나니 뭐가 그렇게 어렵게 느껴졌었나 싶기도 하고 그만큼 내가 성장했나 싶기도 해서 더 열심히 해야겠다는 다짐을 했다.