[DevCamp] 리액트와 JSX 기초 이해

동건·2025년 4월 7일
0

DevCamp

목록 보기
42/85

리액트와 JSX 기초 이해

리액트란 무엇인가

리액트(React)는 페이스북에서 개발한 자바스크립트 기반의 사용자 인터페이스(UI) 라이브러리이다. 리액트는 웹 애플리케이션의 복잡한 UI를 효율적으로 구성하고 관리할 수 있도록 돕는 도구로, 단방향 데이터 흐름과 컴포넌트 기반 구조를 핵심 개념으로 삼는다.

리액트의 주요 특징

  • 컴포넌트 기반 아키텍처
    리액트는 전체 UI를 여러 개의 독립적이고 재사용 가능한 컴포넌트로 나눈다. 각 컴포넌트는 자신만의 상태(state)와 속성(props)을 가지며, 이를 바탕으로 화면을 구성한다.

  • Virtual DOM
    리액트는 가상 DOM(Virtual DOM)을 사용하여 실제 DOM 변경을 최소화한다. 상태가 변경되면 가상 DOM과 기존 DOM을 비교(diffing)하고, 바뀐 부분만 실제 DOM에 적용하는 방식으로 성능을 최적화한다.

  • 선언형(Declarative) 방식
    리액트는 UI를 선언적으로 구성한다. 개발자는 “무엇을 할지”를 선언하면, 리액트가 내부적으로 “어떻게 할지”를 처리해준다. 이 방식은 코드 가독성과 유지보수성을 높인다.

  • 단방향 데이터 흐름
    리액트는 데이터가 항상 한 방향(부모 → 자식)으로 흐르도록 설계되어 있다. 이 덕분에 데이터 흐름을 쉽게 추적하고 디버깅할 수 있다.

  • 풍부한 생태계
    상태 관리(Redux, Recoil), 라우팅(React Router), 정적 사이트 생성(Gatsby), SSR(Next.js) 등 다양한 도구와 함께 사용할 수 있어 확장성이 뛰어나다.


JSX 문법

JSX(JavaScript XML)는 자바스크립트 코드 안에서 XML 형식의 태그를 작성할 수 있게 해주는 문법이다. JSX는 브라우저가 직접 이해할 수는 없으며, Babel 등의 트랜스파일러를 통해 순수 JavaScript로 변환되어 동작한다.

JSX를 사용하면 UI 구조를 마치 HTML처럼 직관적으로 표현할 수 있기 때문에 가독성이 높고, 컴포넌트 설계에 적합하다.

JSX의 주요 문법 요소

  • 하나의 부모 요소로 감싸야 한다
    JSX에서 여러 개의 태그를 반환할 경우 반드시 하나의 부모 요소로 감싸야 한다. 이를 통해 컴포넌트가 올바르게 렌더링된다.

    return (
      <div>
        <h1>안녕하세요</h1>
        <p>리애트를 배우보자.</p>
      </div>
    );

    혹은 <></>로 감싸는 Fragment 문법도 자주 사용된다.

  • JavaScript 표현식 사용 가능
    JSX 내부에서는 중괄호 {}를 사용하여 JavaScript 표현식을 삽입할 수 있다.

    const name = 'React';
    return <h1>{name} 배우기</h1>;
  • HTML과 다른 속성 이름
    HTML에서 사용하는 classfor 속성은 JSX에서 각각 className, htmlFor로 변경되어야 한다. 이는 JavaScript의 예약어와 충돌을 피하기 위함이다.

    return <label htmlFor="email">이메일</label>;
  • 조건부 렌더링
    JSX는 조건문을 직접 사용할 수 없기 때문에 삼항 연산자(? :) 또는 && 연산자를 활용하여 조건부로 요소를 렌더링한다.

    {isLoggedIn ? <p>환영합니다</p> : <p>로그인해주세요</p>}
  • 자바스크립트 함수 호출 가능
    JSX 내에서 이벤트 핸들러나 렌더링 로직을 함수 형태로 작성하고 사용할 수 있다.

    function greet(name) {
      return `안녕하세요, ${name}`;
    }
    
    return <h1>{greet('홍길동')}</h1>;

JSX의 장점

  • JavaScript와 UI를 밀접하게 통합할 수 있어 생산성이 향상된다.
  • 명확한 구조 덕분에 유지보수가 쉬워진다.
  • 컴포넌트를 UI 단위로 구성함으로써 재사용성을 높일 수 있다.

🔨 TIL

  • 리액트는 사용자 인터페이스를 구성하는 데 초점을 맞춘 라이브러리이며, 컴포넌트 단위의 구조로 개발 생산성과 유지보수성을 높일 수 있다.
  • JSX는 자바스크립트 안에서 XML 형태의 태그를 작성할 수 있는 문법으로, 리액트의 UI 구성을 선언적으로 표현하는 데 큰 도움을 준다.
  • JSX는 단일 부모 요소, JavaScript 표현식 사용, HTML과의 속성 이름 차이 등 몇 가지 문법적 특징을 이해하고 있어야 한다.
  • 리액트와 JSX를 이해하는 것은 프론트엔드 개발자로서의 첫걸음을 내딛는 데 매우 중요한 과정이다.
profile
배고픈 개발자

0개의 댓글