데이터 정의어(DDL): schema.sql
데이터 조작어(DML): data.sql
순서가 schema.sql / data.sql / ddl-auto 로 진행
sql 문에 대한 로그가 별도로 남지는 않음
엔티티 매니저 팩토리가 하나의 요청에 대해 하나의 엔티티 매니저가 할당
스프링 부트는 기본적으로 빈을 하나만 생성해서 공유하므로 동시성 문제가 발생할 수 있음
➡️ 실제 엔티티 매니저가 아니라 프록시 엔티티 매니저를 사용(트랜잭션은 실제 엔티티 매니저로 예외)
💡 기본적으로 제공되는 JPARepository는 엔티티 매니저를 직접 액세스할 수 없음
➡️ 직접 커스텀 레포지토리를 생성해서 액세스 가능
@SpringBootTest: @SpringBootApplication이 있는 클래스를 찾고, 그 클래스에 포함되어 있는 빈을 찾은 다음 테스트용 애플리케이션 컨텍스트 생성
@AutoConfigureMockMvc: MockMvc 생성하고 구성하는 애너테이션, 요청 및 전송, 응답 기능을 제공하는 유틸리티 클래스
자바 시스템 내부에서 사용되는 객체를 외부에서 사용하도록 데이터를 변환하는 작업
Assertion.assertEquals(실제 값, 기댓값)
➡️ 가독성이 떨어짐
assertThat(기댓값).isEqualTo(실제 값)
➡️ 두 값의 구분으로 가독성 증가
스프링 서버에서 데이터를 받아 우리가 보는 웹 페이지 (html) 상에 그 데이터를 넣어 보여주는 도구
대표적인 예 : JSP, 타임리프, 프리마커 ...
스프링이 권장하고 있는 템플릿 엔진
만약 스프링 시큐리티 관련해 WebSecurityConfig 설정을 하지 않았다면, 서버에 접속시 모든 url에 대해서 로그인 페이지가 나오게 된다.
인증이 필요한 상태이기 때문이다.
사용자의 인증 정보를 담아두는 인터페이스