2022.11.19 딜레마 | 항해99 실전프로젝트 기간|

2022. 11. 19. 08:47취업 준비/기록

2022.11.19 딜레마 | 항해99 실전프로젝트 기간 |

계층 분리 하다가 기존에 작성된 코드의 조악함을 깨닫고 리펙토링 중이다.. 오늘 안에 뜯어 고쳐야 한다! 뜯어 고쳐야 한다!

 

이번주 계획

 

✅ 11.19.토 

- 프로필 정보 변경

- 프로필 이미지 관리

- 프로필 정보 조회

- 프로필 정보 같이 날리기 ( 회원 탈퇴 시 )

- 멀터 미들웨어 작업 ( 코드 본 기능에 따른 파일 분리)

- 저장소 config 파일 분리 ( 코드 본 기능에 따른 파일 분리)

 

✅ 11.20 일 (월요일에 프론트와 백엔드 합쳐진 코드로 맞춰본다)

- 기존에 구현된 SMS 본인 인증 서비스 기능 레파지토리 부분 변경하기

( 기존 : MySQL => 변경 후 : MongoDB )

- SMS 인증 번호 재전송 기능 구현 ( 프론트 요청 )

- 코드에 로그인 인증 미들웨어 걸기

- 통신 프로토콜 https로 변환

 

 

 

2022년 11월 19일 해야 할 일

 

프론트엔드에서 이미지 전송 POST 요청이 오는 여러가지 경우의 수 고려하기

 

::: 전제

프로필 정보 변경 시에는 정보가 변경되어 전달될 수도 있고 변경되지 않고 빈 값으로 전달될 수도 있다.

다시 말해 representprofile, profileImage 필드 값이 비어있는 상태로 올 수 있다는 말

 

::: 이미지 전송에 대한 경우의 수

- 유저 이미지 변동 사항이 없을 때

 

발생 할 수 있는 상황 :: 경우의 수로 정리

경우의 수 1 : 이미지 파일 변경 사항이 없을 경우

=> representprofile, profileImage 필드 값이 안 넘어 오거나 비어있는 상태로 넘어오거나 이미지 파일 형식이 아닌 상태(즉 url)로 넘어올 수 있다 ( 프론트엔드에서 어떻게 넘겨주든지 서버는 프론트엔드에 기대지 말고 스스로 방어 체제를 갖춰야 함 || 검증은 거치면 거칠수록 좋은 법 )

 

이미지 파일에 변경 사항이 없는지 어떻게 알아낼까?

필드에 값이 안들어있거나 아예 필드 자체가 전달되지 않겠지? 

 

 

해결

profileImage 필드에 값에 대한 validation 주기

 

발생 할 수 있는 사항 :: 완전 다 파일로 올 때 

=> 모든 이미지 파일에 변동 사항이 있다는 말

=> 기존에 구현한 로직 그대로 사용하면 됨

=> 버퍼 형식으로 온 이미지 파일 변환 거쳐 이미지 파일은 클라우드 저장소로 보내고 링크만 디비에 저장

이미지 추가 요청이 링크로 올 때와 파일 형식으로 올 때 구분해서

링크로 올 때는 디비랑 비교해서 

 

- 부분적으로 변동이 있을 경우

 

- 아예 변동이 없을 경우