2023.07.28.FRI

ronglong·2023년 7월 28일
0

[ 인프런 강의 마저 듣기 ]

[ 스프링 프레임워크 입문 ]

  • PSA (추상화)
    • ex. transaction, caching, SpringWebMVC 등
    • 스프링 리액티브 5부터는 서블릿 사용하지 않고도 @Controller, @GetMapping 등 작동

[ JPA & Spring Data JPA 기초 ]

  • JPA

    • Criteria
      • 빌더를 이용해서 동적 쿼리 생성 가능
      • 여러 테이블 조인, DBMS에 특화된 쿼리, 서브 쿼리, 대량 조회 및 처리의 경우
        일반 쿼리 및 CQRS 사용 권장 (N+1문제 등)
    • @AttributeConverter : DB와 객체의 컬럼/필드 타입 임의 매핑
    • @DynamicUpdate : 변경된 컬럼만 UPDATE 쿼리에 포함
    • @Immutable : 엔티티를 영속성 컨텍스트 변경 추적 대상에서 제외.
      값이 변경되지 않고 조회만 하는 엔티티에 사용
    • @Subselect : select 결과를 엔티티로 매핑. @Immutable와 함께 사용.
  • Spring Data JPA

    • save() 동작 방식 : select + insert
      • 새 객체면 persist, 아니면 merge
      • Persistable 인터페이스를 직접 구현하여, select 쿼리 날아가지 않게 할 수 있음
    • 정렬 : Sort 타입, Pageable/PageRequest 이용 등
      • 나는 프로젝트에서 주로 paging 이용
    • Specification (검색 조건을 생성하는 Interface)
      • Criteria를 이용해서 검색 조건 생성
    • Spring Data JPA만 사용하면 안 되고, MyBatis, JDBC Template 등을 적절히 섞어야 사용하기

[ 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 ]

  • @ResponseBody
    • HTTP body에 반환
    • veiwResolver 대신 HttpMessageConverter가 동작
  • 빈 등록 : ComponentScan, @Configuration + @Bean, .xml
  • JDBC 데이터 연결하여 사용 후, 소스 릴리즈 안 하면 커넥션 쌓이면서 터짐
  • 테스트는 반복할 수 있어야한다.
    @Transactional 애너테이션이 각 테스트 종료 후 롤백해줌.
  • 테스트의 중요성,,

[ 느낀 점 ]

주말에 개인 작업하고 시간 있으면 마저 들어야겠다.
공부할 때 돈 안 들이는 타입이라 인강 사본 적 한 번도 없고 전부 무료 강의인데,
보다보니 약간 유료 강의 탐남,,

1개의 댓글

comment-user-thumbnail
2023년 7월 28일

좋은 글 감사합니다.

답글 달기