
프론트엔드 프레임워크 중 가장 많이 사용되는 React는 화면을 독립적인 단위로 나누어 관리할 수 있는 컴포넌트(Component) 기반 구조를 가지고 있습니다. 컴포넌트를 구현하는 방식에는 크게 클래스형 컴포넌트와 함수형 컴포넌트가 있는데요. 이번 글에서는 실제 Front-end 개발 경험을 바탕으로 두 방식의 차이와 선택 기준을 정리해 보겠습니다.
React 컴포넌트 이해하기
React 컴포넌트는 UI를 재사용 가능하게 나누는 기본 단위입니다. 코드의 재사용성과 유지보수성을 높이기 위해 필수적인 개념이며, 현재는 함수형 방식이 주류를 이루고 있습니다.
클래스형 컴포넌트의 특징
클래스형 컴포넌트는 class 문법을 활용하여 작성하며, state와 라이프사이클 메서드를 다룰 수 있습니다.
📌 클래스형 예시 코드
import React, { Component } from 'react';
class HelloClass extends Component {
constructor(props) {
super(props);
this.state = { message: "안녕하세요, 클래스형 컴포넌트!" };
}
render() {
return <h1>{this.state.message}</h1>;
}
}
export default HelloClass;
- 장점: 오랜 기간 사용되어 기존 프로젝트와 호환성이 높음
- 단점: 코드가 길어지고 this 바인딩 문제가 있어 학습 난이도가 다소 높음
제가 초기에 프로젝트를 진행할 때는 클래스형을 많이 사용했지만, state와 라이프사이클 메서드를 관리할 때 코드가 복잡해지는 경우가 많았습니다.
함수형 컴포넌트의 장점
함수형 컴포넌트는 간단히 함수를 통해 UI를 정의합니다. 특히 React Hooks가 등장하면서 state와 라이프사이클 로직을 간결하게 다룰 수 있게 되었습니다.
📌 함수형 예시 코드
import React, { useState } from 'react';
function HelloFunction() {
const [message, setMessage] = useState("안녕하세요, 함수형 컴포넌트!");
return (
<div>
<h1>{message}</h1>
<button onClick={() => setMessage("버튼 클릭!")}>클릭</button>
</div>
);
}
export default HelloFunction;
- 장점: 코드가 짧고 가독성이 좋음. useState, useEffect 등 Hook으로 다양한 기능을 간단히 구현 가능
- 단점: Hook 사용법을 처음 배우는 단계에서는 다소 낯설 수 있음
실무에서 함수형으로 전환한 후 유지보수와 협업 효율이 눈에 띄게 좋아졌습니다.
React 최신 트렌드와 함수형 확산
React 공식 문서도 함수형 컴포넌트를 권장하고 있습니다. 새로운 기능과 라이브러리 대부분이 함수형을 기준으로 만들어지고 있으며, Next.js 같은 최신 Front-end 프레임워크와도 자연스럽게 호환됩니다.
📌 useEffect 예시 코드
import React, { useState, useEffect } from 'react';
function Timer() {
const [count, setCount] = useState(0);
useEffect(() => {
const interval = setInterval(() => setCount(c => c + 1), 1000);
return () => clearInterval(interval);
}, []);
return <p>{count}초 경과</p>;
}
export default Timer;
이처럼 함수형에서는 라이프사이클 메서드 대신 Hook으로 로직을 깔끔하게 관리할 수 있습니다.
실제 Front-end 개발에서의 선택 기준
- 기존 프로젝트 유지보수: 클래스형이 이미 많다면 기존 구조를 따르는 것이 안정적
- 신규 프로젝트: 함수형 컴포넌트를 사용하는 것이 현재 트렌드와 가장 잘 맞음
제가 직접 경험한 바로는 함수형이 개발 속도와 협업 효율에서 큰 강점을 가지므로, 앞으로의 Front-end 개발에서는 사실상 표준이 될 가능성이 높습니다.
마무리
React 개발을 시작하는 분들은 두 방식을 모두 경험해보길 권장합니다. 하지만 장기적으로는 함수형 컴포넌트에 집중하는 것이 더 효율적이고, 최신 Front-end 생태계와도 맞습니다. React의 발전 방향을 고려했을 때 함수형은 선택이 아닌 필수가 되어가고 있습니다.
'개발 & 코딩 팁' 카테고리의 다른 글
| 프론트엔드 개발자의 도구가 바뀐다: React 19와 인텔리제이 효율 극대화하기 (0) | 2026.04.22 |
|---|---|
| SCSS 변수와 mixin으로 만드는 반응형 레이아웃 완전 가이드 (0) | 2025.10.05 |
| [SCSS] Mixin 완벽 가이드 – 반복 코드를 줄이고 유지보수성을 높이는 방법 (0) | 2025.09.21 |
| SCSS 변수 완벽 가이드: 입문자도 쉽게 이해하는 활용 팁 (0) | 2025.09.18 |
| React에서 SCSS 사용법: sass 설치와 활용 가이드 (0) | 2025.09.13 |