본문 바로가기

개발기술/프론트엔드

React

학습 맥락

  • 백엔드 전문가를 목표로하지만 중소~중견기업에서 커리어를 시작하는 1년차 개발자

목표

  • ✅ "React로 간단한 CRUD 화면 만들 수 있습니다" 수준
  • ✅ 면접에서 "프론트도 할 줄 압니다" 어필
  • ✅ 실무에서 간단한 관리자 페이지 정도는 혼자 처리

 

학습 범위 (우선순위별)

1. 기본 개념 (1주)

  • JSX 문법
  • 컴포넌트 (함수형 컴포넌트만)
  • Props
  • State (useState)
  • 이벤트 처리 (onClick, onChange)

2. 핵심 Hooks (1주)

  • useState: 상태 관리
  • useEffect: API 호출, 생명주기
  • 이 두 개만 알아도 80% 커버

3. API 통신 (3-4일)

  • axios 또는 fetch
  • GET, POST, PUT, DELETE
  • 로딩/에러 상태 처리
  • 당신은 백엔드니까 이 부분은 빠르게 이해할 것

4. 간단한 CRUD (3-4일)

  • 목록 조회 (map)
  • 등록 폼 (input, form submit)
  • 수정/삭제
  • 토이프로젝트 1개로 익히기

🟡 권장 (있으면 좋음)

5. 라우팅 (2-3일)

  • React Router
  • 페이지 이동
  • URL 파라미터

6. 스타일링 (2-3일)

  • Tailwind CSS (빠르게 배움)
  • 또는 styled-components
  • 디자인 감각은 필요 없음, 그냥 깔끔하게만

7. 상태 관리 기초 (선택)

  • Context API 개념만
  • Redux는 건너뛰어도 됨 (중소기업에서 안 쓰는 곳 많음)

React사용이유

React 없이 (전통적 방식)

// HTML 문자열을 직접 조작
let html = '<ul>';
for (let i = 0; i < posts.length; i++) {
html += '<li>' + posts[i].title + '</li>';
        }
html += '</ul>';

// 마지막에 DOM에 삽입
document.getElementById('app').innerHTML = html;

 

특징:

  • ❌ HTML과 로직이 섞여 있음
  • ❌ 문자열로 HTML 만들기 (따옴표, 플러스 지옥)
  • ❌ DOM을 직접 조작

React 방식

리액트는 상태관리 후 이를 html 요소들과 연결시켜 주는 방식으로 동작.

function Component() {
    // 1. 데이터 저장소 (상태)
  const [data, setData] = useState(초기값);

    // 2. 로직 (API, 계산, 이벤트 처리)
    useEffect(() => {
            // API 호출 등
            setData(새로운값); // 상태에 저장
  }, []);

    // 3. HTML 선언 (데이터를 어떻게 보여줄지)
    return (
            <div>
            {data}
            </div>
  );
}

특징:

  • 로직과 HTML 분리
    • 위쪽: JavaScript 로직 (데이터 가져오기, 상태 관리)
    • return 부분: HTML 선언
  • HTML을 문자열이 아닌 "템플릿"처럼 작성
    • 따옴표 없이 그냥 <ul>, <li> 작성
    • JavaScript 값은 {변수} 로 삽입
  • 데이터를 "상태"로 저장
    • posts 변수에 일시적 저장
    • React가 알아서 화면에 반영

JSX

JavaScript + XML (HTML 비슷한 것) :

  • HTML 태그 덩어리를 JavaScript의 값처럼 취급
  • HTML을 JavaScript 값처럼 쓸 수 있게 해주는 문법
// 일반 JavaScript로 HTML 만들기 (복잡함)
const element = document.createElement('h1');
element.textContent = 'Hello';
        document.body.appendChild(element);

// JSX로 HTML 만들기 (간단함)
const element = <h1>Hello</h1>;

 

규칙 : JavaScript 값 넣을 땐 중괄호

const name = "변상화";
return <h1>{name}</h1>;

 

규칙 : 하나로 묶어야 함

// ❌ 안됨
return (
  <h1>제목</h1>
  <p>내용</p>
        );

// ✅ 됨
        return (
  <div>
    <h1>제목</h1>
    <p>내용</p>
  </div>
);

'개발기술 > 프론트엔드' 카테고리의 다른 글

Next.js  (0) 2025.12.30
웹 브라우저 API  (0) 2025.02.26
백엔드 개발자와 프론트 엔드 이해도  (0) 2025.02.12
프론트엔드 연계 관련 지식  (1) 2024.07.08
톰캣 설치를 통한 JSP 사용법  (1) 2024.07.01