리액트 타입 연결 방법과 사용법 (React + TypeScript)

리액트 프로젝트에 타입스크립트를 적용하고, 컴포넌트에 타입을 연결하는 방법을 단계별로 정리했습니다.
처음 리액트와 타입스크립트를 접하는 분도 쉽게 따라할 수 있도록 설명합니다.

타입스크립트와 리액트를 함께 사용하면 타입 안정성, 가독성, 유지보수성이 모두 향상됩니다.


1. 타입스크립트 적용 (설치 및 환경설정)

새 프로젝트 생성 시

npx create-react-app my-app --template typescript
yarn create react-app my-app --template typescript
위 명령어로 타입스크립트가 적용된 리액트 프로젝트를 바로 시작할 수 있습니다.

기존 프로젝트에 타입스크립트 추가

  1. 타입스크립트 및 타입 패키지 설치
    npm install --save typescript @types/node @types/react @types/react-dom
    yarn add typescript @types/node @types/react @types/react-dom
  2. tsconfig.json 생성 및 설정
    주요 옵션 예시:
    {
      "compilerOptions": {
        "target": "es5",
        "lib": ["dom", "dom.iterable", "esnext"],
        "allowJs": true,
        "skipLibCheck": true,
        "esModuleInterop": true,
        "allowSyntheticDefaultImports": true,
        "strict": true,
        "forceConsistentCasingInFileNames": true,
        "module": "esnext",
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "isolatedModules": true,
        "noEmit": true,
        "jsx": "react-jsx"
      },
      "include": ["src"]
    }
  3. 파일 확장자 변경
    .js.ts, .jsx.tsx로 변경하세요.

2. 리액트 컴포넌트에 타입 연결 (Props 타입 선언)

컴포넌트에 타입을 연결하는 방법 3가지 입니다.

1) interface 또는 type을 사용한 Props 타입 선언

import React from 'react';

interface CircleProps {
  bgColor: string;
  borderColor?: string;
  text?: string;
}

const Circle: React.FC<CircleProps> = ({ bgColor, borderColor, text }) => (
  <div style={{
    backgroundColor: bgColor,
    border: borderColor ? `2px solid ${borderColor}` : undefined,
    borderRadius: '50%',
    width: 100,
    height: 100,
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
    {text}
  </div>
);

export default Circle;

2) React.FC 제네릭 사용

type AppProps = { title: string };

const App: React.FC<AppProps> = ({ title }) => {
  return <h1>{title}</h1>;
};

3) 인라인 타입 선언

const App = ({ title }: { title: string }) => {
  return <h1>{title}</h1>;
};

3.  예시 코드

App.tsx

import React from 'react';
import Circle from './Circle';

function App() {
  return (
    <div>
      <Circle bgColor="red" borderColor="black" />
      <Circle bgColor="blue" text="text" />
    </div>
  );
}

export default App;

Circle.tsx

interface CircleProps {
  bgColor: string;
  borderColor?: string;
  text?: string;
}

