
우리가 보통 Component를 만들때 바로 이대로 쓰면 뭔가 아쉽고 부족한 느낌이 든다.
그래서 기본적인 동작을 수정하여 사용자에게 제공하는 것이 바로 태크에서 속성에 해당되는 props 이다.

즉, props는 (user)사용자에게 중요한 Component의 정보이다.
그리고 Component의 내부적으로 사용되는 것들을 state라고 한다. (보통 state는 사용자들은 알 수 없는 정보이다.)

Component가 좋은 부품이 되기 위해서는 컴포넌트를 사용하는 외부의 props와 그 props에 따라서 그 컴포넌트를 실제로 구현하는 내부의 state가 철저히 분리되어 있어야 한다.

constructor(props)안에다 코드를짜면 render()함수보다 먼저 실행이 되면서 그 컴포넌트를 초기화시켜준다. 즉 초기화를 담당하는 함수이다.
this.state = {}를 사용함으로써 state값을 초기화 한다.
이때 subject의 값을 state화 시키기 위해 객체를 주고 이 것이 state를 만든 것이다.
이 state를 사용하기 위해서는 JavaScript로 쓰기 위해서 {} 중괄호를 사용하여 {this.state.subject.~~~} 를 이용하여 사용한다.