[일일 독서] 2023-03-27 (월)
p.391~440 액션의 순서를 타임라인 다이어그램으로 나타내기. 액션은 실행 시점과 횟수가 중요한데, 이를 분석하기 위한 방식이다. 싱글 스레드를 가진 자바스크립트의 특성상 타임라인을 단순화할 수 있다. 비동기 처리가 중요한데, 책에서는 콜백을 소개하고 있지만 Promise 객체를 활용하면 훨씬 편리할 것 같다.
p.391~440 액션의 순서를 타임라인 다이어그램으로 나타내기. 액션은 실행 시점과 횟수가 중요한데, 이를 분석하기 위한 방식이다. 싱글 스레드를 가진 자바스크립트의 특성상 타임라인을 단순화할 수 있다. 비동기 처리가 중요한데, 책에서는 콜백을 소개하고 있지만 Promise 객체를 활용하면 훨씬 편리할 것 같다.
# 내 건강은 내가 챙기기 매일 꾸준히 글을 작성하고 있었는데 일요일에 몸이 너무 좋지 않아 글 작성을 포기하고 일찍 잠에 들었다. 어떤 영상을 보았는데, 기업의 임원이신 그 분은 매일 문제없이 컨디션을 유지하기 위해서 수면 양말을 신고 주변을 따뜻하게? 하고 주무신다는 얘기를 들었는데 더욱 신경써야할 것 같다. 회사에서도 일도 잘 안되고 하루가 아쉽게 흘러가는 것 같다. 다시 하루하루 차곡차곡 쌓아나가보자.
사실 (Fact) 8주차는 CSS-in-JS에 대해 학습했다. 스타일링을 하는 여러가지 방식이 있고 CSS-in-JS는 현재 매우 많이 쓰이고 있는 방식중에 하나다. props를 활용하여 조건부 스타일링을 할 수 있다. Theme을 활용하여 어플리케이션의 스타일 값들을 먼저 구성하고, 전역에서 내려주어 편리하게 활용할 수 있다. 과제는 아직 제출하지 못했다. 느낌 (Feeling) 나만의 디자인 시스템을 꼭 만들어보고 싶다는 생각이 들었다. 만들게 되면 실제로 생산성에도 도움이 많이 되고 과정속에서 고민하며 배울 수 있는점이 많을 것이라고 느껴졌다. 회사 업무가 많아 이번 주차는 제대로 참여하기가 어려웠다. 다음 주차를 나가면서 틈틈이 학습하는 시간을 가져야 겠다. 교훈 (Finding) 한번 늦어지면 ..
# OKR을 계속 발전시키기 이 Action을 왜 하려고 하는지. TDD를 왜 하려고 하는지. 클린코드를 왜 작성하려고 하는지. 목적을 생각하기. Action을 Project로 만들기. 기간과 완료여부가 있어야 한다. 수치화하기, 이에 대해 답을 얻어가고 있는 것 같다. 긴급하진 않지만 중요한 것을 하기(예: 운동) 고통스럽고 피하고 싶은 것을 목표로 잡기.
p.355~390 중첩 데이터 구조를 변경하기 위하여 재귀 함수를 활용한다. 재귀를 안전하게 사용하려면 종료 조건이 있어야 하고, 재귀 호출을 해야 하고, 재귀 호출을 할수록 종료 조건에 다가가야 한다. 종료 조건이 빈 배열이라면, 재귀 함수의 각 호출에서 배열의 항목을 하나씩 없애야 한다. 그렇지 않으면 무한 반복. 데이터 구조가 중첩되어 있다면 편리함을 위해 추상화 벽을 사용.
# 버그를 해결할때는 단계적으로 분석하기 컴퓨터는 거짓말을 하지 않으니 버그가 생겼다면 분명히 어딘가에 문제가 있는 것이다. 정말 다양한 원인이 있을 수 있는데 코드를 확인하고 단계별로 확인해가면서 점점 범위를 좁혀나가는 게 중요하다. 그냥 대충 코드를 바꿔가면서 되나? 안되나? 하는 것이 아니라 제대로된 디버깅을 하는 과정이 꼭 필요한 것 같다. 그리고 이 과정은 좋은 경험치로 습득해야 한다. 테스트 코드는 범위를 상당히 좁혀준다고 생각한다.
p.301~354 map, filter, reduce. 자바스크립트에서 배열의 메소드로 주로 사용하다가 함수로 보니 색다로웠다. reduce는 map, filter는 물론 다양한 것들을 할 수 있다. 함수형 도구 체이닝. 함수의 결괏값으로 또 다른 함수를 호출하고 반복한다. 선언적으로 코드를 작성할 수 있다. 데이터 변화의 흐름을 파악하기 쉽다.
p.266~300 고차 함수. 함수를 인자로 받고 함수를 리턴한다. 중복되는 코드들에서 변화되는 부분만 함수의 인자로 받아서 리팩토링한다. 고차 함수를 과하게 사용하면 추상화 수준이 높아져서 코드를 이해하기 어려울 수도 있다. 좋은 코드인지가 가장 중요하다. map 함수를 통해 배열을 반복하면서 기존의 배열을 다른 배열로 변환할 수 있다. 매우 유용하다.