18장: 프로젝트 2 – 쇼핑 카트 애플리케이션
React, 기초에서 실전 활용까지 한눈에 이해하기
React는 사용자 인터페이스를 신속하게 만들기 위한 현대적인 자바스크립트 라이브러리입니다. 한 번 배우면 가장 단순한 버튼부터 복잡한 쇼핑몰, 실시간 웹앱까지 하나의 원리로 확장할 수 있죠. 이 글에서는 React의 핵심 원리와 실전 프로젝트에서 사용하는 기술을 단계적으로 풀이합니다.
컴포넌트, UI를 쪼개는 힘
모든 React 앱의 출발점은 "컴포넌트"입니다. 버튼, 상품 카드, 장바구니 등 독립적인 화면 조각으로 개발자가 원하는 만큼 쪼갤 수 있습니다. 각각의 컴포넌트는 자바스크립트 함수처럼 동작하며, 재사용성과 유지보수가 뛰어납니다. 마치 레고 블록을 쌓듯 UI를 설계할 수 있다는 점이 React만의 매력입니다.
데이터 흐름, props와 상태(state)
React의 데이터 흐름은 단방향입니다. 부모 컴포넌트에서 자식 컴포넌트로 값을 넘겨주는 "props", 그리고 각 컴포넌트 내부에서 변화시키는 "state"가 구분되어 관리됩니다. 사용자의 입력이나 클릭, 혹은 서버에서 받아온 데이터가 state에 저장되고, 이 값이 변할 때마다 UI도 자동으로 갱신됩니다.
JSX, 코드와 디자인의 경계 허물기
React에서는 JSX라는 특별한 문법을 사용합니다. 자바스크립트 안에 HTML 요소를 직접 넣는 듯한 형식이지만, 실제로는 더 엄격한 문법 규칙을 지닙니다. 이 방식 덕분에 UI의 구조와 동작을 한눈에 파악하고, 프로젝트 전체를 논리적으로 설계할 수 있습니다.
실전 적용 – 쇼핑 카트 프로젝트의 예
단순한 카운터, 목록 출력에서 그치지 않고 실생활에서 자주 쓰이는 쇼핑몰 장바구니 애플리케이션 역시 React로 빠르고 효율적으로 만들 수 있습니다. 상품 목록과 장바구니를 컴포넌트로 분리하고, props로 데이터를 전달하거나, useState·useEffect 등의 훅을 써서 데이터를 관리합니다. 페이지 이동 역시 React Router를 활용해 구현할 수 있습니다.
실제 프로젝트에서는 다음과 같은 방법이 자주 활용됩니다:
상품 데이터의 배열을 map 함수로 여러 개의 상품 카드를 만들고,
사용자가 "장바구니 담기" 버튼을 누르면 해당 상품 정보가 state에 저장됩니다.
장바구니 페이지에서는 추가된 상품들을 리스트로 보여주고, 수량 조절이나 삭제 기능도 손쉽게 구현 가능합니다.
기초의 탄탄함, 실전의 든든함
React를 처음 배울 때는 컴포넌트 구조, state 관리, 이벤트 처리 등 기본기를 차근차근 다지는 것이 필요합니다. 하지만 어느 순간부터는 실제로 쓸 만한 애플리케이션을 직접 만들어보면서 자신만의 문제 해결 능력을 키우는 것이 중요합니다.
복잡해보이던 쇼핑몰이나 카트 같은 실전 프로그램도 결국 작은 컴포넌트를 모아, 상태와 데이터를 일관성 있게 관리하는 것에서 출발합니다. 오늘 한 단계씩 따라오다 보면 React로 자기만의 웹앱을 만들 수 있을 것입니다.