const Circle: React.FC<CircleProps> = ({ bgColor, borderColor, text }) => (
  <div style={{
    backgroundColor: bgColor,
    border: borderColor ? `2px solid ${borderColor}` : undefined,
    borderRadius: '50%',
    width: 100,
    height: 100,
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
    {text}
  </div>
);

export default Circle;
타입스크립트를 적용하면 props의 타입을 확인하여 잘못된 타입 전달 시 컴파일 단계에서 에러를 확인할 수 있습니다.

정리

  • 타입스크립트 적용: 패키지 설치 → tsconfig 설정 → 파일 확장자 변경
  • 컴포넌트 타입 연결: interface/type 선언 후 React.FC<Props> 또는 인라인 타입 활용
  • 실무에서는 interface를 활용한 props 타입 선언이 가장 많이 사용됨
  • styled-components, CSS 모듈 등과 함께 사용할 때는 추가 타입 선언이 필요할 수 있습니다.
  • 예: CSS 모듈 사용 시 global.d.ts에 declare module "*.module.css"; 추가
  • 타입스크립트와 리액트의 조합은 props, state, ref, 이벤트 등 다양한 부분에 타입을 적용할 수 있습니다.
  • 공식 문서나 cheatsheet를 참고하면 실무에서 자주 쓰는 패턴을 빠르게 익힐 수 있습니다.
728x90

'React' 카테고리의 다른 글

[React] LocalStorage(로컬스토리지) - 저장, 불러오기, 삭제  (1) 2025.05.29
[React] Props(프롭스)란?  (0) 2025.05.28
[React] UseState란?  (0) 2025.05.27
[React] UseMemo란?  (0) 2025.05.22
[React] React Router 설정방법  (2) 2025.05.21

리액트 useState란?

useState는 리액트에서 제공하는 훅(Hook) 중 하나로, 함수형 컴포넌트에서 상태(state)를 관리할 수 있게 해줍니다.
상태란 시간이 지남에 따라 변경될 수 있는 값으로, 예를 들어 버튼 클릭 횟수, 입력 값, 토글 상태 등이 모두 상태에 해당합니다.
useState를 사용하면 컴포넌트가 기억해야 하는 값을 저장하고, 그 값이 바뀔 때마다 컴포넌트가 다시 렌더링됩니다.


useState 사용법

기본 문법

const [상태변수, 상태변경함수] = useState(초기값);
  • 상태변수: 현재 상태 값을 저장합니다.
  • 상태변경함수: 상태를 변경할 때 사용하는 함수입니다.
  • 초기값: 상태의 초기값을 설정합니다.

 

예시: 카운터 컴포넌트

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  const addCount = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={addCount}>Add</button>
    </div>
  );
}
  • count는 현재 카운트 값을 저장하는 상태 변수입니다.
  • setCount는 count 값을 변경할 때 사용하는 함수입니다.
  • 버튼을 클릭하면 addCount 함수가 실행되고, setCount를 통해 count 값이 1 증가합니다.
  • count 값이 바뀌면 컴포넌트가 자동으로 리렌더링되어 새로운 값이 화면에 표시됩니다.

 

상태를 업데이트하는 두 가지 방법

  1. 값 직접 업데이트
    const addCount = () => {
      setCount(1);
    };
    count 값을 1로 직접 설정합니다.
  2. 함수형 업데이트
    const addCount = () => {
      setCount(prevCount => prevCount + 1);
    };
    이전 상태 값을 기반으로 새로운 상태를 계산할 때 사용합니다. 여러 번 연속해서 상태를 변경할 때, 또는 최신 상태 값을 안전하게 사용하고 싶을 때 권장됩니다.

 

여러 상태를 객체로 관리하기

여러 개의 입력 필드나 관련된 데이터를 하나의 객체로 묶어서 관리할 수도 있습니다.

import React, { useState } from 'react';

const EventPractice = () => {
  const [form, setForm] = useState({
    username: '',
    message: ''
  });

  const { username, message } = form;

  const onChange = e => {
    const { name, value } = e.target;
    setForm({
      ...form,
      [name]: value
    });
  };

  return (
    <div>
      <input
        type="text"
        name="username"
        placeholder="유저명"
        value={username}
        onChange={onChange}
      />
      <input
        type="text"
        name="message"
        placeholder="메시지"
        value={message}
        onChange={onChange}
      />
    </div>
  );
};
  • 여러 입력 값을 하나의 상태 객체(form)로 관리할 수 있습니다.
  • onChange 핸들러에서 setForm을 통해 각 필드의 값을 업데이트합니다.

정리

  • useState는 함수형 컴포넌트에서 상태를 관리할 수 있게 해주는 훅입니다.
  • 상태가 변경될 때마다 컴포넌트가 자동으로 리렌더링됩니다.
  • 상태 변경 함수는 비동기적으로 동작하므로, 연속해서 상태를 변경할 때는 함수형 업데이트 방식을 사용하는 것이 안전합니다.
  • 여러 상태를 객체로 묶어 관리하면 코드가 더 깔끔해지고 유지보수가 쉬워집니다.

