23.11.6 TIL

전주현·2023년 11월 6일

TIL

목록 보기
5/21

1. 오늘 한 것

  1. 스프링 강의 듣기
  2. 개인과제 Spring으로 CRUD 만들기

2. 오늘 배운 것

  • Entity의 상태
    • 비영속 (Transient)
    • 영속 (Manager)
    • 준영속 (Detached)
    • 삭제 (Removed)
  • @Transaction
    • entity transaction없이 쉽게 트랜잭션 환경을 만들어 줌
    • readOnly= true 옵션을 통해 수정 안되고 읽기만 가능하게 가능, 최적화 하는데 도움이 됨
    • 클래스 안의 메서드에 다른 옵션을 설정하고 싶은 경우 메서드에 @Transaction 어노테이션을 한번 더붙여 변경
  • @PersistenceContext
    • EntityManager em;
    • 자동으로 생성해주는 EntityManager를 주입받아 오고 싶을 때 사용
  • 트랜잭션 전파

    메서드에 속한 하위 트랜잭션이 끝나도 상위 메서스까지 모든 트랜잭션이 끝나야 커밋

  • Spring Data JPA
    • JPA를 쉽게 사용할 수 있게 만들어 놓은 하나의 모듈
    • JPA를 추상화시킨 repository를 제공
  • JpaRepository 상속
    • 인터페이스에 JpaRepository를 상속 받으면 @Repository 어노테이션이 필요 없음, simpleJpaRepository에 들어가면 확인 가능
  • .orElseThrow()

    거짓 값이면 예외를 반환

  • JPA Auditing
    • 작성시간, 수정시간 등을 편하게 구현해주는 기능
    • @EntityListeners(AuditingEntityListener.class) 를 달면 자동 시간 넣기 기능 수행가능
    • @CreatedDate 작성시간
    • @Column(updatable = false)
      업데이트가 추가로 되지 않음
    • @LastModifiedDate 변경시간
    • @EnableJpaAuditing 메인메소드에 달아야 Auditing 사용가능
    • 시간을 찍을 객체에 상속시켜줘야함
  • Query Methods

    Spring Data JPA에서 메서드 이름으로 SQL을 생성할 수 있는 기능

3. 개인과제

  1. UseCase 다이어그램을 만들어는 봤지만 맞게 만든건지 모르겠다
  2. ERD 도 만들어 봤지만 잘 모르겠다.
  3. API 명세서도 마찬가지..
    https://documenter.getpostman.com/view/30855692/2s9YXfbiAv

4. 느낀 점

  1. 스프링이 꽤 어렵게 느껴진다.
  2. 예외처리랑 http 상태코드를 공부하자!
  3. Autowired도 다시 공부하자!
  4. REST의 제약조건 6가지 공부하자!
profile
개발

0개의 댓글