2025.01.31 작성
OS : Window
개발환경 : VScode
개발언어 : JavaScript
프레임워크 : React
<--> jQuery( HTML 문서 조작, 이벤트 처리, 애니메이션, AJAX 요청 등을 쉽게 구현할 수 있도록 도와주는 자바스크립트 라이브러리)
npm create-react-app test
prop --> 매개변수
state --> 지역변수
import { useState } from 'react';
export default () => {
const [name, setName] = useState('');
const [gender, setGender] = useState('');
const [birth, setBirth] = useState('');
const [bio, setBio] = useState('');
const onChangeName = (e) => {
setName(e.target.value);
};
const onChangeGender = (e) => {
setGender(e.target.value);
};
const onChangeBirth = (e) => {
setBirth(e.target.value);
};
const onChangeBio = (e) => {
setBio(e.target.value);
};
const onSubmit = () => {
console.log(name, gender, birth, bio);
};
return (
<>
<div>
<input
value={name}
onChange={onChangeName}
placeholder="이름"
/>
</div>
<div>
<select value={gender} onChange={onChangeGender}>
<option key={1}></option>
<option key={2}>남성</option>
<option key={3}>여성</option>
</select>
</div>
<div>
<input type="date" value={birth} onChange={onChangeBirth} />
</div>
<div>
<textarea value={bio} onChange={onChangeBio} />
</div>
<button onClick={onSubmit}>전송</button>
</>
);
};
[ 왜 많이 사용할까? ]
1) 컴포넌트 기반 아키텍처
: UI를 재사용 가능한 컴포넌트로 분리하기 때문에 속도 및 유지보수성이 향상되는 효과가 있음
2) 빠른 렌더링
: Virtual DOM을 사용해 최소한의 업데이트만 수행하기에 빠른 렌더링을 제공함
3) 풍부한 생태계
: 다양한 라이브러리와 도구를 통해 확장성 높은 개발 가능함
[ 기존 방식과의 차이점 ]
1) 페이지 전환마다 서버 요청 <> SPA(Single Page Application)로 클라이언트에서 렌더링
2) 동적 컨텐츠 제한적 <> 동적인 UI 업데이트 가능
3) 재사용성 부족 <> 컴포넌트 기반으로 UI 재사용 용이
[ 특징 ]
1. 쉽고 빠른 설정이 가능하다.
: 복잡한 XML 설정 없이 간단한 애노테이션으로 설정 가능.
임베디드 서버
: Tomcat 등 임베디드 서버 내장으로 배포 단순화.
대규모 애플리케이션 지원
: Restful API 설계와 마이크로서비스 아키텍처에 적합.
1) 복잡한 XML 설정 필요 <> 애노테이션 기반 간단한 설정 제공
2) 외부 서버 필요 <> 임베디드 서버 내장 (Tomcat 등)
3) 설정과 구성에 많은 시간 소요 <> 기본값 제공으로 설정 시간 단축
4) 대규모 프로젝트에 적합 <> 신속한 개발과 배포에 최적화