코어 프런트엔드 UI (리액트와 순수 자바스크립트로 키우는 실무 사고력)

코어 프런트엔드 UI (리액트와 순수 자바스크립트로 키우는 실무 사고력)

$38.00
Description
프런트엔드 UI의 핵심, 순수 자바스크립트부터 리액트 심화 패턴까지!
프런트엔드 개발은 단순한 라이브러리 활용을 넘어, 브라우저 메커니즘을 이해하고 제어하는 과정입니다. 다만 매일 쓰는 React 훅과 컴포넌트 이면에 있는 순수 자바스크립트(Web API)의 작동 원리와 효율적인 UI 설계 구조를 제대로 이해하기는 쉽지 않습니다.

이 책은 같은 UI를 React와 순수 자바스크립트 두 방식으로 구현하며, 각 접근법의 장단점을 비교해 이해할 수 있도록 돕습니다. 나아가 현대 프레임워크 환경 속에서 자바스크립트 생태계를 다루는 데 필요한 실무 통찰을 제공합니다.

《코어 프런트엔드 UI》는 기능별 작성법이나 사용법을 나열하고 소개하는 데 그치지 않고, UI가 동작하는 원리와 설계 기준을 깊이 있게 다룹니다. Intersection Observer를 활용한 가시성 제어, customValidity를 통한 폼 검증 등 최신 Web API와 리액트 기술을 다루고, HTML과 CSS만으로 해결할 수 있는 영역까지 아우르며, 폭넓고 유연한 시야를 가질 수 있도록 돕습니다.

이 책은 정답을 제시하기보다 해결 과정에서의 고민과 시도, 그리고 문제 해결을 위한 실마리를 공유합니다. 초보 개발자라면 복잡한 UI 개념을 단계적으로 이해하며 자신감을 얻을 수 있고, 숙련된 개발자라면 프레임워크에 기대지 않고 문제를 해결하는 역량을 기를 수 있습니다. 코드를 따라 치는 것을 넘어, 스스로 생각하고 설계하는 힘을 길러 보시기 바랍니다.

★ 이 책에서 다루는 내용 ★

◎ 리액트와 순수 자바스크립트로 동일한 UI를 구현하며 각 패러다임을 이해하기
◎ 아코디언, 탭 메뉴, 툴팁 등 필수 UI 컴포넌트의 밑바닥 설계
◎ Intersection Observer, scrollIntoView 등 순수 자바스크립트 API 실전 활용
◎ useRef, createPortal을 활용한 DOM 직접 제어 및 레이어 관리 기법
◎ 무한 스크롤, 캐러셀 등 UX를 좌우하는 핵심 UI 로직 구현
◎ 컴파운드 컴포넌트와 헤드리스 패턴을 적용한 재사용 가능한 설계 구조
저자

정재남

정재남
늦은나이에개발에입문한,호기심많은예비아빠입니다.인프런지식공유자(inflearn.com/users/46840)이며,유튜브(youtube.com/@FERoy)도운영하고있습니다.웹퍼블리셔로시작해프런트엔드개발자로성장하는동안,디자이너,기획자,개발자와협업하고조율하며다양한UI문제를해결해왔습니다.늘더간단하거나정확한방법은없을지고민하며,정답이정해지지않은문제는여러대안을놓고비교하며풀어가는과정을좋아합니다.그과정에서얻은시행착오와통찰을이책에담았습니다.

목차

▣00장:환경구성
0.0프로그램설치
__0.0.0크롬브라우저설치
__0.0.1Node.js와npm설치
__0.0.2비주얼스튜디오코드설치
0.1프로젝트환경구성
__0.1.0설정완료코드활용
__0.1.1Vite+TanStackRouter프로젝트생성
__0.1.2프로젝트시작
__0.1.3초기화및기본환경설정
__0.1.4공통코드수정
__0.1.5경로처리
0.2순수자바스크립트실행기

▣01장:아코디언
1.0공통코드작성
1.1첫번째아코디언
1.2CSS로숨김/보임처리
1.3CSS애니메이션추가
__1.3.0기본애니메이션
1.4순수자바스크립트버전
1.5HTML만으로작성
__1.5.0radioinput
__1.5.1details
1.6ctrl+F검색기능추가
1.7심화-명령형프로그래밍과선언형프로그래밍
__1.7.0명령형프로그래밍
__1.7.1선언형프로그래밍
__1.7.2두패러다임비교
1.8정리

▣02장:탭메뉴
2.0공통코드작성
2.1첫번째탭메뉴
2.2CSS로숨김/보임처리
2.3CSS애니메이션추가
__2.3.0간단한애니메이션-transition
__2.3.1복잡한애니메이션-animation
__2.3.2애니메이션종료시클래스제거하기
2.4순수자바스크립트버전
2.5HTML만으로작성-radioinput
2.6정리

▣03장:툴팁
3.0공통코드작성
3.1터치또는클릭으로동작하는툴팁
3.2최대하나의툴팁만열려있도록처리
__3.2.0툴팁을열때기존툴팁을모두닫기-contextAPI활용
__3.2.1다른곳클릭시툴팁모두닫기-이벤트핸들러
__3.2.2HTML만으로작성-details
3.3화면을벗어나지않도록처리(1)–직접계산
__3.3.0viewportContext
__3.3.1scroll이벤트관찰대상과resize관찰대상분리하기
__3.3.2일반HTML요소에대한좌표정보
__3.3.3useStyleInsideViewport훅
__3.3.4마무리–코드적용하기
3.4화면을벗어나지않도록처리(2)–anchorpositioning
3.5순수자바스크립트버전
__3.5.0컨텍스트대체하기–옵서버패턴
__3.5.1훅대체하기–역할축소
__3.5.2툴팁컴포넌트
3.6정리

