프로젝트/booktalk(책 중고 거래 서비스) (22) 썸네일형 리스트형 QueryDSL product 조회 코드 구현(페이징 처리,카테고리처리, 조회 결과 정렬) QueryDSL 이란? 정적 타입을 이용하여, SQL과 같은 쿼리를 코드 형태로 생성할 수 있도록 해주는 오픈소스 빌더 API 즉, SQL문을 직접 하드코딩 하는 것이 아닌, 코드 형태로 작성하는 것이 특징이다. 이 컨트롤러는 다양한 REST API 엔드포인트를 정의하고, 상품 관련 요청을 처리하여 클라이언트에게 응답합니다. @RestController @RequiredArgsConstructor @RequestMapping("/api/v2/products") public class ProductController { private final ProductService productService; // 새 상품 생성 엔드포인트 @PostMapping public ResponseEntity createPr.. product 내가한 부분은 아니지만 코드를 보면서 공부해보기로 했다. productController @RestController @RequiredArgsConstructor @RequestMapping("/api/v2/products") public class ProductController { private final ProductService productService; // 상품 생성 엔드포인트 @PostMapping public ResponseEntity createProduct( @AuthenticationPrincipal UserDetailsImpl userDetails, @RequestPart("req") ProductCreateReq req, @RequestParam("upload") List fil.. image파일 업로드 할때 리사이징 적용하기 이미지 리사이징을 도입한 이유는 S3 프리티어 저장 공간이 90% 이상 차면서 이미지 관리의 필요성을 느꼈습니다. 서버에 저장된 이미지의 용량을 최적화하면 저장 공간을 효율적으로 활용할 수 있습니다. 효율적인 용량 관리는 비용 절감에 도움이 될 수 있습니다. 그리고 사용자들은 다양한 디바이스에서 중고거래 사이트를 이용합니다. 이미지를 리사이징하여 다양한 디바이스에서도 적절한 크기로 보여줄 수 있습니다. 단순하게 용량을 제한 하는것 만으로도 무지막지한 용량의 이미지를 차단할 수 있는 장점이 있었다. java.awt.Graphics2D, Imgscalr, Marvin 등 이미지 리사이징 라이브러리 사용 시 ,이미지IO와 변환과정에서 3mb이상의 이미지는 리사이징하는데 상당히 오랜 시간이 소요된다. 아래와 같.. [SpringBoot] AWS S3로 이미지 업로드하기 일다 AWS에서 S3 버킷을 생성한다. 순서대로 만든다. IAM 사용자 권한 추가 S3에 접근하기 위해서는 IAM 사용자에게 S3 접근 권한을 주고, 그 사용자의 액세스 키, 비밀 엑세스 키를 사용해야 한다. 사용자를 만들고 권한을 설정한다. 설정후에 사용자 추가를 하면 액세스 키, 비밀 엑세스 키가 보여지는데 이 키들은 현재 화면에서 밖에 볼 수 없다. 저장해두자. Spring Boot로 파일 업로드 위에 s3 버킷 설정을 다해주면 이제 스프링부트 프로젝트만 수정해주면 된다. build.gradle에 의존성 추가 //S3 implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' application.yml 작성하기.. 1/15 getProfile말고 본인 프로필조회하는거 추가 프로필 수정시 비밀번호 변경은 따로 수정시 반환객체 태그검색시 태그가 하나만 반환되어나옴 리뷰검색시 제목 + 내용까지 같이 검색되도록 ReviewDto에 좋아요 갯수추가 유저랑 리뷰에 이미지 주소 추가(?) Test코드 작성 배형태 신고 html, Review Dto 수정, UserReportServiceTest 작성, repository test코드 작성 김건우 관리자페이지html , Admin,image,상품 좋아요 Service Test코드 작성 신승호 리뷰도메인 html, 댓글 html 이준영 상품 html , chat ServiceTest 채팅관련페이지 , 거래관련페이지 1/11 남은기능 소셜로그인 부분 + 테스트코드(서비스 레이어) Docker + CI/CD 부하테스트,스트레스 테스트 툴 - 배포이후에 테스트 하는게 좋음 Trouble shooting PathVariable, name 생략 문제 Controller에서 @PathVariable을 이용하여 Post, GetMapping 등 을 사용할때 발생 java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. Spr.. 1/10 회원신고 Entity 변경 → 신고회원, 신고당한 회원 외래키 2개로 repository에서 데이터 꺼내올때 optional 사용 유저 id(평가를 하는사람) , 상품 id , 거래점수 - 거래 Entity 사용자 평점은 평균으로 기능 테스트 - 수정사항유저 신고 - 중복으로 신고해도 괜찮을까 수정완료 product_like -> tb_product_like tb_reviewlike -> tb_review_like거래 완료테이블에 등록된 상품을 삭제할 경우 exception처리 - 수정필요 Product softDelete로 처리 거래 완료시 상품테이블의 finished컬럼 변경 - 판매자가 수동으로 처리 카테고리 수정 - 기존에 있는 카테고리일 시 exception처리 - 수정필요 유저 프로필 조회 -.. 1/9 튜터님 피드백 속기 프론트는? javascript AJAX 사용하려고합니다. html(2~3개)을 다 만들어 놓고 react처럼 or html(10개)정도 만들어서 이동하는거(thymleaf) 중에 고민 => 이동하는게 훨씬 더 편하지만 그냥 쓰던거 쓰는게 좋아보임 html이동에 어려움 window.location.href ="/template/chat-room.html/; url로 이동은 하는데,, template는 정적인 페이지를 만드는 곳,,static으로 옮기는게 /chat-room.html로 수정 업데이트 꾸준히 필요에 의해 바꾸는게 좋아보임. 연습겸으로 사용하는 건 x 이유가 있어야함(QuearyDSL을 사용한 이유?) JPQL, QueryDSL의 장단점을 비교 분석하고, 우리가 사용하면 좋을 걸 정하자 Quer.. 이전 1 2 3 다음