[SPRING:이론] 6

김승수·2024년 5월 23일
0

SPRING

목록 보기
6/27

⏰ 2024. 05. 23 목

✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.

💡 목차

  1. Bean 수동 등록
  2. 인증과 인가
  3. 쿠키와 세션

Bean 수동 등록

⚡ Bean

  • Spring이 관리하는 객체로, 의존성 주입이 필요한 클래스(인터페이스 포함)를 Bean으로 등록해 Spring에 의해 의존성이 주입된다.

Bean 수동 등록

  • 클래스에 @Component 사용하면 @ComponentScan에 의해 자동으로 스캔되어 Bean으로 등록되고, 일반적으로는 자동으로 등록하는 것이 좋다.
  • Bean의 수동 등록은 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록한다.
  • 수동으로 등록하는 기술 지원 Bean : 비즈니스 로직을 지원하기 위한 부가적이고 공통적인 기능들을 지원하는 객체

수동 등록 장점

  • 수동 등록된 Bean에서 문제가 발생했을 때, 해당 위치를 파악하기 쉽다.

Bean 수동 등록 방법

  1. Bean으로 등록하고자 하는 객체를 반환하는 메서드를 선언하고 @Bean 설정
  2. 해당 메서드가 속한 클래스에 @Configuration을 설정
  3. Spring 서버가 실행 될때, Srping IoC 컨테이너에 Bean으로 등록

수동 등록 하려는 Bean이 같은 타입으로 2개라면?

⚡ 인터페이스를 2개의 객체로 구현하고 Bean으로 등록하면 인터페이스 타입의 2가지 객체가 Bean으로 의존성을 주입받아야하는데, 이를 구별하기 위한 방법이 필요하다!

  1. 등록된 Bean 이름 명시하기
    • 사용하는 부분에 필드명을 구현체의 이름으로 선언한다.

@Autowired은 Bean의 일반적으로 타입으로 DI를 지원하지만, 연결되지 않을 경우 Bean Name(필드명)으로 구별한다는 것을 알 수 있다.

  1. @Primary 사용하기
    • 구현체들 중에 하나의 클래스에 @Primary을 추가한다.
    • 같은 타입의 Bean이 여러개 있더라도 @Primary가 설정된 Bean 객체를 주입한다.
  2. @Qualifier(bean) 사용하기
    • 구현체들 중에 하나의 클래스에 @Qualifier(bean)를 설정
    • 주입하고자 하는 필드에도 @Qualifier(bean)를 추가해주면 해당 Bean 객체가 주입된다.

@Primary@Qualifier(bean)가 동시에 적용되면 @Qualifier(bean)의 우선순위가 더 높다.

인증과 인가

인증(Authentication)

  • 인증은 해당 유저가 실제 유저인지 인증하는 개념이고, 실제 그 유저가 맞는지 확인하는 절차이다.

인가(Authorization)

  • 인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가(권한)를 확인하는 개념이다.

⚡ 회원을 로그인하는 과정은 "인증"이고, 회원과 비회원에 따라 접근할 수 있는 권한을 받는 것이 "인가"이다.

인증의 방식 2가지 ⬇

  • 쿠키-세션 방식의 인증
  • JWT 기반 인증

쿠키와 세션

쿠키-세션

  • 쿠키와 세션 모두 HTTP에 상태 정보를 유지하기 위해 사용되고, 쿠키와 세션을 통해 서버는 클라이언트를 인증 및 인가 할 수 있게 된다.

쿠키

  • 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일이다.
  • 구성요소 : Name(이름), Value(값), Domin(도메인), Path(경로), Expires(만료기한)

세션

  • 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용된다.
  • 서버에 클라이언트 별로 유일한 세션ID를 부여한 후, 클라이언트 별 필요한 정보를 서버에 저장한다.
  • 서버에 생성한 세션ID는 클라이언트의 쿠키값(세션 쿠키)으로 저장되어 클라이언트 식별에 사용된다.

쿠키와 세션의 차이

profile
개발하는 미어캣

0개의 댓글