Spring에 대해

송현진·2023년 4월 28일

Spring

목록 보기
4/10

구조

  • 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 로그인을 처리해준다.
profile
개발자가 되고 싶은 취준생

0개의 댓글