[일일 회고] 2023-04-30 (일)
# 책은 한번에 1권만 읽기 책상에 책을 여러권 올려두고 번갈아 가면서 보게 되니 개인적으로는 효율이 떨어지는 것 같다고 느꼈다. 아마도 이것도 알아야하고 저것도 알아야하고 하는 듯한 마음에서 이렇게 했던 것이 아닌가 싶다. 책상에 책을 1권만 놓고, 다 읽으면 그때서야 다음 책으로 넘어가는 방식으로 바꾸려고 한다. 집중해서 읽는 느낌이 더 좋다.
# 책은 한번에 1권만 읽기 책상에 책을 여러권 올려두고 번갈아 가면서 보게 되니 개인적으로는 효율이 떨어지는 것 같다고 느꼈다. 아마도 이것도 알아야하고 저것도 알아야하고 하는 듯한 마음에서 이렇게 했던 것이 아닌가 싶다. 책상에 책을 1권만 놓고, 다 읽으면 그때서야 다음 책으로 넘어가는 방식으로 바꾸려고 한다. 집중해서 읽는 느낌이 더 좋다.
~p.22 1회독을 했던 책인데 얕게 공부했던 것 같아 다시 펼쳐보게 됐다. 데이터 타입 - 기본형, 참조형 변수와 식별자. 변수는 변할 수 있는 수, 식별자는 데이터를 식별하는 데 사용하는 이름, 변수명. 변수와 상수에서는 변수 영역의 값이 변할 수 있는지, 불변성을 얘기할 때는 데이터 영역의 값이 변할 수 있는지 기본형, 참조형 복사. 모두 주소값을 복사하지만 참조형은 데이터 영역도 주소 값을 갖고 있기 때문에 방식이 다르다. 불변 객체.
# 괴롭게 공부한다는 것 의식적으로 제대로 공부한다는 것을 실천하려고 해보니 '괴롭다' 라는 느낌이 팍 왔다. 본능적으로 '이렇게 하면 괴로울거야' 이런 느낌이 오는데 이게 맞는거구나 하고 괴로움을 참고 해보니 확실히 이렇게 해야 제대로 배울 수 있는 것 같다. 이런 고통에 계속 스스로를 던지면서 훈련해야 할 것 같다.
쇼핑몰 프로젝트에서 어드민 페이지를 구현하고 있다. 어드민 페이지는 사실 서비스를 운영하기 위해서 대부분 갖춰야 하는 기능이라고 생각한다. 가장 중요한 것은 인증된 계정만 어드민 페이지에 접근할 수 있다는 것이다. 생각보다 보안적인 측면에서 신경을 많이 써야한다고 생각한다. swr을 사용하여 server state를 다루고, form을 편리하게 다루기 위해 react-hook-form을 사용하였다. form에서 input을 하나 만들 때 마다 state와 event handler 함수와 새롭게 추가되어야 할 것들이 너무 많은데 react-hook-form은 이와 관련된 것들을 추상화하여 제공해주기 때문에 form을 편리하게 관리할 수 있다. swr을 사용했지만, 나는 개인적으로 @tanstack/reac..
p.71~83 프레임워크 없이 만드는 렌더링 엔진. 레지스트리 작성 방법과 가상 DOM 알고리즘. 변경이 발생하게 만드는 것이 이벤트. YAGNI 원칙. 실제로 필요할 때 구현하라. DOM 이벤트 API on + event, addEventListener 캡처 단계, 목표 단계, 버블 단계.
# 오랜만에 책 쇼핑 회사 법인카드를 4월에는 제대로 안써서 돈이 조금 남아서 책 쇼핑을 왕창 했다. '아샬이 추천하는 책 목록' 영상을 보고 장바구니에 마구 담았다. - 어떻게 공부할 것인가 - 실용주의 사고와 학습 - 어떻게 문제를 풀 것인가? - 프로그래머, 열정을 말하다 - 프로그래머의 길, 멘토에게 묻다 - 소프트웨어 장인 - 이 책도 읽지 마세요 최근에는 매일 책을 읽는 시간이 조금 줄었는데, 다시 열심히 달려야겠다. 😎
~p.71 프레임워크는 코드를 호출한다. 코드는 라이브러리를 호출한다. Angular와 Moment.js로 설명한다. 커뮤니티의 표준도 프레임워크의 제약으로 간주한다. 리액트의 제약 사항은 선언적 패러다임의 사용. 기술적으로 보면 리액트는 렌더링 라이브러리다. 내 문제를 해결하는 데 있어 다른 사람의 코드가 최적일 수 없다는 관점. 렌더링은 웹 애플리케이션에서 가장 중요한 기능. 순수 함수로 요소를 렌더링 하는 것. view = f(state) 돔 조작이나 애니메이션은 requestAnimationFrame 내부에서 하는 것 권장. 가상 DOM의 개념은 선언적 렌더링 엔진의 성능을 개선시키는 방법, reconciliation, diff 알고리즘.
# 개선점 찾기 서버단에서 캐싱해서 사용하고 있던 데이터가 있었는데 캐시 무효화가 언제는 됐다가 언제는 안됐다가 하는 경우가 발생했다. 그래서 데이터가 잘못 전달이 되었고 문제가 조금 있었다. 디버깅을 해봤는데 우선은 코드 레벨에서도 문제가 있었다. 당연하다는 듯이 사용하고 있었는데 동작은 하지만, 의도와 다르게 동작하고 있었다. 곰곰이 생각하다가 아키텍처 측면에서도 굳이 이렇게 해야하나? 라는 게 있어서 다른 방식을 제안을 했고 좋은 것 같다고 하여 POC를 하기로 했다. 스스로 계속 배우면서 발전시켜 나가고 싶다. 딱 퇴근할 때 저녁에 장애가 나서 한 달에 책 한 권 읽기 모임에 참여를 못했다 😭