본문 바로가기
프론트엔드/React

리액트의 특징과 개념에 대해 알아보자 - 1

by 뜨는 해 2025. 4. 28.

 

 

사실 나는 프론트쪽에 대해서 잘 아는 게 없다.

어쩌다가 바닐라 자바스크립트나 jsp에 박혀있는 jstl 정도를 만지는 게 전부였는데 요즘은 풀스텍에 대한 요구가 많아진 것 같아 이에 대해서 공부해보려고 한다.

 

그렇다면 왜 리액트를 골랐을까?
  • 일단은 리액트를 실제로 많이 쓴다는 것에서 처음 흥미를 느꼈다.
  • 컴포넌트 기반 개발로 코드 재사용성에 있어서 흥미를 느꼈기 때문이고
  • 가장 좋았던 점은 자료가 많이 쌓여, 여러 문제에 부딪혔을 때, 든든한 서포트가 되줄 것들이 많다고 생각했다.

 

 

리액트가 만들어진 이유?


기존에는 단순히 서버 사이드 렌더링만 하고 있었다.
하지만 요즘은 그렇게 작동하는 페이지를 잘 쓰지 않으려고 하고 있음
그러다보니 더 기능적으로 많은 것들을 충족 시키기 위해 자바스크립트를 사용하게 되었고, 그러기 때문에코드를 유지보수 하는데에 더 많은 자원과 복잡성이 증가함

 

그렇기 때문에 이런 문제를 해결하기 위해 리엑트가 개발됨

 

 

리액트의 특징

  • 리액트는 오픈소스 자바스크립트 라이브러리임 -> 즉 프레임워크가 아님
  • 컴포넌트 베이스이다. 그리고 이러한 컴포넌트의 조합으로 사용된다.
  • 애플리케이션의 레이어를 이용해 뷰를 핸들링함.
  • 리액트를 사용하면 웹페이지를 새로고침하지 않고 업데이트를 할 수 있음
  • JSX를 사용함
  • 추후 리액트 네이티브를 이용해 안드로이드나 ios 개발에도 사용할 수 있다

리액트의 가장 큰 장점은 새로고침 없이 페이지를 부분적으로 업데이트 할 수 있음!!

 


 

리액트의 개념

컴포넌트 기반 구조

  • 리액트는 UI를 컴포넌트(Component)라는 작은 단위로 나누어 개발
  • 컴포넌트는 독립적으로 작동하면서 동시에 유지보수 및 개발 생산성 향상에 도움이 됨

 

JSX(Javascript XML) 사용

function HelloWorld() {
  return <p>Hello, World!</p>;
}

 

html 요소를 html 파일에 직접 작성하지 않고, JSX 파일을 통해 html 블럭(?)을 작성하는 것 같다.

이러한 요소들로 페이지의 각 부분을 담당한다.

 

가상 DOM (Virtual DOM)

위의 코드처럼 정적인 DOM이 아니라 가상 DOM을 사용해 DOM을 부분적으로 업데이트하고 수정할 수 있다.

 

 상태(state)와 속성(props)

상태랑 속성의 차이가 크게 와닿지는 않는데 다시 보자면 이런 차이가 있다고 한다.

상태(state)란: 컴포넌트 내부에서 관리되는 변경 가능한 데이터 라고 한다.

 

import { useState } from "react";

function ClickCounter() {
  // count라는 state를 선언, 초기값은 0
  const [count, setCount] = useState(0);

  return (
    <button onClick={() => setCount(count + 1)}>
      클릭 수: {count}
    </button>
  );
}

 

특징은 다음과 같다.

  • 컴포넌트 내부에서만 관리됨
  • 값이 변경되면 컴포넌트가 다시 렌더링 됨.

위의 코드에 경우, useState를 사용해 count라는 상태 변수를 생성하고, setCount는 이 상태변수 값을 바꿀 때 사용된다.

 

 

속성(props)란: 부모 컴포넌트가 자식 컴포넌트에게 전달하는 값이라고 한다.

 

 

특징은 다음과 같다.

 

function Print(props) {
  return <h1>Print: {props.name}님!</h1>;
}

function App() {
  return <Print name="Hello, World!" />;
}

 

  • 부모 컴포넌트 -> 자식 컴포넌트로 값을 전달
  • 자식 컴포넌트에서는 값에 대한 변경이 허락되지 않음
  • 이로 인한 재사용성이 향상됨!

 

위의 코드 블럭을 보면,  부모 컴포넌트 App이 자식 컴포넌트 Print를 호출해 값을 전달해준다.

 

 

나머지 기본적인 특징은 계속 개발과 공부를 병행하면서 할 생각이다.

'프론트엔드 > React' 카테고리의 다른 글

리액트 공부해보기  (0) 2025.02.12