-
DTO는 해당 테이블에서 실제로 CRUD를 할 필드를 정의해둔 것.Data Transfer Object로 "데이터 전송 객체"이다.
-
Entity : 테이블과 1:1로 맵핑되는 어노테이션 [해당 어노테이션이 붙으면 JPA가 해당 클래스를 관리함]
- @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만든다.
- @NoAtgsConstructor : 파라미터가 없는 기본 생성자를 생성.
- @Builder는 Builder 패턴(객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것)을 사용하기 위한 어노테이션
- @Entity : 테이블과 매핑. @Entity가 붙은 클래스는 JPA가 관리하는 것
- JPA는 JPQL이라는 SQL을 추상화한 객체지향 쿼리 언어를 지원.
JPQL은 테이블이 아닌 엔티티를 대상으로 쿼리를 수행하는데, 이때 이 쿼리에 엔티티의 이름이 사용.
- @Table : 엔티티와 매핑할 테이블 지정. 생략 시 매핑한 엔티티 이름을 테이블 이름으로 사용.
-
Controller : Service로 값을 넘기기 위해 값을 View 에서 받아 온다 던가 , 또는 값을 설정/세팅해 준다.
Http 요청과 응답.
-
Service : Repository와 DTO를 통해 DB 접근해 CRUD의 각각의 프로세스 관리와 예외처리 등을 담당.
해당하는 Model을 호출.
- @Service : 로직 처리(서비스 레이어, 내부에서 자바 로직을 처리함)
-
Repository : 외부I/O 처리(퍼시스턴스 레이어, DB나 파일같은 외부 I/O 작업을 처리함)
Entity에 의해 생성된 DB에 접근하는 메서드.
- JpaRepository를 상속받도록 함으로써 기본적인 동작이 모두 가능
- JpaRepository<대상으로 지정할 엔티티, 해당 엔티티의 PK의 타입>.
-
Config ?
- @Configuration : 파일에 빈을 등록할 것이니 조회해라!는 것.
- @Bean 어노테이션을 사용해서 빈을 직접 등록하는데, @Bean을 사용해 수동으로 등록할 때에는 해당 메서드 이름이 빈 이름으로 결정.
- Bean이란 스프링 IoC 컨테이너가 관리하는 자바 객체
- @EnableWebSecurity : WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class, HttpSecurityConfiguration.class들을 import해서 실행시켜주는 것. 해당 어노테이션을 붙여야 Security를 활성화 시킬 수 있음.



- UsernamePasswordAuthenticationFilter : 폼 로그인을 처리해준다.
- OAuth2LoginAuthenticationFilter : 소셜 로그인을 처리해준다.
- RememberMeAuthenticationFilter : remember-me 쿠키 로그인을 처리해준다.
- AnonymousAuthenticationFilter : 로그인하지 않았다는 것을 인증해준다.
- SecurityContextPersistenceFilter : 기존 로그인을 유지해준다. (기본적으로 session 을 이용함)
- BearerTokenAuthenticationFilter : JWT 로그인을 처리해준다.
- BasicAuthenticationFilter : ajax 로그인 (Session이 있는 경우에 사용)
- OpenIDAuthenticationFilter : OpenID 로그인을 처리해준다.