1. 깃 병합 충돌
오늘 깃에대한 수업을 진행하면서, 로컬에서 딴 task 브랜치를 로컬의 main 브랜치로 merge 할때 충돌이 나게끔 해서 보여드리려 했는데
그냥 task 의 내용이 main 을 덮어써버렸다.
찾아보니, 병합충돌은 리모트 브랜치와 로컬 브랜치사이에 병합하려 할때 일어난다고 한다. 처음 알았다..
추가로 깃에 대해 수업준비 하면서 알게된 재밌는 부분은, 리눅스를 만든 사람이 깃을 만들었다는 것 (이전에 들은적이 있었는데 까먹었었음), 아폴로 11호의 코드가 깃허브에 모두가 볼 수 있게 올라가있다는것들이었다 ㅋㅋ
2. 예외 처리 전략
이 부분에 대해서는 같이 스터디를 진행중인 Cheese.yun 님 블로그 도움을 많이 받았다.
https://cheese10yun.github.io/spring-guide-exception/
현재 작업중인 코드 명세가 성공, 실패시 모두 공통적인 부분이 있어서,
CommonResponse 객체를 만들고, 각각의 성공 Response Dto 와 에러 Response 하나를 만들고,
에러메세지, http 상태코드, 에러코드를 관리하는 Enum 을 만들었다.
이후 Error Response 객체에서 에러코드를 받아 셋팅하는 정적 메서드를 만들어 사용하였다.
예외같은 경우에는 RuntimeException 을 상속하는 최상위 BusinessException 을 정의하고,
이를 상속받아서 예외를 만들어서, BusinessException 으로 @ExceptionHandler 가 모두 받아서 처리할 수 있도록 하였다.
3. @CreatedDate vs @CreationTimeStamp
@CreationTimeStamp
@UpdateTimeStamp
그냥 필드에 선언해놓으면 됨.
하이버네이트 에너테이션이다.
@CreatedDate
Spring Auditing 이다.
고로, 스프링에서 제공한다.
@EnableJpaAuditing 필요.
@EntityListener 도 필요
기능적인 차이는 없다.
단지 (사실 JPA 의 구현체를 하이버네이트에서 다른 것으로 바꿀 일도 없겠지만,) 하이버네이트의 의존성보다는
스프링 자체 에너테이션을 쓰는 것이 나을 것 같다.
'TIL' 카테고리의 다른 글
TIL) Kotlin : runCatching, DTO/Entity 작성 팁 (0) | 2021.10.21 |
---|---|
TIL) JPA 페이징, Json 응답시 Null 필드 제외, Envers (0) | 2021.10.18 |
TIL) 트래킹 브랜치, @RequestParam 디폴트, Kotlin any() (0) | 2021.10.15 |
TIL) 쿠키/세션, 코틀린 스트림 파이프라인, 정규식 (0) | 2021.10.14 |
TIL) @field:, getBy vs findby, jwt (0) | 2021.10.13 |