# 보일러 플레이트(Boiler Plate)
**보일러 플레이트(Boiler Plate)**는 동작을 위해 반드시 포함되어야 하는 필수 내용이 포함된 코드 를 말한다. 일반적으로 수정되지 않아도 동작하는 코드이며, 필요에 따라 이 코드를 바탕으로 수정하여 사용하게 되는 기본 틀을 일컫는다.
변경이 거의 또는 전혀 없이 많은 곳에 포함되어야 하는 코드 섹션최소한의 변경으로 여러 곳에서 재사용되는 것
# CRA(eject X) vs CRA(eject O) vs Next.js
# CRA(eject X)
CRA에서 eject를 하지 않고 사용하는 방법으로 React를 이용하여 프로젝트를 만들 때 사용하는 가장 기본적인 방법이다.
# 장점
- 신경 써야 할 코드양이 적다.
- webpack 설정을 신경 쓰지 않을 수 있다.
# 단점
- react-scripts로 인한 추상화로 설정 flow의 이해가 힘들다.
- 추상화 정도가 높아서 라이브러리 적용 시 webpack등 코어한 부분을 건드려야 할 경우, 결국 eject를 해야 한다.
- (CRA 공통) webpack-dev-server를 이용한 개발 모드를 위한 서버만 제공, build된 파일로 프로덕션 서버(BFF) 실행을 위해서는 CRA와 동떨어진 새로운 서버를 만들어야 한다.
- (CRA 공통) SSR을 자체적으로 지원하지 않기 때문에 추가 작업이 필요하다.
- (CRA 공통) code-splitting을 위해서는 특별히 코드에 명시해야 한다.
- (CRA 공통) client-side routing을 위해서 react-router같은 라이브러리를 설치해야 한다.
# CRA(eject O)
CRA에서 eject를 해서 사용하는 방법이다.