용어 정리

wish17·2023년 2월 3일
0

노트

목록 보기
2/4

기업용 엔터프라이즈 시스템

기업용 엔터프라이즈 시스템이란 기업의 업무(기업 자체 조직의 업무, 고객을 위한 서비스 등)를 처리해주는 시스템을 의미

기업용 엔터프라이즈 시스템은 대량의 사용자 요청을 처리해야 하기 때문에 서버의 자원 효율성, 보안성, 시스템의 안전성이나 확장성 등을 충분히 고려해서 시스템을 구축하는 것이 일반적


트랜잭션(Transaction)

데이터를 처리하는 하나의 작업 단위

트랜잭션의 2가지 기능

  • 커밋(commit)

    • 모든 작업이 성공적으로 수행되었을 경우 수행한 작업을 데이터베이스에 반영하는 것
  • 롤백(rollback)

    • 작업이 하나라도 실패한다면 이전에 성공한 작업들을 작업 수행 이전 상태로 되돌리는 것

클라이언트

서버 / 클라이언트 측면에서는 서버 측 기능을 이용하는 쪽을 클라이언트라고 함.
(ex. 웹브라우저)

코드 레벨에서 어떤 클래스의 기능을 사용하는 측 역시 클라이언트라고 부른다.


모듈(Module)

여러가지 기능들을 목적에 맞게 그룹화 하여 묶어 놓은 것

이러한 모듈들은 Java의 패키지 단위로 묶여 있으며, 이 패키지 안에는 관련 기능을 제공하기 위한 클래스들이 포함되어 있다.

일반적으로 모듈은 재사용 가능하도록 라이브러리 형태로 제공되는 경우가 많다.


객체 지향 프로그래밍(Object Oriented Programming:OOP)

  • OOP의 핵심은 공통된 목적을 띈 데이터와 동작을 묶어 하나의 객체로 정의하는 것

  • 객체를 적극적으로 활용함으로써 기능을 재사용할 수 있는 것이 큰 장점

  • 객체를 잘 활용하기 위해선 관심사 분리 (Separation of Concerns, SoC)의 디자인 원칙을 준수해야 함

Signature

객체가 선언하는 모든 연산의 이름, 매개변수로 받아들이는 객체들을 시그니처라고 한다.

Signature가 제공하는 메서드

  • String getName() : 클라이언트가 호출한 메소드의 이름을 반환
  • String toLongString() : 클라리언트가 호출한 메소드의 리턴타입, 이름, 매개변수를 패키지 경로까지 포함해서 반환
  • String toShortString() : 클라이언트가 호출한 메소드 시그니처를 축약한 문자열로 반환

Authentication 객체

Authentication 객체는 Spring Security에서 사용되는 인증 정보를 담고 있는 객체로, 다음과 같은 정보를 포함할 수 있다.

  • Principal: 인증된 사용자의 주체를 나타내는 객체가 있다. 예를 들어, User 객체나 UserDetails 객체가 Principal이 될 수 있다.
  • Credentials: 인증에 사용된 자격증명 정보가 있다. 예를 들어, 패스워드나 인증 토큰이 될 수 있다.
  • Authorities: 인증된 사용자가 가지고 있는 권한 정보를 나타내는 객체가 있다. 예를 들어, ROLE_ADMIN 또는 ROLE_USER와 같은 권한 정보가 Authorities에 포함될 수 있다.
  • Details: 인증과 관련된 추가 정보를 포함하는 객체가 있다. 예를 들어, 인증 시간, IP 주소, User-Agent 정보 등이 Details에 포함될 수 있다.

이러한 정보들은 Authentication 객체를 통해 Spring Security에서 권한 검사 등의 보안 처리를 수행할 때 사용된다.


SecurityContextHolder

SecurityContextHolder는 Spring Security의 핵심 구성 요소 중 하나로, 현재 스레드에 대한 보안 관련 정보를 제공하는 데 사용되는 클래스이다. 이 클래스는 SecurityContext 객체를 담고 있으며, 이 SecurityContext는 인증된 사용자에 대한 정보를 담고 있는 Authentication 객체를 포함하고 있다.

SecurityContextHolder는 주로 다음과 같은 상황에서 사용된다:

  1. 현재 인증된 사용자의 정보에 접근하고 싶을 때
  2. 인증된 사용자의 권한을 확인하거나 변경하고 싶을 때
  3. 인증 과정 중에 발생한 예외를 처리하고 싶을 때

SecurityContextHolder는 기본적으로 ThreadLocal을 사용하여 현재 스레드와 연관된 SecurityContext를 저장한다. 이를 통해 동시에 여러 사용자의 요청을 처리하면서 각 요청에 대한 보안 정보를 별도로 유지할 수 있다.

이 클래스를 사용하면 현재 인증된 사용자의 정보를 얻거나 변경할 수 있으며, 필요한 경우 다른 보안 관련 작업을 수행할 수 있다. 이를 통해 Spring Security가 제공하는 다양한 보안 기능을 효과적으로 활용할 수 있다.


0개의 댓글