-
Notifications
You must be signed in to change notification settings - Fork 78
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
[2팀 이도원] [Chapter 1-1] 프레임워크 없이 SPA 만들기 #24
base: main
Are you sure you want to change the base?
Conversation
|
||
const renderMainPage = () => { | ||
document.getElementById("root").innerHTML = MainPage(); | ||
document |
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.
화면이 그려진 이후에 이벤트 리스너 달려고 따로 렌더 함수 안에 추가하신거죠~?
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.
넵 맞아요! 뭔가 render 함수도 페이지 별로 만드는게 아니라 하나로 합치고 싶었는데 이 부분 때문에 render 함수를 여러개 만들어서 조금 찝찝합니다...ㅎㅎ
저는 클라이언트 쪽 상태 관리를 직접 사용할 일이 없어서 Zustand 같은 라이브러리는 사용법만 알고 있었는데, 도원님의 코드를 보면서 "아, 이렇게 활용하는 거구나!" 하고 배울 수 있었어요:) |
앗 근데 지금와서 다시 코드 보다보니 zustand라는 구조는 비슷해보이기도 하는데, 결국은 클로저를 이용해서 상태관리를 했다고 보는게 더 정확할 것 같아요!! 저도 zustand의 내부 구현을 정확히 아는 것은 아니다보니 혹시라도 오해하실까봐 급하게 덧붙여봅니다..!! |
과제 체크포인트
✅ 기본 과제
1) 라우팅 구현:
2) 사용자 관리 기능:
3) 프로필 페이지 구현:
4) 컴포넌트 기반 구조 설계:
5) 상태 관리 초기 구현:
6) 이벤트 처리 및 DOM 조작:
7) 라우팅 예외 처리:
✅ 심화 과제
1) 해시 라우터 구현
2) 라우트 가드 구현
3) 이벤트 위임
과제 셀프회고
기술적 성장
React 없이 SPA를 만들어 본 적이 없다보니 이번에 새롭게 알게 된 개념이 많았습니다!
코드 품질
학습 효과 분석
과제 피드백
스타트업에서 일하다보니 기획도 자주 바뀌고, 빠르게 구현하는게 더 급해 'TDD는 이상적이야' 라는 생각과 '테스트 코드'의 중요성에 대해 잘 실감하지 못했습니다. 근데 이번에 과제할 때 테스트 코드가 제공되어 TDD 방식으로 작업해보기도 하고, 리팩토링할 때도 테스트 코드를 돌리면서 작업하니 훨씬 생산성이 증가함을 느낄 수 있었습니다!
리뷰 받고 싶은 내용
평소 디자인 패턴에 대해 약하다 생각하고 잘 적용해본 적이 없다보니 이번 과제에 디자인 패턴을 적용해보지 못한 점이 제일 아쉬웠습니다.
다른 분들 코드도 보다보니 상태 관리(제 코드 기준 useUserStore.js)나 router(제 코드 기준 useRouter.js)에서 디자인 패턴을 적용한 경우가 많았던 것 같은데, 코치님이 생각하셨을 때 이번 과제에 적용했으면 좋았을 법한 '디자인 패턴'이 있으실까요?
추후 리팩토링해볼 때 참고해보려고 합니다!