Skip to content

2주차 멘토링

Ji Yoon Choi edited this page Nov 16, 2022 · 19 revisions

질문

1. recoil 로 설정한 전역 상태 값이 외부에 탈취될 가능성이 있을까요?

  • 100% 탈취된다
  • Github Action 등의 방법으로 캐싱 해야함
  • 로그인할 때 사용되는 ID 등의 개인정보는 최대한 막되, 백엔드 측에서 마스킹 등을 해서 정보를 은닉하여 내려줘야 한다
  • AUTO_INCREMENT 되는 키를 ID로 사용한다면 => 전역 상태로 저장되는 것은 나쁘지 않으나 브루트포스 공격에 당할 위험이 있다
    • 일반 사용자가 보기에는 아무 의미없는 숫자라서 프론트엔드 측에서 저장하는 것도 상관없어 보임
    • 브루트포스 공격을 막고 싶다면 UUID를 생성하여 사용하는 것을 추천 (AUTO_INCREMENT 아닌 완전 랜덤한 문자열)
    • AUTO_INCREMENT를 쓰는 경우 => 게시판에서 게시글이 1부터 올라가는 경우 (Public 하게 공개되기 때문에 노출되어도 상관없는 데이터)

2. 개인정보 관련 궁금증

3. Next.js 관련 궁금증

  • Next.js의 장점?
    • 첫 화면을 SSR로 구현하려고 할 때, Next.js를 사용하는 것이 좋을지?
    • 사용에 대한 조언? 적용해도 좋을지?
  • SSR을 배우기 위해 Next.js 를 배우기엔 시간이 촉박한 것 같다
  • 자료조사 까진 OK, 다만 진입장벽이 좀 있음
  • 어느 정도 완성된 프로젝트에 Next.js를 도입하는 것이 괜찮은 선택일까? 아니면 처음부터 Next.js를 도입해서 작성하는 것이 나은가?
    • getServerSideProps 에 관해 공부하는 것을 추천
    • SSR로 렌더링을 하면 기존에 요청-응답으로 받아오던 데이터가 Serverside props에 전부 들어감
    • Next.js 는 Serverside Props를 한번에 받아서 페이지에 전부 넣어 렌더링하는 방식으로 동작하므로, 관련된 이해가 좀 많이 필요하다
    • SSR 쪽에서 받아올 데이터와 CSR로 받아올 데이터를 명확히 나누는 것이 중요하다 (모든 데이터를 서버 쪽에 박는 것이 능사는 아니다) => 서버 쪽 처리가 오래 걸리면 어차피 첫 화면 표시까지 오래 걸린다
    • 이런 정책을 세우고, Next.js를 공부하는 데 들어가는 시간이 생각보다 많을 것이다 (우리는 이제 한달뿐이다)
  • Next.js의 이점: 라우팅을 더 쉽게 해준다

4. 현업 CI 과정에서 테스트를 진행할 때, 전체 코드에 대한 테스트의 커버리지 퍼센트를 넘지 않으면 push 가 안되도록 하는 단계가 있나요? 있으면 어떻게 하는지 궁금합니다.

  • push를 막는 것을 본 적은 없는데, 있을 수는 있다
    • 모든 코드를 테스트할 수 있는 것은 아님 (현실적으로 테스트를 못 하는 코드가 있음 => 이걸 테스트해보겠다고 억지로 짜는 건 더 손해)
    • Real 환경에서만 작동되는 코드가 있다면, 개발환경에서 테스트가 아예 안 되듯이
    • 따라서 어떠한 커버리지를 넘지 않으면 머지를 안 하는? 옵션은 위의 예시처럼 반례가 존재할 것 같다
  • github action coverage report 참고
    • 컨벤션 수준으로 맞추는 것과, 커버리지 숫자가 증가 추세에 있다는 것만 보이면 된다

5. CD를 위한 Github actions 를 작성해봤는데 현재 약 18분정도가 걸리고 있는데, 이 시간을 줄이는 방법에 대한 조언을 받고 싶습니다.

6. 백엔드와 클라이언트에서 공용으로 사용하는 공용 상수를 어떻게 관리해야 하는지 궁금합니다.

Typescript enum 관련해서 Tree-shaking 관점에서 좋지 않아서 enum 을 사용하지 않는 것을 권장하는 글을 봤습니다. 실제로 현업에서도, enum 을 사용하지 않고 있나요? 만약 사용하지 않고 있다면, enum 과 같은 열거형 상수를 필요로 할 때 어떤 방식으로 사용을 하시는지 궁금합니다.

7. 프론트엔드에서 기술적으로 눈에 띄일 수 있는 추가 기능으로 무엇이 있을지 고민됩니다

얼리버드

프로젝트

개발일지

스프린트 계획

멘토링

데일리 스크럼

데일리 개인 회고

위클리 그룹 회고

스터디

Clone this wiki locally