목록전체 글 (19)
co-cherry
이전에 구현한 무한 스크롤 영화 페이지에 상세 페이지 모달을 제작해보았다. 이번 시간에는 아래 항목들을 학습해보려고 한다.바운더리 패턴 useMemo / useCallbackReact DevtoolsSuspense / Error Boundary 패턴 Loading / Error UI를 상위 컴포넌트로 올려서 한 곳에서 처리하는 관심사 분리 패턴 Suspense 로딩 중에 보여 줄 대체 UI로, 자식 컴포넌트들이 로딩을 완료할 때까지 fallback 표시Error Boundary Error를 catch 하는 컴포넌트로 에러 발생 시, fallback 표시 *fallback 로딩/에러 중 보여 줄 대체 UI throw Promise → Suspense가 catch → fallback(로딩UI) 표시t..
앞서 게시글 생성과 상세 조회를 구현했다. 이번 시간에는 게시글 삭제와 수정을 구현해보려고 한다. 게시글 삭제와 수정은 작성자만 가능하므로 작성자 권한 검증이 서비스 로직에 들어가야 함을 유의하고 API를 설계해보자. 게시글 삭제 게시글을 삭제하기 위해서는 삭제할 게시글의 Id와 권한 검증을 위해 해당 게시글을 삭제할 user의 Id가 필요하다. 게시글을 삭제하기 전에, 아래 두 가지의 검증이 필요하다.해당 아이디의 게시글이 존재하는지 확인 → 아니라면 POST_NOT_FOUND 반환 해당 게시글의 작성자가 삭제 요청을 보낸 user와 일치하는지 확인(권한 검증) → 아니라면 POST_UNAUTHORIZED 반환@Transactional public void deletePost(Long postI..
4주차 과제로 영화 사이트(CGV)처럼 TMDB를 통해 영화 데이터를 불러와 무한 스크롤 페이지를 구현해보았다. 1. 타입 설정먼저, 영화 리스트와 영화 타입을 먼저 지정해주었다. TMDB API 응답 구조를 그대로 정의하되, 필요하지 않을 것 같은 부분은 빼주었다.MovieListResponse가 API 호출 시 반환되는 최상위 타입이고, 그 안에 Movie 배열이 담기는 구조이다. export interface Movie { id: number; title: string; overview: string; poster_path: string | null; // 포스터가 없을 수 있으므로 NULL 허용 release_date: string; vote_average: n..
