FE
[문제]
페이지가 로드된 후 추가 데이터를 불러오는 loadMoreItems() 함수가 호출되지 않거나 예상과 다르게 동작하는 문제가 발생 (=> 새로고침 시 response.data의 값이 html을 반환하는 오류 발생) [원인] useEffect 훅 내에서 데이터를 불러오는 함수가 컴포넌트 렌더링 후 바로 실행되지 않으며, 윈도우가 완전히 로드되기 전에 호출되어 데이터가 정상적으로 로딩되지 않음
[해결]
useEffect(() => {
window.onload = () => {
loadMoreItems();
};
}, []);
window.onload 이벤트 리스너를 사용하여 브라우저의 모든 리소스(이미지, 스크립트 등)가 완전히 로딩된 후에 loadMoreItems() 함수가 호출되도록 설정. 이를 통해 데이터 로딩이 올바르게 처리되며 문제 해결
BE
public Member getMember() {
MemberDetail memberDetail =
(MemberDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
return memberRepository.findByEmail(memberDetail.getUsername())
.orElseThrow(() -> new CustomException(ErrorCode.MEMBER_NOT_FOUND));
}
JWT 필터 통과할 때 토큰을 파싱해서 security context에 유저 정보를 저장하고, 오기 때문에 이후 내부에 모든 곳에서 자유롭게 꺼내쓸 수 있음
헤더에 있는 토큰을 계속 파싱하는게 번거로우니 context에서 Member 정보를 꺼내오도록 하는 getMember() 메서드 제작
특산주 등록, 매니저 승인, 특산주 평균 평점 가져오는 redis 캐시 기능 완료
게시글 전체 조회시 태그값들이 null 나오는 문제 로직 변경으로 트러블슈팅
기능 구현 속도가 빨라 거의 마무리 되어감에 따라 추가적인 기능 도입의 필요성을 느낌