useState를 잘 활용하면 리액트 컴포넌트의 동적인 UI와 데이터를 효과적으로 관리할 수 있습니다.

728x90

'React' 카테고리의 다른 글

[React] Props(프롭스)란?  (0) 2025.05.28
[React] 리액트 타입 연결하기  (0) 2025.05.28
[React] UseMemo란?  (0) 2025.05.22
[React] React Router 설정방법  (2) 2025.05.21
[React] Vite로 프론트엔드 프로젝트 시작하기  (0) 2025.05.08

데이터 수집


데이터 분석의 첫걸음은 신뢰할 수 있는 데이터를 확보하는 것이다. 이 글에서는 데이터 수집의 다양한 방법, 데이터의 유형, 그리고 데이터 수집 시 주의해야 할 점을 중심으로 학습한다.

1. 데이터 수집의 목적과 중요성

  • 데이터 수집은 분석의 출발점으로, 데이터의 품질이 전체 분석 결과의 신뢰도와 직결된다.
  • 정확하고 대표성 있는 데이터를 수집해야만 의미 있는 분석이 가능하다.

2. 데이터 수집 방법의 종류

데이터는 다양한 방법으로 수집할 수 있다. 아래 표는 대표적인 데이터 수집 방법과 특징을 정리한 것이다.

방법 특징/설명 예시
관측/측정 실험, 센서, 기기 등으로 직접 측정 기상 데이터, 센서 데이터
설문조사 질문지, 인터뷰 등으로 데이터 수집 고객 만족도, 여론 조사
공공데이터/오픈API 기관, 정부, 기업 등에서 공개한 데이터 활용 공공데이터포털, Kaggle
웹스크래핑 웹사이트에서 자동으로 데이터 추출 뉴스, 소셜미디어 데이터

3. 데이터의 유형과 특징

  • 정형 데이터: 표 형태로 구조화된 데이터(엑셀, DB 등)
  • 비정형 데이터: 텍스트, 이미지, 음성 등 구조화되지 않은 데이터
  • 정형 데이터는 분석이 용이하고, 비정형 데이터는 전처리와 변환이 필요하다.

4. 데이터 수집 시 고려사항

  • 데이터의 신뢰성, 정확성, 최신성, 대표성 확보
  • 윤리적/법적 문제(개인정보, 저작권 등) 준수
  • 데이터 포맷(정형/비정형, CSV, JSON, XML 등) 이해

5. 데이터 수집의 자동화와 실무 도구

  • 파이썬의 requests, BeautifulSoup, Selenium 등으로 웹스크래핑 자동화
  • API 활용을 통한 실시간 데이터 수집
  • 센서, IoT 기기와 연동한 자동 데이터 수집

6. 용어 정리

  • 웹스크래핑: 웹페이지에서 데이터 추출 자동화
  • API: 데이터 제공을 위한 프로그래밍 인터페이스
  • 크롤링: 웹사이트를 자동으로 탐색하며 데이터 수집

정리 

데이터 수집은 분석의 출발점이자, 전체 과정의 품질을 좌우하는 중요한 단계다.
다양한 수집 방법과 데이터의 유형, 그리고 윤리적·법적 고려사항까지 폭넓게 이해해야 한다.
데이터의 신뢰성과 대표성, 그리고 데이터 수집 자동화 도구의 활용 능력이 실제 분석에서 매우 중요하다.
728x90

'데이터사이언스' 카테고리의 다른 글

데이터 탐색  (0) 2025.05.29
데이터 관리  (1) 2025.05.28
데이터사이언스의 기반지식 학습  (0) 2025.05.23
데이터사이언스의 기본 개념  (0) 2025.05.20
데이터의 회귀분석 방법  (0) 2025.05.04