본문 바로가기
💻 프로젝트/정글 사관학교

[정글 SW사관학교] WEEK0. 미니 프로젝트 최종 발표 QnA 모음집

by ddubbu 2024. 8. 14.

입소하자마자 3일간 개발한 웹서비스 발표 및 피드백 시간이 있었다. 필수 포함 사항은 다음과 같다.

- 로그인 기능

- Jinja2 템플릿 엔진을 이용한 SSR 구현 및 CSR과 비교

- Bootstrap을 대체할 CSS 라이브러리 사용하기 (Bulma, Tailwind 등)

- JWT와 HTTP Athorization header를 사용해 구현하기 (Session cookie 대비 등장하게 된 배경)

- AWS 배포 및 도메인 연결 (https 적용하면 좋음)

 

모두 최소 요건은 물론이고 채팅, 시연까지 해낸 것을 보고 다시 한번 동료들의 실력에 감탄하지 않을 수 없었다. 또한 운영진분들의 기술 면접과 같은 질문 공세에 무엇을 대비하고 주의해야할지 알 수 있는 시간이었다. 아래는 발표 중에 진행된 운영진의 질문 > 학생들의 답변들의 모음이다.


 

[발표 및 시연 관련]

  1. 프로젝트 발표 시 완결성이 중요함. 미완성된 기능은 제외하는게 더 나음
  2. 'none 점! 주셨어요' 는 뭔가? > 해당 버그는 발견 후 수정되었음 > 또한 시연 시 더미 데이터 삭제를 못해서 등은 안됨. 시연은 항상 완벽해야함
  3. 발표 연습은 필수다. 많이 해보고 연습해보는 수 밖에 없다. 
  4. (꿀팁) 뷰 스샷 대신 디렉토리 구조 보여주는거 괜찮다.
  5. (꿀팁) 로그인 만료 시연 (100초로 서정해서 중간에 볼 수 있도록)

 

[기획 관련]

  1. ID 중복 체크 기능은 왜 넣었는지? > unique 판단을 위해 > 만약 중복 확인 후 그 사이에 unique가 사라지면? 솔직하게 답했으면, '사실 딴데도 되어있길래 했다가 답이다.'
  2. CSR vs SSR 페이지별 적용 기준은? > CSR: 깜빡여도 되는? SSR 초기 렌더링이 빨라야하는? SEO에 유용해서? 웹크롤러들이 HTML을 분석해서? > 그럼, 개인 회원의 페이지인데 SEO 하면 안되지 않나? 조금 더 고민해보길
  3. 기능은 잘 만들었는데 UI 조금은 더 신경썼으면
  4. 댓글 기능을 고도화해보자. 대댓글은 어떻게 작업해야할까? 그럼 대대댓글은? > (idea) depth 속성을 추가하면 되지 않을지
  5. 개발 못한 마이페이지 어떻게 할지 사실 목록 리스트업이라 간단한거 아닌지? 반나절 정도만 있었으면 되지 않았을까.. > 수정삭제까지 하려다보니 읽기 조차제도 못했던 것 같네 > 단계별로

 

[암호화 및 로그인]

  1. hash 왜 이중 암호화 했는지? > 그냥 한번 더 하면 좋을 것 같았다. > 한번 더 생각해보기
  2. 암호화는 필수다. 안하면 피싱 사이트.
  3. HTTP 의 경우 request 값 분석이 가능해서 탈취 시 로그인 가능. 이를 replay attack 이라고 함. 하지만 HTTPS 탈취하면 request 값이 암호화되어 로그인 불가능
  4. 언제 JWT를 사용하면 좋을지? > session 이용 시 서버가 분산될 경우 단점이 있어 JWT를 사용하는 것으로 이해함 > 그럼 세션 서버를 따로 운영하면 되지 않나?
  5. sesison storage vs local storage, cookie 차이점은? 왜 session storage를 사용해서 구현했는지? (타 팀은 주로 cookie 사용하심) > 새시크릿창 접근 시 로그인 안되는지 점검
  6. 토큰 만료 시 > 자동으로 연장하려면? > refresh token 을 적용하면되지 않을까? 하는데 > 자세히는 모르겠음 > 혹은 매요청마다 갱신하는 방법도 있음
  7. 해싱 관련 라이브러리; hashlib, sha256 << bcrypt (salt + 해싱 반복) 더 강력
  8. sha256 문제점은? 서버에서? salt (유저마다 전부 다르게 처리해야함)  => 왜 서버에서 salt 인지 여쭤보자

 

 

[HTTP API]

  1. status code 제대로 알고 적용했으면, not restful (path 점검 필요)

 

[DB]

  1. db 설계시 계산값 필드는 불필요하지 않나?

 

[기타]

충분히 알고 썼으면, 시도는 좋으나, 오히려 구멍이 더 많이 보임. 웹서비스 만들려고 온게 아니긴하다. 그래도 기술을 사용할 때 원리를 알고 사용했으면 Q. 저걸 왜 썼어요?  A. '그럴싸해보여서 썼어요' 는 안됨. 잘 대답해야 플러스 점수, 아니면 마이너스임. 적어도 5분 정도는 떠들 수 있는 정도는 알아야함 (chatGPT 랑 대화해서, 내가 이해했는지 이용해보기)

 

 

[궁금한 질문]

  1. SSR에서 접근 가능한 쿠키에 저장을 해야할지? 토큰을 어디에 저장해야할지 고민됨
  2. 시연 위주? 기능 설명 위주? > 나중에 나만무 프로젝트 때 친절한 가이드 주실 예정