[7팀 박희정] Chapter 2-2. 나만의 React 만들기#53
Open
Pheejung wants to merge 14 commits intohanghae-plus:easyfrom
Open
Conversation
added 14 commits
November 20, 2025 00:57
- createVNode: JSX 변환 과정 설명 - normalizeVNode: 6가지 케이스별 처리 로직 설명
- createElement: Property vs Attribute 차이 설명
- 이벤트 위임 패턴 설명 주석 추가
- 렌더링 사이클 설명 주석 추가
- Diff 알고리즘 7가지 케이스 설명
- 초기 로딩: 상품이 없을 때 6개 스켈레톤 표시 - 무한 스크롤: 상품이 있을 때 추가 6개 스켈레톤 표시 - 로딩 상태에 따른 명확한 UI 구분으로 사용자 경험 개선
- deploy 명령어로 빌드 및 gh-pages 배포 자동화
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
과제 체크포인트
배포 링크
https://pheejung.github.io/front_7th_chapter2-2/
기본과제
가상돔을 기반으로 렌더링하기
이벤트 위임
심화 과제
Diff 알고리즘 구현
과제 셀프회고
아하! 모먼트 (A-ha! Moment)
1. Virtual DOM은 그냥 JavaScript 객체다!
처음엔 Virtual DOM이 뭔가 특별한 기술인 줄 알았는데, 알고 보니 단순한 객체였습니다.
깨달음:
2. JSX는 Babel이 변환한 함수 호출이다.
깨달음:
기술적 성장
새로 학습한 개념
1. Diff 알고리즘의 7가지 케이스
가장 복잡했지만 가장 중요한 부분이었습니다.
아직 이해가 잘 되지않아 추후에 더 공부하려고 합니다!
배운 점(아직도 배우고 있습니다!)
2. Property vs Attribute
체크박스가 작동 안 하는 이슈를 겪으면서 배웠습니다.
Boolean 속성: checked, disabled, selected, readOnly
개선이 필요한 부분
1. Key 기반 최적화 미구현
현재는 순서 기반 비교만 수행:
개선 필요
문제점:
학습 효과 분석
가장 큰 배움
"추상화"의 진짜 의미를 이해
React를 사용할 때는 그냥 편한 도구였는데, 직접 구현하니 내부에서 엄청난 최적화가 일어나고 있다는 걸 알게되었습니다.
추가 학습이 필요한 영역
1. Fiber 아키텍처
2. Hooks 구현
3. 메모이제이션
과제 피드백
생각해보지 않았던 가상 DOM이나 React의 구조에 대해 조금이나마 알 수 있었던 시간이었던 것 같습니다.
처음 과제를 했을 때 막막했는데 AI가 작성한 코드를 보면서 흐름을 이해할 수 있었습니다.
시간이 된다면 hard도 도전해보며 동작 원리에 대해 자세히 배우는 시간을 가져야겠다는 생각을 했습니다.
리뷰 받고 싶은 내용
AI의 도움으로 먼저 코드를 구현한 뒤, 코드 분석과 이해, 그리고 혼자 첨부터 다시 구현을 하는 방법으로 순서로 진행했습니다.
이렇게 AI에 많이 의존하는 학습 방식이 과연 괜찮은지 혹은 스스로 먼저 더 많이 고민을 해보고 구현하는 것이 더 효과적일지 고민이 됩니다.
앞으로 더 깊이 있게 성장하려면 어떤 접근이 좋을지 그리고 AI 의존도가 높아질 때 주의해야 할 점이 있다면 어떤것이 있을지 멘토님의 의견을 듣고 싶습니다.