본문 바로가기

분류 전체보기

(172)
24.03.22 ValidException으로 제한추가, 익셉션 컨트롤 오늘은 먼저 valid를 제대로 적용시키기 위해서 @ExceptionHandler(MethodArgumentNotValidException::class) fun handleMethodArgumentNotValidException(e: MethodArgumentNotValidException): ResponseEntity { val errors = e.bindingResult.fieldErrors.joinToString(separator = ", ") { "${it.field}: ${it.defaultMessage}" } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ErrorResponseDto(errors)) //(e.message)보다 이렇게 ..
24.03.21 제한걸기 오늘은 먼저 제한을 구현했다. data class ProductRequest( @Schema(description = "제목은 최대 250자까지 가능하며, 최소 1자 이상이어야 합니다", example = "사과") @field:Size(min = 1, max = 250, message = "제목은 최소 1자 이상, 최대 250자까지 가능합니다.") val title: String, @Schema(description = "내용은 최소 1자 이상, 최대 1000자까지 가능합니다", example = "상품 설명") @field:Size(min = 1 ,max = 1000, message = "내용은 최소 1자 이상, 최대 1000자까지 가능합니다.") val content: String, val imag..
24.03.20 평점 검색, nan을 0으로 어제 만들었던것에서 이어지는데, 실험결과 이것은 @Transactional override fun getAllProducts(): List { val products = productRepository.findAll().filter { it.deletedAt == null } return products.map { product -> val reviews = reviewRepository.findAllByProductIdAndDeletedAtIsNull(product.id!!, Pageable.unpaged()).content val averageRating = reviews.map { it.rating }.average() product.ratingAverage = averageRating produc..
24.03.19 5분기록보드의 중요성과 평균평점 오늘은 먼저 이력서에 넣으면 좋은것에 대한 특강을 들었는데, 그건 바로 5분 기록보드를 이용하는 것이였다. 5분기록 보드엔 개발을 하면서 있었던 일들을 생생히 써넣을수 있기 때문에, 내가 무엇을 했는지 증명하기에 딱 좋기 때문이다. 오류를 수정한 내용을 쓰는것도 좋고 필요하면 사진을 찍어두는것도 좋다고 한다. 글보단 사진이 보기 좋으니까. 그리고 회고노트도 이력서에 넣기 좋다고 했다. 그다음은 코드리뷰에 대한 안내를 듣고 다시 회의를 한뒤 역할분배를 마쳤다. 내가 하기로 한건 우선 평점 평균구하기 / 평균 평점순 검색 ,제한걸기 , 익셉션 컨트롤이다. 먼저 평점 평균구하기 / 평균 평점순 검색 ,제한걸기를 이번주 내에 끝내기로 하고 작업에 들어갔다. @Transactional override fun ge..
24.03.18 중간발표회 후 오늘은 발표를 진행했다. 그런데 다른 팀 중에 잘하는 사람들이 많아서 놀랐다. 진짜 어디서 사회자로 일하다 온것같은 사람도 있었다. 어쨋든, 발표는 상당히 잘 진행됬는데, 피드백으론 해외결제를 생각해본적이 있냐는 이야기가 나왔는데, 그건 생각해본적이 있어서 놀랐다. 하지만 소규모의 영세 사이트라 해외결제는 필요없을거 같다는 의견이 나왔다. 로깅 이야기도 나왔는데 그건 뭔지 모르겠어서 넘어가고, 그리고 회의를 한 결과 우선 내 기능 중에는 리뷰가 상품에 평점을 남겼을때 그것의 평균을 구하는 로직을 만들어야 한다. 그리고 글자수 제한 이런것도 만들어야 한다.그 외에는 익셉션을 따로 만들지 말고 글로벌 안에있는걸로만 하자는 이야기와 프론트는 우선 팀장님이 혼자 껍데기만 만들고 나머지는 협업하는 식으로 나왔다...
24.03.15 중간 마무리 오늘은 좋아요를 했을때 아무 메시지도 나오지 않는것이 걸려서 이미 좋아요를 했는데 또 했을때, 계정이 다르거나 한 이유로 좋아요에 실패했거나 다른사람이 좋아요를 한걸 지우려 할때 메시지를 보내도록 하고, userprinsipal을 이용해서 인증을 박으려고 했는데, 소셜 유저가 문제가 되었다. 소셜 유저는 id와 카카오에서 보내주는 providerid로 이루어지는데, userprinsipal을 했을때 providerid를 인식해버려서 id로 인식을 전혀 못하는 문제가 터져서 해결해보려 했지만 해결이 되지 않아서 결국 userprinsipal을 뺄수밖에 없었다. 그리고 대본을 만들었다. 그리고 다음에 가장 먼저 할일로 평점의 평균 만들기를 해야한다. 물론 다음주에!
24.03.14 seller과 socialuser 구분 등 코드 정리 오늘은 내가 맡은 과제는 다 완료했다고 생각한다. 병합도 거의 다 한거같고, 부족한 코드도 다듬었고, 마무리도 얼추 끝났다고 생각했었다. 페이징도 검색도 해본적없는걸 해보느라 많은것을 배웠다고도 생각한다. 물론 심화도 있고, 중간 발표도 남았고, 프론트도 해결해야 하긴 하지만, 그건 중간 발표를 끝내고 하기로 했다보니 지금이 그나마 프로젝트를 시작한 뒤 가장 여유로울 때라고 생각한다. 처음 시작할때는 구현해야 하는것도 많고 페이징도, 검색도 만들어본적이 없어서 걱정이 많이 됬는데, 그래도 어떻게든 여기까지 왔다고... 생각했는데 뒤져보니까 수정할게 계속 나온다. 오늘 한 다듬기 작업은 userid를 socialuserid로 바꾸는거랑 Operation, Parameter로 설명을 추가하기, 틀린 작업을 ..
24.03.13 진행중 인기검색어 기능을 만들때 이상하게 최상위 하나만 나오고 나머지가 출력이 안되서 페이징을 지운결과, 멀쩡히 작동했다. 페이징에 뭔가 문제가 있던 모양이다. 어짜피 검색어는 데이터가 여럿 쌓일일이 없기 때문에 페이징은 안해도 된다고 한다. 그리고 공동구매와 병합하고 redis를 깔고 연결했는데, 레디스는 사용하지 않는다고 해도 깔아서 실행시키지 않으면 인텔리제이도 실행시 킬수가 없기에 깔아야만 한다. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'searchController' defined in file [C:\Users\asdf\Desktop\최종\moamoa\build\clas..