카테고리 없음

[내일배움캠프] 12월 20일 화요일 TIL 회고록

tft4rollz 2022. 12. 20. 23:16

저녁 7시부터 10시 반까지 튜터님 강의를 들었다 ( 입문 과제 라이브 코딩 )

설명을 정말 잘하시고, 잘 가르쳐주셔서 시간 가는 줄 모르고 봤다.

 

강의를 하면서 설명해 주는 부분에 대해서 조금 구글링 해봤다.

 

@Transactional 어노테이션

Transactional 의 성질

▶ 원자성(Atomicity)

 - 한 트랜잭션 내에서 실행한 작업들은 하나로 간주한다. 즉, 모두 성공 또는 모두 실패. 

 

 일관성(Consistency)

 - 트랜잭션은 일관성 있는 데이타베이스 상태를 유지한다. (data integrity 만족 등.)

 

▶ 격리성(Isolation)

 - 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야한다.

 

▶ 지속성(Durability)

 - 트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 한다.

 

2. 동작 원리

@Transactional 어노테이션을 기준으로 설명하겠다.

트랜잭션은 Spring AOP를 통해 구현되어있다. 

더 정확하게 말하면, 어노테이션 기반 AOP를 통해 구현되어있다. (import문을 보면 알 수 있다)

import org.springframework.transaction.annotation.Transactional;

따라서, 아래와 같은 특징이 있다

  • 클래스, 메소드에 @Transactional이 선언되면 해당 클래스에 트랜잭션이 적용된 프록시 객체 생성
  • 프록시 객체는 @Transactional이 포함된 메서드가 호출될 경우, 트랜잭션을 시작하고 Commit or Rollback을 수행
  • CheckedException or 예외가 없을 때는 Commit
  • UncheckedException이 발생하면 Rollback

아래 블로그를 참고했다.

https://imiyoungman.tistory.com/9

 

[Spring] @Transactional의 이해

스프링에서 트랜잭션 처리를 위해 선언적 트랜잭션을 사용한다. 선언전 트랜잭션이란 설정 파일 or 어노테이션 방식으로 간편하게 트랜잭션에 관한 행위를 정의하는 것이다. (물론, 프로그래밍

imiyoungman.tistory.com


Timestamped 에서

 

@MappedSuperclass :

해당 클래스가 상속될 속성을 포함하고 있는 SuperClass 라는걸 알리는 마커 어노테이션이다.

 

 

@EntityListeners : Entity가 DB로 load/persist 되기 전후에 커스텀 로직을 선언하는 인터페이스이다.

커스텀 리스너를 구현 후 @EntityListeners 를 통해 엔티티에 등록해 줄 수 있다.

 

AuditingEntityListeners는 해당 엔티티에 선언 된 CreatedDate, LastModifiedDate, CreatedBy, LastModifiedBy 어노테이션을 탐색해 엔티티 변경 시 해당 값을 자동으로 업데이트 해준다.


@PutMapping 과 @PatchMapping 차이 ( PUT과 PATCH 차이 )

 

PUT : 자원의 전체 교체 , 자원교체시 모든 필드 필요

 

PATCH : 자원의 부분 교체, 자원교체시 일부 필드 필요

 

PUT 과 PATCH는 HTTP 메서드지만 규약일 뿐 특정 행동을 강제할 수 없다. 하지만

이러한 규약은 모두가 동의한 약속이고 클라이언트와 서버 간의 통신에서 혼란이 발생하지 않도록 정의를 잘 알고 사용하는 것이 좋다.

 

PUT과 PATCH의 차이점으로 멱등성에 대한 이야기도 많이 있다.

PUT은 멱등성을 지키지만 PATCH는 멱등성을 지키지 못한다는 것이다. 아래 사이트를 참고하면 더 좋을 것 같다.

https://stackoverflow.com/questions/28459418/use-of-put-vs-patch-methods-in-rest-api-real-life-scenarios

 

Use of PUT vs PATCH methods in REST API real life scenarios

First of all, some definitions: PUT is defined in Section 9.6 RFC 2616: The PUT method requests that the enclosed entity be stored under the supplied Request-URI. If the Request-URI refers to an a...

stackoverflow.com

아래 블로그를 참고했다.

https://tecoble.techcourse.co.kr/post/2020-08-17-put-vs-patch/

 

자원을 수정하는 HTTP 메서드 - PUT vs PATCH

들어가며 웹 API를 설계할 때, 최대한 Http 표준을 따라서 용도에 맞는 Http Method를 사용해야 한다는 것은 아마 많은 개발자들이 인지하고 있을 것이다. 이번 글에서는 Http Method…

tecoble.techcourse.co.kr


오늘은 과제를 이어서 만들었다. 토큰값이 유효한 사용자만 게시글 작성, 수정, 삭제 기능을 구현해야하는데

이걸 어떻게 구현해야할지 몰라서 하루종일 헤맸다 ㅠㅠ..

내일 다시 한번 봐야될 것 같다.. 이거만 하면 lv.1 과제 완성인데.. 쉽지않다.

내일도 화이팅!