상호작용 app, ui 를 만들기 위해 탄생
html 만 표현하던 element 에 추가로 event listener 를 붙임
사용자와의 interaction 의 핵심 부분은 event listener 이기 때문
아마 리액트에서 제일 중요한게 상호작용이고, 그러려면 로직도 필요하지만 결국 사용자와의 상호작용에는 화면에서 변화가 생겨야 가능한 것이겠죠.
내부적으로 작동은 하나 사용자에게 보여줄 화면에 변화가 없는 것을 상호작용이라고 할 수는 없으니까요.
나중에 나오겠지만 그러려면 state 가 필요하고 state 의 변화를 감지해서 화면에 렌더링 해야하는데 단순 변수만 쓰면 그 안에 state를 쓸 수가 없고 그러면 화면을 이벤트에 따라 렌더링 할 수 없고 그건 단순 html 과 다를 바 없게 되니 변수로 쓰는 것은 하지 않는 것 같습니다!
함수 안에 넣어야 state 를 로직에 작성 가능하고 그거에 따른 렌더링이 가능해지기 때문이라고 생각하는 제 뇌피셜입니다.
그리고 로직이 없는 컴포넌트라도 중괄호에 쓰는 것과 JSX 를 혼용해서 사용하면 개발할 때 굉장히 헷갈리니 걍 함수로 쓰는게 나을 것 같습니다.