[TIL] 20231122

Xtraa·2023년 11월 22일
0

TIL

목록 보기
19/99

공부한 내용

Bean 수동 등록

  • Bean 수동 등록은 언제 사용될까?
  • 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋습니다.
    • 공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가 적이고 공통적인 기능들을 기술 지원 Bean이라 부르고 수동등록 합니다.
    • 비즈니스 로직 Bean 보다는 그 수가 적기 때문에 수동으로 등록하기 부담스럽지 않습니다.
    • 또한 수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다는 장점이 있습니다.

같은 타입의 Bean이 2개라면?

  • 등록된 Bean 이름 명시하기
  • @Primary 사용하기
    • @Primary가 추가되면 같은 타입의 Bean이 여러 개 있더라도 우선 @Primary가 설정된 Bean 객체를 주입 해줍니다.
  • @Qualifier
    • 같은 타입의 Bean들에 Qualifier와 Primary가 동시에 적용되어있다면 Qualifier의 우선순위가 더 높습니다.
    • 하지만 Qualifier는 적용하기 위해서 주입 받고자하는 곳에 해당 Qualifier를 반드시 추가해야합니다.
    • 따라서 같은 타입의 Bean이 여러 개 있을 때는 범용적으로 사용되는 Bean 객체에는 Primary를 설정하고 지엽적으로 사용되는 Bean 객체에는 Qualifier를 사용하는 것이 좋습니다.

인증(Authentication)과 인가(Authorization)

  • 인증은 해당 유저가 실제 유저인지 인증하는 개념입니다.
    • 여러분의 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이, 실제 그 유저가 맞는지를 확인하는 절차 입니다.
  • 인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념입니다. 예를들어 관리자 페이지-관리자 권한 같은 것들을 들 수 있습니다.

“웹 애플리케이션 인증”

  • Http 프로토콜을 이용, 비연결성(Connectionless) 무상태(Stateless)

인증의 방식

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

쿠키와 세션

JWT란

  • JWT(Json Web Token)란 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token 입니다. 즉, 토큰의 한 종류라고 생각하시면 됩니다.
    일반적으로 쿠키 저장소를 사용하여 JWT를 저장합니다.

  • JWT 사용 흐름

    • Client가 username, password로 로그인 성공 시
      • 서버에서 "로그인 정보" -> JWT로 암호화 (Secret Key 사용)
      • 서버에서 직접 쿠키를 생성해 JWT를 담아 Client 응답에 전달
        - 브라우저 쿠키 저장소에 자동으로 JWT 저장됨
    • Client에서 JWT 통해 인증방법
      • 서버에서 API 요청 마다 쿠키에 포함된 JWT를 찾아서 사용
      • Server
        • Client가 전달한 JWT 위조 여부 검증 (Secret Key 사용)
        • JWT 유효기간이 지나지 않았는지 검증
        • 검증 성공 시, JWT -> 에서 사용자 정보를 가져와 확인

하루를 돌아보며, TMI

내일부터 프로젝트 달린다~

profile
https://xtraa.notion.site/Xtraa-ed48ac432d354d01b5bf5b0da5ec94a9?pvs=4

0개의 댓글