[QnA 게시판] 새로운 게시글 new 기능 구현하기

Updated:

Categories:

Tags: , ,

📌 개인적인 공간으로 공부를 기록하고 복습하기 위해 사용하는 블로그입니다.
정확하지 않은 정보가 있을 수 있으니 참고바랍니다 :😸
[틀린 내용은 댓글로 남겨주시면 복받으실거에요]

구현 조건 : 질문 , 답변 게시글이 생성되면 New 생성

새로운 글이 게시되면 2일동안 new가 생기는 기능을 구현하기

LocalDateTime에 구현된 메서드 사용하기

처음에 Calendar로 구현하려고 하다가, createdAt을 활용해야하니 LocalDateTime 에 구현되어 있는 기능이 있나 하고 찾아봤더니
시간을 비교하는 메서드가 구현되어 있었고 new도 boolean type으로 내보내면 되겠다고 생각했다.
isAfter() 라는 메서드는 매개변수로 들어오는 시간보다 미래 시간이면 true
isBefore() 은 매개변수로 들어오는 시간보다 과거 시간이면 true이다
이 기능을 활용해서 createdAt과 현재시간을 비교해서 구현해야겠다고 생각했다.

Oracle Java 8 LocalDateTime API

첫 시도 > service 에서 게시글 post 요청시 구현 : 실패

  1. QuestionPost 클래스에 필드로 생성

  2. QuestionPostService

    • QuestionPostService 에서 따로 메서드를 구현 후 Post요청이 올 때
      CreatePost에서 메서드를 호출하게 설정하였는데 시간이 지나도 false로 변경되지 않았다.

  • 생각해보면 따로 DB에 저장이 되었는데 다시 저장되지 않는 이상 상태가 바뀔 이유가 없어서
    다시 생각하다가 도움을 요청했는데 new기능은 우리가 보내는 CreatedAt을 프론트엔드에서 활용해서 만드는 기능이고
    그럼에도 불구하고 백엔드에서 구현하고 싶으면 responseDto로 응답을 보내면 된다고 한다.


mapper에서 구현 > ResponseDto에 담아서 보내주기 : 성공

  1. mapper에서 questionPostResponseDto로 바꾸는 메서드에서 위 메서드에서 구현한 계산식을 구넣으면 될 것 같아서 넣었다.
    • 대신 기존에 @Mapper 애너테이션으로 변환을 자동으로 해줫던걸 새로 할당을 해주어줘야했다.



    • 시간을 2일로 설정해야 하는데 test를 위해서 1분으로 설정 후 postman 요청



    • 1분 후 postman 결과




Project 카테고리 내 다른 글 보러가기

Leave a comment