면접을 보면서 지금 개발하고 있는 프로젝트에 대해 내가 맡은 역활에 대해 발표하는 시간을 가졌다.
맡은 역활 중에 개발 환경 셋팅에 대한 질문이 들어왔다.
🤔: ESlint 설정을 하셨는데 props 설정 에러를 끄시게 된다면 협업하는 과정에
props로 어떠한 타입이 들어오게 되는지 모를텐데 이 부분에 대해서는 어떻게 생각을 하시나요 ?
순간 너무나도 당황해서 10초정도 머리가 하얗게 색칠되었다.
질문에 대한 답변은 이렇게 하였다.
😅: 직 개발 과정 다른 팀원이 보낸 props를 사용하여 개발을 하는 상황이 없었습니다.
면접관님의 말씀을 들어보니 추후 다른 팀원의 props를 받아 사용할 때 타입에 대한 에러가 발생할 거 같다라는 생각이 듭니다.
이후에 Props-type 라이브러리를 다시 도입하고 TypeScript에 대한 중요성을 다시 한번 강조하도록 하겠습니다.
실제론 어버버버해서 저렇게 똑부러지게 말 못했음.
아직까진 개인이 개발 중인 컴포넌트에서 Props를 다른 팀원에게 넘겨주는 일이 없는데
추후 개발을 하다보면 충분히 타입 에러가 발생할 수 있다고 생각이된다.
VSC를 화면공유를 통해 면접관님들께 보여드리며 내가 개발 환경을 셋팅한 코드와 파일들을 설명하고 있었다.
이때 파트장님께서 다시 한번 질문을 하셨는데
😮: 컴포넌트 파일들을 모두 OOOO.js 형식으로 생성하셨는데 어째서 OOOO.jsx 형태로 하지 않으신거죠 ?
해당 질문에 있어서 깊은 지식을 가지고 있진 않았다.
다만 두 파일형태 모두 동작에는 크게 무리가 없다고만 알고 있었는데
면접 당시 jsx 형태를 사용 해야하는 이유를 곰곰히 생각해보니 답을 추측할 수 있게 되었다.
🤔: 먼저 JSX라는 것은 말 그대로 JSX형식 가진 파일을 의미를 가지는 것 같습니다.
그러나 두 파일 형태 모두 동작이 가능한 것으로 보아 기능상의 문제는 없어 보이는데...
😊: 기능상의 문제가 없다면 왜 jsx와 js 파일을 구분하여 사용할까요 ?
🤩: 아무래도 일반적인 js파일과 jsx로 반환하는 컴포넌트를 분리하기 위함이 아닐까 생각이듭니다.
해당 파일을 조금 더 직관적으로 바라볼 수 있고 파일 아이콘 또한 리액트로 바뀌는 모습을 보면 더욱 파일을 쉽게 찾을 수 있겠다는 생각이 듭니다.
지금 생각해보니 jsx형태로 바꿔야지 생각을 하곤 있었는데 까먹고 파일명을 변경안했네요. (머쓱)
js vs jsx
https://velog.io/@minkuk90/React-%EB%A6%AC%EC%95%A1%ED%8A%B8-.js-vs-.jsx-%EC%B0%A8%EC%9D%B4%EC%A0%90