본문 바로가기

전체 글

(11)
컴포넌트의 책임? 이번에 프로젝트를 진행하면서, 상품 등록이나 사용자 간 채팅에 이미지 업로드 기능이 필요하게 되었다. 이미지를 업로드하는 순간 비동기적으로 Amazon S3에 파일을 먼저 업로드하고, 상품 등록 (게시글 등록) 을 하거나 채팅을 전송할 때 반환된 이미지 ID를 포함해 요청하는 식으로 플로우를 설계했다. 그래서 S3에 이미지를 업로드하고, Progress Bar 표시나 프리뷰 이미지 표시를 대신해줄 ImageUploader 컴포넌트를 직접 만들었고, 컴포넌트 외부에서 이미지를 관리하도록 이벤트 기반으로 구현했다. interface ImageUploaderProps { children?: ReactNode; className?: string; disabled?: boolean; onUploadRequeste..
Cookie Cookie는 Http Response에 담겨 Client에게 전달되고 저장된다. 이 때 어떤 브라우저를 쓰는지에 따라 Cookie의 관리 방식은 달라질 수 있다. 이 글은 Chrom browser 기준으로 작성할 예정이다. ResponseCookie responseCookie = ResponseCookie.from("Authorization", tokens.get(1)) .httpOnly(true) .secure(true) .sameSite("None") .maxAge(60 * 60 * 24 * 500) .path("/") .build(); 우선 쿠키의 유효기간을 500일로 설정했을 경우이다. 2025-05-05T15:34:06.142Z - Browser에 저장되는 쿠키 위와 같이 강제로 400일로 변..
Spring data jpa를 이용한 Pagination 1. Pageable 타입 인스턴스란? Pageable은 pagination을 진행하기 위해 Spring data jpa에 알려줘야할 정보들을 포함한다. 포함하고 있는 정보들은 - 페이지 번호 - page - 한 페이지에 불러올 데이터 건수 - size - 정렬 조건 - sort 로 구성 Pageable의 구현체는 PageRequest를 사용한다. Pageable pageable = PageRequest.of(page, size, Sort.by("productId")); 여기서 Sort.by는 해당 칼럼을 기준으로 정렬을 진행한다는 조건을 추가해준다는 뜻 2. Querydsl을 사용한 Pagination 기능 구현 해당 부분은 단순하게 구현이 가능하다. 반환 객체를 Page (해당 제너릭 타입으로 Ent..