-
Notifications
You must be signed in to change notification settings - Fork 1
2주차 멘토링
Question1 type 파일 및 폴더 관리는 어떻게 하시나요? 도메인 별로 types.ts, types 폴더에서 전체 타입들 관리
types 폴더에는 지역적으로 사용할만한 타입보단 전역으로 사용할만한 공통적인 타입(도메인 타입)을 두자. local type은 컴포넌트 파일에 바로 작성하는게 좋은것 같다.
Question2 nestJS에서 반환값에 대한 타입 정의가 애매할 때 어떻게 하시나요? NestJS Docs
반환되는 타입이 확실하게 정의되어 있다면 타입을 따로 정의하지 않아도 될것같다. 만약 꼭 타입을 정의해야할 것 같으면 return되는 값이 예측하기 어려운 값일 때.
Question3 Storybook 잘쓰는 방법이 궁금합니다. 막상 사용해보니 프로젝트 진행에 지대한 영향을 끼치지는 않는 것 같은데 오버한 기술스택일까요?
Storybook은 테스트 및 문서화 도구이기 때문에 프로젝트 진행속도나 효율에 드라마틱한 영향을 끼치지는 않는다.
하지만 협업시 문서화와 컴포넌트 개발 현항을 공유하기 좋고 컴포넌트 개별 테스트가 편하기 때문에 팀원중 누군가는 사용하면 좋은 도구이다. (새로운 팀원이 들어왔을 때 현재 개발 상황을 파악하기도 좋다.)
Question4 JWT access token, refresh token 사용법? 어떻게 현업에서 구성해서 사용하는지?
refresh token을 탈취당하는 걸 고려한다면 세션을 사용하게 된다. httpOnly, secure cookie 사용.
현업에서도 JWT를 사용할 때 보안적인 부분을 어느정도 감수하고 사용한다. 탈취를 해도 크게 문제가 되지 않는 서비스에서 사용할 수 있음.
- Input과 같은 공통적인 컴포넌트는 최대한 특성을 작게 가지게 하고 상위에서 오버라이딩 해서 커스텀하는것이 좋다.
- typescript에서 unknown,never,infer에 대해서는 공부해보면 좋다.
- 일정 시간 마다 변해야하는 페이지일 때는 SSR을 하지 않고 특정시간마다 빌드를 하게해서 SSG를 사용하면 성능개선을 할 수 있다.
- 이력서에 프로그래밍 기술 LV같은건 적지말자. 어떻게 문제해결을 했고, 왜 이런 기술선택을 어떻게 했는지 어떤 역할을 했는지 표현하는 것이 제일 중요하다. 자기 개발의 의도를 잘 파악하고 Github에서 이 사람이 실제로 Commit했는지 본다.
- 덜 완성된 프로젝트를 이력서에 써도 괜찮다 경험이 중요.
- Swagger API에 타입 제네레이트를 적용해서 편리하게 사용할 수 있다.