-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[7팀 김영우] [Chapter 1-2] 프레임워크 없이 SPA 만들기 #22
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
어떤 액션이 일어나는지 직관적으로 알 수 있어 좋았지만 action에 관련된 내용이 globalStore.js에 들어가면 일관성있어 설계상 더 좋을 것 같습니당!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
감사합니다 지금보니 확실히 globalState로 넣어서 처리하는게 더 깔끔해보이네요 피드백 감사드려요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
post.jsx 와 마찬가지로 globalStore.js에 액션을 정리하면 일관성있을 것 같아요!!
과제 체크포인트
기본과제
가상돔을 기반으로 렌더링하기
이벤트 위임
심화 과제
1) Diff 알고리즘 구현
2) 포스트 추가/좋아요 기능 구현
과제 셀프회고
이번주차는 개인적인 몸상태가 좋지 않은 상태에서 시작한 상태였기 때문에 기본과제만 통과하자는 마인드로 임하였습니다.
가장 힘들었던 부분은 이벤트 매니저 부분으로 해당 이벤트들을 어떻게 관리해야될지 감이 오지않았던 것이 가장 컸습니다.
대부분의 파일들을 제공해주신 상태였기 때문에 필요한 내용만 작성하면 되었지만 위임 자체에 대한 개념이 거의 없는 상태이기도 하였고, 시간을 많이 투자할 수 없었기 때문에 많이 막힌 것으로 생각합니다.
또한 제가 약한 부분에 대해서 잘 알게 되었는데, 여러 개의 파일을 타고 들어가면 어디서부터 시작되었는지 까먹는다는 것을 알게 되었고 익숙해지기 위하여, 몇 가지 방법을 강구해봐야할 것 같습니다.
기술적 성장
새로 학습한 개념
기존 지식의 재발견/심화
구현 과정에서의 기술적 도전과 해결
코드 품질
개인적으로 리팩토링이 필요한 부분이 꽤나 많다고 생각이 듭니다. 이번에는 시간이 모자라 구현에 급급하였기 때문에
updateElement.js
나eventManager.js
,createElement.js
등에서 조금 더 리팩토링이 필요하다고 생각이 듭니다.학습 효과 분석
확실히 모르는 영역에 대해서 배운것이 가장 컸던것 같습니다. 이전에도 적어둔 이벤트 위임에 대해서 가장 크게 배웠습니다. 위임된 이벤트에 대한 addEventListener, removeEventListener를 관리하고 설정하는 방법에 대해서 더 자세히 알고 싶어졌습니다.
학습을 계속 진행하다보니 모든 부분에서 다 부족해보이고 모자라다는 느낌을 많이 받았습니다. 자바스크립트에 대한 전반적인 이해 부족이 문제가 아닐까 생각이 듭니다. 이번 주차의 추가 학습이 필요하다고 여겨지는 영역은 diff알고리즘 영역에 대해서 더 공부해봐야겠다는 생각이 듭니다.
이벤트 위임이나 상태관리에 대한 영역은 실무에서 직접 적용할 수 있을지는 조금 더 생각을 해봐야할 것 같습니다.
과제 피드백
과제에서 모호하거나 애매했던 부분
처음에 잘못 이해하고 있었던 영역이 createElement와 normalizeVNode 영역이었습니다. 두 개의 함수를 구분하여 적용한다는 생각을 잘 못하고 계속 하나로 합쳐서 구현한다는 생각을 지속적으로 하다보니 두 함수에서 겹치는 영역이 많아져서 동일한 로직이 두 번 적용되는 버그가 있었습니다. 이러한 부분을 나중에 깨달아 분리하는 작업을 진행하게 되었고 왜 그랬을지 생각을 해보았는데 노션의 설명에 있는 조건 부분이 비슷하게 작성되어있어 헷갈린것 같았습니다.
지금은 각각의 함수가 각자의 로직만을 실행하도록 정상적으로 적용해두었습니다.
과제에서 좋았던 부분
여러 가지 함수에 대해서 나누어 구현하는 것이 좋았습니다. 저는 항상 처음 구현할 때 한 번에 구현하여 나중에 리팩토링 시 함수를 나누는 것이 어려운 작업 중에 하나였는데 미리 나누어진 부분을 통하여 내용을 채운 뒤 확인하니 조금 더 분리를 명확하게 할 수 있어서 좋았습니다.
리뷰 받고 싶은 내용
src/lib/createElement.js
에서 updateAttributes라는 함수가 있는데src/lib/updateElement.js
의 addNewEvents와 어느정도의 유사성이 보인다고 생각이 들어 공통된 영역에 가깝다고 생각하는데 만약 따로 함수로 뺀다면 lib에 파일을 생성하는 것이외에 보편적으로 사용하는 파일의 위치가 따로 있을까요?(추가)