ReactJS - JSX: 초보자 가이드

안녕하세요, 미래의 React 개발자 여러분! ReactJS와 JSX의 세계로 이끌어주는 가이드로서 기쁩니다. 컴퓨터 과학을 오랫동안 가르쳐온 경험으로 많은 학생들이 이 개념을 이해할 때 빛을 발하는 것을 목격했습니다. 그麼, 함께 React 마법을 만들어보겠습니다!

ReactJS - JSX

JSX는 무엇인가요?

자세한 내용에 이전하기 전에 기본 개념부터 시작해보겠습니다. JSX는 JavaScript XML의 약자입니다. JavaScript의 문법 확장으로, JavaScript 파일에 HTML과 유사한 코드를 작성할 수 있게 해줍니다. 저는 이를 HTML이 빵이고 JavaScript가 내용인 맛있는 샌드위치라고 생각합니다. 맛있겠죠!

ReactJS에서 JSX 사용하기

React에서 JSX는 컴포넌트를 구조화하는 데 선호되는 방법입니다. 이는 코드를 더 읽기 쉽고 이해하기 쉽게 만듭니다. 간단한 예를 보겠습니다:

const element = <h1>Hello, React World!</h1>;

이 것은 HTML처럼 보이지만, 실제로는 JSX입니다! React는 이를 배후에서 순수한 JavaScript로 변환합니다.

JSX의 이유

"JSX 대신 단순한 JavaScript를 작성하는 데 왜 귀찮게 하지 않을까요?"라는 생각이 드실 수 있습니다. 훌륭한 질문입니다! 다음은 그 이유입니다:

  1. 숙련도: HTML을 알고 있다면 JSX는 자연스럽게 느껴질 것입니다.
  2. 읽기 쉽기: UI의 구조를 시각적으로 더 쉽게 상상할 수 있습니다.
  3. 문법 검사: 개발 과정에서 빠르게 오류를 발견할 수 있습니다.

JSX 내에서 표현식 사용하기

JSX의 가장 멋진 기 있는 점 중 하나는 표현식을 마크업에 직접 삽입할 수 있다는 것입니다. 아이스크림에 석탄을 뿌리는 것처럼 - 모든 것을 더욱 맛있게 만듭니다! 다음은 그 방법입니다:

const name = 'React Learner';
const element = <h1>Hello, {name}!</h1>;

이 괄호 {}는 마법의 지팡이입니다. 이 안에 들어있는 것은 모두 JavaScript 표현식으로 평가됩니다.

JSX 내에서 함수 사용하기

이것을 한 단계 더 나아가 사용자 정의 함수를 JSX에서 사용할 수 있습니다. 보세요:

function formatName(user) {
return user.firstName + ' ' + user.lastName;
}

const user = {
firstName: 'React',
lastName: 'Learner'
};

const element = (
<h1>
Hello, {formatName(user)}!
</h1>
);

여기서 우리는 JSX 내에서 formatName 함수를 호출하고 있습니다. 멋지죠?

JSX의 속성 추가하기

HTML처럼 JSX 요소에 속성을 추가할 수 있습니다. 하지만 JSX에서는 속성 이름을 camelCase로 사용합니다. 예를 들어:

const element = <div className="container">Hello, JSX!</div>;

이제 우리는 class 대신 className을 사용하고 있습니다. 이는 class가 JavaScript의 예약어이기 때문입니다.

속성 내에서 표현식 사용하기

마법의 괄호를 다시 한 번 기억하세요! 우리는 속성에도 표현식을 사용할 수 있습니다!

const imgUrl = 'https://example.com/react-logo.png';
const element = <img src={imgUrl} alt="React Logo" />;

이는 동적으로 속성 값을 설정하는 데 매우 유용합니다.

JSX 내에서 요소 중첩하기

HTML처럼 JSX에서도 요소를 중첩할 수 있습니다. 이는 복잡한 UI를 구축하는 방법입니다:

const element = (
<div>
<h1>Welcome to React</h1>
<p>Let's learn JSX together!</p>
</div>
);

여러 줄의 JSX를 괄호로 감싸는 것은 필수는 아니지만, 가독성을 높이는 데 도움이 됩니다.

JSX 메서드

다음은 자주 사용되는 JSX 메서드 표입니다:

메서드 설명 예제
React.createElement() React 요소를 생성합니다 React.createElement('div', null, 'Hello, JSX!')
ReactDOM.render() React 요소를 DOM에 렌더링합니다 ReactDOM.render(element, document.getElementById('root'))
React.Fragment 여러 요소를 반환할 때 추가 노드를 DOM에 추가하지 않도록 합니다 <React.Fragment>

Title

Paragraph

</React.Fragment>

결론

이렇게 우리는 JSX의 세계로的第一步을 내딛었습니다. 연습이 완벽을 만들어주는 것을 기억하세요, 그러니 이 개념들을 실험해보지 마세요.

저는 항상 학생들에게 이야기하듯이, 코딩은 자전거 타는 것과 같습니다.처음에는 흔들릴 수 있지만, 한 번 익어버리면 쉽게 달릴 수 있습니다. 그러니 계속 페달을 밟고, 얼마 지나지 않아 놀라운 React 애플리케이션을 만들 수 있을 것입니다!

Happy coding, and see you in the next lesson where we'll dive even deeper into the React universe!

Credits: Image by storyset