240102 TIL |

2024. 1. 2. 21:07· 왕초보일지

생성시간 Entity 관리

투두작성, 댓글작성 시 공통적으로 생성시간이 필요했는데 이걸 하나의 Entity 로 만들었다.

 

@어노테이션

@MappedSuperclass // JPA

: 해당 클래스를 상속받을 경우 필드를 Column으로 인식하도록!

@EntityListeners(AuditingEntityListner.class) // spring data JPA

 - AuditingEntityListener : JPA 내부에서 Entity 가 생성, 변경되는 것을 감지 

@CreatedDate/ @ModifiedDate  // spring data JPA

@EnableJpaAuditing // spring data JPA

: application 클래스에 추가, JPA Auditing 기능을 활성화

 

❓JPA Auditing
특정 작업 수행시 항상 필요한 로직과 엔티티 내의 코드 중복을 피할 수 있다.
@EntityListeners()
감시할 entity 등록

@Pre/Post Persist/Update/Remove/Load
함수를 이용해 작성하는 번거로움을 줄이기 위해

@EnableJpaAuditing
application 클래스에 추가

❓Spring Data Jpa Auditing
자주 사용되는 특정 작업에 대해 추상화된 기능 제공
@CreatedDate @LastModifiedDate @CreatedBy @LastModifiedBy (생성자 수정자는 추가 작업 필요)

기본값 var 선언
: 기본값을 넣어주었더라도 Data Jpa Auditing 내부적으로 숨겨진 어노테이션에서 프로퍼티에 접근변경하기때문

Auditing 사용 참조

Entity Auditing 참조

 

 

DB에 이미 저장되어있는 값의 시간날짜 형식과 불러오려는 때에 지정된 형식이 다르니 bad value라며 오류가 발생해서 기존 데이터 삭제 후에 정상적으로 조회할 수 있었다.

 

 

 

삭제성공메시지 

controller에서 삭제 처리후 

body 에 삭제성공메시지를 넣어주었다.

@DeleteMapping("/{commentId}")
    fun deleteComment(@PathVariable cardId: Long,
                      @PathVariable commentId: Long,
                      @RequestBody deleteCommentRequest: DeleteCommentRequest
    ): ResponseEntity<String> {
        cardService.deleteComment(cardId, commentId, deleteCommentRequest)
        val deleteSuccessMessage = "댓글이 성공적으로 삭제되었습니다."
        return  ResponseEntity
            .status(HttpStatus.NO_CONTENT)
            .body(deleteSuccessMessage)
    }

아무것도 안 뜬다...메시지를 어떻게 띄우지?

 

=> 

@DeleteMapping 은 기본적으로 상태코드를 No_CONTENT 로 설정한다.

이 경우 Response body 가 비어있게 된다.

상태코드를 OK 로 지정한 후 다시 실행해보았다.

 

정상적으로 메시지가 뜬다.

 

 

 

 

 


투두 STEP2 채워넣을 것

  1. 처음 설계한 API 명세서에 변경사항이 있었나요? 변경 되었다면 어떤 점 때문 일까요? 첫 설계의 중요성에 대해 작성해 주세요!
  2. ERD를 먼저 설계한 후 Entity를 개발했을 때 어떤 점이 도움이 되셨나요?
  3. 만약 댓글이 여러개 달려있는 할일을 삭제하려고 한다면 무슨 문제가 발생할까요? Database 테이블 관점에서 해결방법이 무엇일까요?
  4. IoC / DI 에 대해 간략하게 설명해 주세요!

투두 STEP3 고민

 

1. 할 일 목록에서 작성일 기준 오름차순, 내림차순 정렬 기능 추가

  • api를 요청할 때 정렬 기준(오름차순, 내림차순)을 포함하기
  • 정렬 기준을 통해 정렬한 할 일 목록 반환하기

목록 조회면 전체 조횐데 어느 기준으로 정렬할건지 값을 받아야 하나? 

그러면 nullable 한 값으로하고 디폴트는 정해놓는 식으로 해야할까

 

2. 할 일 목록에 작성자 기준 필터 기능 추가

  • api를 요청할 때 작성자 이름을 포함하기
  • 작성자 이름이 일치하는 할 일 목록 반환하기

마찬가지로 이름을 받아도 되고 안 받아도 되고

안 받으면 전체 목록 조회

3. 할 일 작성, 수정시 validation 추가

 - 제목 1자 이상 200자 이내 검사

 - 본문 1자 이상 1000자 이하 검사

 - 조건 불충족 시 기능 실패 응답

제목본문검사 조건 추가!

 

4. ResponseEntity 로 적절한 응답코드 반환

 

 

 


챌린지반 2주차

숙제

Spring Security 네이버 로그인 추가

Spring Security 없이 카카오/ 네이버 로그인 구현

다른 소셜 로그인이 추가될 수 있도록 유연한 코드 작성(Service 코드 불변)

 

OAuth 까지는 어찌어찌 이해했는데 security 가 더 어렵게 느껴지는 이유는 뭘까 .!

'왕초보일지' 카테고리의 다른 글

240104 TIL |  (2) 2024.01.04
240103 TIL | step1피드백, step2정리, step3  (0) 2024.01.03
231230 | TIL  (0) 2023.12.30
231229 TIL | 스프링 부트 3 기본 지식  (2) 2023.12.29
231228 TIL |  (0) 2023.12.28
'왕초보일지' 카테고리의 다른 글
  • 240104 TIL |
  • 240103 TIL | step1피드백, step2정리, step3
  • 231230 | TIL
  • 231229 TIL | 스프링 부트 3 기본 지식
다시은
다시은
🔥
다시은
재은로그
다시은
전체
오늘
어제
  • 분류 전체보기 (127)
    • 코딩테스트 (40)
    • Language (2)
      • JAVA (2)
      • Kotlin (0)
      • TypeScript (0)
    • SQL (1)
    • 인프라 (1)
    • 왕초보일지 (77)
    • 회고 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • googleapis
  • 문자열변환
  • sql
  • Kotlin
  • 스프레드시트
  • SQL문법
  • mysql

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
다시은
240102 TIL |
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.