반응형 Spring/Issue20 조회수 기능 구현하기 - 중복 방지(Cookie) Issue 커뮤니티 서비스를 구현하는 토이프로젝트를 진행하면서 게시판의 조회수를 증가 로직을 만드려고 합니다. 게시글이 조회될 때마다 조회수를 증가하는 게 가능하지만 동일 사용자에 한해서 조회수가 중복이 될 수 있기 때문에 해당 조회수 중복을 어떻게 방지할 수 있을지 알아보겠습니다. 일반적인 커뮤니티의 조회수 집계 방법은? 네이버 블로그를 확인해보겠습니다. 네이버 블로그는 조회수(포스트 방문 횟수) 는 30분 이내의 재방문은 가산되지 않는다. 티스토리를 알아보겠습니다. 티스토리는 방문자수와 조회수를 둘 다 제공하여 조회수를 판별할 수 있게 했다. 현재 구현하려는 서비스의 경우에는 블로그 개념이 아닌, 개별 글의 조회수를 제공할 예정이기에 방문자 수는 제공하지 않고, 하루 기준으로 중복 조회 기준이 리셋되.. Spring/Issue 2024. 1. 2. Java 8 LocalDateTime Serialization, Deserialization 이슈 Issue 토이프로젝트를 진행하면서 생긴 LocalDateTime 직렬화/역직렬화에 관한 이슈가 발생했다. 게시글을 조회할 때에 게시글의 작성 시간을 Dto에 주입해서 리턴하는 것을 구현하는 것을 추가하는 와중에 createdAt(생성시간) 을 리턴할 때 값이 받아오지 않고 예외가 발생했다. Problem Exception is occurred.org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class java.time.LocalDateTime] 에러 내용에서 확인해보면 LocalDateTime의 타입이 맞지 않아서 에러가 발생한 것으로 보인다. 그럼 타입을 맞춰보기 .. Spring/Issue 2024. 1. 1. 페이징(Paging) 성능 개선 테스트 페이징 성능 개선 현재 토이프로젝트로 축구 커뮤니티 서비스를 개발하고 있습니다 https://github.com/kdmin0706/AmKorea GitHub - kdmin0706/AmKorea: 축구 정보 커뮤니티 축구 정보 커뮤니티. Contribute to kdmin0706/AmKorea development by creating an account on GitHub. github.com 게시글의 페이징을 구현하면서 문득, 대용량 데이터 를 가진 경우에는 기존 처리 방법과 똑같이 해도 되는지에 대해 궁금증이 생겨 테스트를 진행했다. 1. 기존 페이징 (offset) 기존 API 로직에 대해 살펴보겠습니다. Controller 로직으로 Pageable 객체와 검색하는 Title을 PathVariable.. Spring/Issue 2023. 12. 29. @NotBlank, @Valid 적용하는 방법 Springboot validation 적용 스프링부트에서 유효성 검사를 위해 사용하는 어노테이션 중 하나인 @NotBlank 이나 @Valid 를 적용하는 방법에 대해 알아보겠습니다. Validation 어노테이션 에러 상황 @NotBlank 사용 하려는 중에 인텔리제이(Intellj)에서 자동 완성이 되지 않고, 심볼을 찾을 수 없는 경우 발생 원인 @NotBlank 등 Validation 어노테이션을 사용하려면 javax.validation.constraints 패키지에 존재한다. 스프링부트 ver 2.2 이하의 프로젝트에는 존재하지만 ver 2.3 이상은 따로 의존성을 추가해야 사용이 가능하다. 해결 조치 해당 프로젝트에 validation 관련 의존성을 추가해준다. 해당 의존성을 추가하면 유효성.. Spring/Issue 2023. 11. 16. [오류 처리] Failed to load ApplicationContext Failed to load ApplicationContext SpringBoot 프로젝트에서 TDD 구현 시에 발생하는 에러 관련 내용을 알아보겠습니다. 오류 내용 java.lang.IllegalStateException: Failed to load ApplicationContext 오류 원인 데이터베이스 소스를 구성하지 못해서 나오는 에러이다. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 오류 해결 방안 H2, HSQL or Derby 등의 데이터베이스를 추가해줘야한다. 해당 프로젝트에서는 H2 DataBase 의존성을 추가하여 진행하였다. c.. Spring/Issue 2023. 11. 9. [오류 처리] Content type 'text/plain;charset=UTF-8' not supported Content type 'text/plain;charset=UTF-8' not supported Spring 프로젝트 진행 시에 Json 에러 관련 조치 내용을 알아보겠습니다. 오류 내용 Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported] 오류 원인 컨트롤러는 @RequestParam과 @RequestBody를 사용하여 Json 형식으로 Request를 받고 있는 상황이다. 클라이언트에서 요청 시, Request Header에 'Content-Type' : 'application/json'을 담지 않은 상태에서 발생한 에러이다. 오류 .. Spring/Issue 2023. 10. 24. [오류 처리] could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement Spring에서 JpaRespository를 이용하여 SQL을 사용할 때 발생하는 에러를 처리하는 방법을 알아보겠습니다. 오류 내용 o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1146, SQLState: 42S02 o.h.engine.jdbc.spi.SqlExceptionHelper : Table 'project.diary' doesn't exist could not execute statement; SQL [n/a]; .. Spring/Issue 2023. 10. 19. [오류 처리] No creators, like default construct, exist No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator 스프링부트 프로젝트 진행 시 발생하는 에러 중 하나인 No Creators, like default construct, exist 의 에러 처리 방법에 대해서 알아보겠습니다. 에러 발생 원인 'jackson' 라이브러리가 empty Constructor 가 없고, 파라미터가 있는 constructor 가 있을 때 Json 모델을 생성해야되는지 몰라서 발생하는 문제이다. 해결 방법 Json으로 취급할 필드가 무엇인지 알려준다. (ex. @JsonProperty 사용) lombok을 사용 시에.. Spring/Issue 2023. 10. 17. 이전 1 2 다음