▣04장:반응형텍스트박스
4.0공통코드작성
4.1canvas로높이계산
4.2레플리카기법
4.3원본의scrollHeight로조절
4.4순수자바스크립트버전
4.5정리

▣05장:여러줄말줄임
5.0공통코드작성
5.1canvas로줄수계산
5.2레플리카기법
5.3원본의scrollHeight로조절
5.4순수자바스크립트버전
5.5정리

▣06장:폼제어
6.0공통코드작성
6.1숫자구분기호자동완성인풋
__6.1.0구분기호를표기하는방법
__6.1.1사용자입력즉시구분기호삽입하기
__6.1.2커서이동및백스페이스문제해결
__6.1.3최초포커스시커서이동시키기
__6.1.4유효성검사
6.2복잡한폼제어
__6.2.0제어컴포넌트vs비제어컴포넌트,제어폼vs비제어폼
__6.2.1비제어폼
__6.2.2제어폼
6.3커스텀훅
6.4정리

▣07장:지연로딩
7.0공통코드작성
7.1직접계산
__7.1.0기본코드작성
__7.1.1화면안에있는지판단하기
7.2IntersectionObserver(+native)
__7.2.0IntersectionObserver훅적용
__7.2.1HTMLloading속성활용
7.3순수자바스크립트버전
__7.3.0useIntersectionObserver훅대체하기
__7.3.1지연로딩함수
__7.3.2지연로딩이미지컴포넌트
7.4미리보기제공
7.5정리

▣08장:페이지네이션과무한스크롤
8.0공통코드작성
8.1전통적인페이지네이션-내비게이션바
__8.1.0기본구성
__8.1.1서버응답시간Mocking하기
__8.1.2훅으로추출
__8.1.3내비게이션바컴포넌트분리
__8.1.4최대페이지제한기능추가
__8.1.5최대페이지를알수없는경우
8.2무한스크롤
__8.2.0무한스크롤기능구현
__8.2.1원인분석및문제해결
8.3순수자바스크립트버전
8.4무한스크롤성능최적화
__8.4.0Windowing#1
__8.4.1Windowing#2
__8.4.2CSScontent-visibility:auto;
8.5정리

▣09장:캐러셀
9.0공통코드작성
9.1기본캐러셀
9.2스크롤박스
__9.2.0화면단위로이동하는스크롤박스
__9.2.1스크롤박스캐러셀
__9.2.2기본캐러셀vs.스크롤박스
9.3무한캐러셀
9.4심화-3D캐러셀
9.5정리

▣10장:스크롤스파이
10.0공통코드작성
10.1스크롤이벤트
10.2IntersectionObserver
10.3내비게이션에스크롤박스적용
__10.3.0스크롤박스컴포넌트분리
__10.3.1스크롤초점이동1안-ScrollBox에서자동으로수행
__10.3.2스크롤초점이동2안-상위컴포넌트에서명령
10.4정리

▣11장:스낵바
11.0공통코드작성
11.1순수자바스크립트버전
11.2Context
11.3Portal
__11.3.0Portal을컴포넌트에서호출
__11.3.1portal을훅에서전달
11.4정리

▣12장:모달
12.0공통코드작성
12.1Context
__12.1.0컴파운드컴포넌트CompoundComponent
__12.1.1modalContext및useModal훅
__12.1.2실제모달컴포넌트작성및적용
__12.1.3스크롤이슈파악및해결
__12.1.4데이터동기화문제
12.2createPortal+context+HOC
__12.2.0기본동작구현
__12.2.1스크롤이슈해결
12.3순수자바스크립트버전
12.4HTMLdialog(1)
12.5컨텍스트외부에서모달호출
__12.5.0외부에서제어가능하도록만들기
__12.5.1모달을열때값전달가능하도록변경
12.6정리

▣13장:팝오버
13.0공통코드작성
13.1콘텐츠내부에서그대로렌더링
13.2createPortal
13.3HTMLdialog
13.4popover속성
13.5.정리

▣14장:드롭다운
14.0공통코드작성
14.1컴파운드컴포넌트
__14.1.0기본기능구현
__14.1.1외부클릭시닫힘처리(1)
__14.1.2외부클릭시닫힘처리(2)
__14.1.3키보드입력시기능구현
14.2헤드리스컴포넌트HeadlessComponentHTMLdialog
__14.2.0render패턴
__14.2.1훅패턴
__14.2.2컴파운드컴포넌트vs.헤드리스컴포넌트
14.3createPortal
14.4정리

▣15장:자동완성
15.0공통코드작성
15.1정적인자동완성
15.2네트워크요청에의한자동완성
15.3정리

▣16장:갤러리
16.0공통코드작성
16.1컴포넌트재활용–지연로딩,스크롤박스,
16.2모달,캐러셀
16.3라이트박스갤러리
16.4정리

▣17장:심화-경로처리
17.0경로처리를위한routes하위컴포넌트
17.1경로-컴포넌트매핑
__17.1.0중첩객체(nestedobject)로구성
__17.1.1단일깊이의객체로구성
__17.1.2GNB컴포넌트
17.3routeMap파일수정-최종코드

▣부록:의존파일모음