TIL ~ 24.04.05

20240201 TIL

wlsds00_ 2024. 2. 1. 21:12

1. 베이직반 강의 로그인/회원가입 청강

안그래도 로그인과 회원가입 부분이 스스로 모자라다고 느끼던 차에, 베이직반이 관련 강의를 해주신다고 해서 청강하기로 했다. 이론적인 부분을 다시한번 짚고 넘어갈 수 있어 좋았다.

 

Spring Framework

애플리케이션 프레임워크란?

  • 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성된다.
  • 특정 운영체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임이다.
  • 재사용 가능한 수많은 코드를 프레임워크로 통합시켜 표준 코드를 따로 작성하지 않아도 같이 사용된다.
  • 일관된 개발을 지원하고, 경계설정을 강제함으로서 아래의 이익을 얻게 된다.
    • 모듈성 Modularity
    • 재사용성 Reusability
    • 확장성 Extensibility
    • 단순성 Simplicity
    • 유지관리성 Maintainability 
  • bean 만 흐름에 맞게 전달하면 api명세 - 비즈니스 로직 설계 - 데이터베이스 저장 순서대로 작업이 진행된다.

 

Spring Security

 

Spring Security Architecture (링크)

 

Web Security

 

사용자 Custom Filter

 

FilterChainProxy에서 url 기반 Filter 적용하기

 

JWT token

  • JSON 웹 토큰(JSON Web Token, JWT) 이란? :
    • 선택적 서명 및 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준이다.
  • 장점 / 단점
    • 장점
      1. 간편성 및 효율성 : 쉽게 생성 및 전송이 가능, 텍스트 기반이므로 크기가 작아 전송 및 저장에 효율적이다.
      2. 자가 수용(Self-contained) : 필요한 모든 정보를 자체적으로 포함하기에 서버에서 검증에 필요한 모든 정보를 가진다. 이는 서버에서 데이터베이스 조회를 최소화해 성능을 향상시킨다.
      3. 분산 인증(Distributed Authentication) : 분산된 시스템에 적합함, 인증정보를 효과적으로 공유가능.
      4. 표준화 및 널리 지원 : JWT는 표준 규격, 많은 언어 및 프레임워크에서 지원해 다양한 환경에서 가용 가능.
    • 단점
      1. 무결성만을 보장하며, 기밀성은 보장하지 않음 : 내용 자체는 암호화가 되어있지 않아 별도의 암호화 필요.
      2. 크기 증가 : 필요정보를 토큰에 포함하므로 크기가 증가, 요청이 늘어날수록 대역폭 낭비.
      3. 재발급 및 취소 문제 : JWT는 발급 후 유효기간 만료까지 계속 사용, 취소 및 갱신에 추가 매커니즘 필요함.
      4. 보안 취약 : 악의적 사용자가 토큰을 탈취하면 인증 우회 가능, 안전하게 보관/전송하는 매커니즘 필요함.
  • 페이로드는 몇몇 클레임(claim) 표명(assert)을 처리하는 JSON을 보관하고 있다.
  • 토큰은 비공개 시크릿 키 또는 공개/비공개 키를 사용하여 서명된다. 
  • 토큰의 구성
    • Header (토큰의 사용법 지정)
      1. alg : Signature에서 사용하는 알고리즘
      2. typ : 토큰 타입
    • Payload (사용자 정보를 담는다)
      1. sub : 토큰 제목(subject)
      2. aud : 토큰 대상자(audience)
      3. iat : 토큰이 발급된 시각 (issued at)
      4. exp : 토큰의 만료 시각 (expired)
    • Signature (암호화)
    • 헤더와 페이로드의 문자열을 합친 뒤, 헤더에서 선언한 알고리즘과 key를 이용해 암호화한 값이다. 

 

JWT Token process

 

“서버가 상태를 가지지 않는다”가 중요한 장점

참고 링크

Load balancer

토큰 Debugger

 

2. Kotlin 4주차

 

Kotlin 4주차

접근제한자 접근이란 ? : 객체를 이용해서 변수나 메소드를 호출할 수 있는지의 여부. 외부에서 데이터에 무분별하게 접근하는 것을 막기 위해 사용. 내부에서 작업을 위해 사용되는 변수나 부

ds-36500.tistory.com

 

'TIL ~ 24.04.05' 카테고리의 다른 글

20240205 TIL  (0) 2024.02.05
20240202 TIL  (0) 2024.02.02
20240131 TIL  (0) 2024.01.31
20240130 TIL  (0) 2024.01.30
20240129 TIL  (0) 2024.01.29