
2025 / 03 / 11
오늘 수업 시간에는 React에서 컴포넌트를 만들고 사용하는 법을 복습했습니다.
정적 콘텐츠와 동적 콘텐츠에 대해 알아보고 값을 넣어보는 시간을 가졌습니다.
아직까지는 캡스톤 때 사용한 React 부분이라 어려운 부분은 없고 괜찮은 것 같습니다.
- 애플리케이션을 구성하는 기본적인 UI 단위입니다.
- 컴포넌트를 사용하면 애플리케이션의 UI를 독립적인 부분으로 나누어 관리하고, 재사용할 수 있어 개발 효율성과 유지보수성을 크게 향상시킬 수 있습니다.
독립적인 UI 블록
- 컴포넌트는 애플리케이션의 화면의 독립적인 부분입니다.
- 각 화면을 구성하는 다양한 요소를 하나의 단위로 묶어서 관리할 수 있습니다.
재사용 가능
- 한 번 정의된 컴포넌트는 여러 곳에서 재사용이 가능합니다.
- 같은 UI를 여러 번 사용해야 할 때 유용합니다.
구성 요소
- 컴포넌트는 함수형 컴포넌트 또는 클래스형 컴포넌트로 정의할 수 있습니다.
- 최근에는 함수형 컴포넌트가 주로 사용됩니다.
자기 포함성
- 컴포넌트 내부에서 사용할 데이터를 props(속성) 또는 state(상태)로 전달받아 UI를 동적으로 변화시킬 수 있습니다.
- 아래의 코드는 컴포넌트를 사용한 예시입니다.
import "./App.css"; function MainGoal() { return ( <div> <p className="main-goal"> <strong>중요:</strong> " 벨로그 작성 " 미루지 않기 </p> </div> ); } function FirstInfo() { return ( <div> <p> <code>나의 첫번째 목표</code> 포켓몬 카드 뽑기 </p> </div> ); } function SecondInfo() { return ( <div> <p> <code>나의 두번째 목표</code> 수업 시간에 배운 내용 이해하기 <br /> (수업 내용이 어려운거 같아요.) </p> </div> ); } function ThridInfo() { return ( <div> <p> <code>나의 세번째 목표</code> 수면 패턴 회복하기 </p> </div> ); } function App() { return ( <div id="app"> <h1>오늘의 목표</h1> <FirstInfo /> <SecondInfo /> <ThridInfo /> <MainGoal /> </div> ); } export default App;
재사용성
- 컴포넌트를 재사용할 수 있어 코드 중복을 줄일 수 있습니다.
- 예를 들어, 위에서 사용한 MainGoal이나 FirstInfo 컴포넌트는 여러 번 사용할 수 있습니다.
유지보수성
- 각 UI 부분을 컴포넌트로 나누어 관리하면 수정이 간편합니다.
- 목표 내용이나 스타일을 변경할 때, 해당 컴포넌트만 수정하면 됩니다.
독립성
- 컴포넌트는 독립적으로 개발되고, 다른 컴포넌트와 연결되어 동작합니다.
- 다른 컴포넌트에 영향을 미치지 않으므로 버그를 추적하고 수정하는 데 유리합니다.
Static Content
- 변경되지 않는 콘텐츠를 의미합니다.
- 웹 페이지를 로드할 때 한 번 작성된 내용은 런타임 동안 변경되지 않습니다.
1) 변경되지 않음
- 처음 작성될 때 그 내용이 고정되어 있습니다.
- 사용자가 웹 페이지를 새로 고침하지 않는 이상 변경되지 않습니다.
2) 서버에서 직접 전달
- 서버에서 파일로 직접 전달되어 브라우저에서 그대로 표시됩니다.
Dynamic Content
- 런타임에 변경되는 콘텐츠를 의미합니다.
- 사용자의 행동이나 외부 데이터에 따라 웹페이지의 내용이 달라집니다.
- ex) 사용자가 입력한 정보, 서버에서 받아온 데이터에 기반한 콘텐츠, 혹은 날짜나 시간에 따라 바뀌는 콘텐츠 등이 동적 콘텐츠에 해당합니다.
1) 실시간 변경
- 사용자의 상호작용이나 서버와의 통신에 의해 실시간으로 변경됩니다.
2) 데이터 기반
- 종종 외부 데이터베이스나 API에서 가져온 데이터를 기반으로 만들어집니다.
- 해당 코드는 동적 콘텐츠를 처리하는 예시를 보여줍니다.
import "./App.css"; import mainImg from "./assets/image.png"; const activity = ["운동하기", "책읽기", "코딩 연습"]; function getRandomInt(max) { return Math.floor(Math.random() * (max + 1)); } function App() { const getActivity = activity[getRandomInt(activity.length - 1)]; return ( <div> <p>랜덤 추천 활동</p> {/* html 태그 안에 자바스크립트 변수를 넣는 방법 */} <div>오늘의 추천 활동 {getActivity}</div> <img src={mainImg} /> </div> ); } export default App;
랜덤 추천 활동
이미지
<img src={mainImg} />는 정적 콘텐츠의 예시입니다.44일차 후기
- 정적 콘텐츠와 동적 콘텐츠의 차이를 알고 실습도 해봐서 좋았습니다.
- 자바스크립트에서 동적으로 값을 받아오는 것과 비슷해서 어렵지는 않았습니다.
- 컴포넌트에 대해 다시 한 번 내용을 정리하고 이해할 수 있었습니다.
- 실습을 하면서 import와 export를 다시 사용해봤는데.. import를 적어야 하는데 자연스럽게 계속 export 적게 되는 것 같습니다. ˚‧º·(˃̣̣̥˓̭˂̣̣̥)‧º·˚
- 오류 띄우면 혼자서 놀라고.. 고치고를 반복하는데 언젠가.. 익숙해지겠죠? ( ˘ •ω• ˘ )