(통합) 스프링부트 패키지 간단설명

KIM YONG GU·2023년 10월 18일

SpringBoot

목록 보기
9/17

jakarta

"Jakarta"는 Java Enterprise Edition (Java EE) 플랫폼의 업데이트와 현대화된 버전을 개발하기 위한 자바 커뮤니티의 노력을 나타냅니다. 기존의 Java EE는 오라클(Oracle)에 의해 관리되었지만, Jakarta EE는 자바 커뮤니티에 의해 관리되고 발전하고 있는 업데이트된 자바 엔터프라이즈 플랫폼입니다.

주요 특징과 정보

  1. 오픈 소스: Jakarta EE는 오픈 소스 프로젝트로서, 다양한 기업 및 개발자 커뮤니티가 참여하고 기여합니다. 이는 플랫폼의 투명성과 개방성을 보장합니다.

  2. 자바 엔터프라이즈 플랫폼: Jakarta EE는 대규모 및 기업급 애플리케이션을 개발하기 위한 자바 플랫폼입니다. 이를 사용하면 분산 시스템, 웹 애플리케이션, 서비스 지향 아키텍처(SOA) 등을 구축할 수 있습니다.

  3. 표준화: Jakarta EE는 자바 엔터프라이즈 애플리케이션 개발을 위한 다양한 API 및 스펙을 제공하며, 이를 통해 애플리케이션의 이식성과 표준 준수를 보장합니다.

  4. 이식성: Jakarta EE를 사용하면 애플리케이션을 다양한 자바 엔터프라이즈 서버에 배포할 수 있으며, 이식성을 유지할 수 있습니다.

  5. 관리: Jakarta EE는 자바 기반 애플리케이션의 관리 및 운영을 지원하기 위한 기능을 포함합니다.

Jakarta EE는 Java EE의 후속 버전으로, 자바 엔터프라이즈 애플리케이션 개발을 위한 중요한 플랫폼입니다. Jakarta EE는 현대적인 웹 애플리케이션 및 마이크로서비스 아키텍처를 위한 API 및 도구를 제공하며, 자바 기반 엔터프라이즈 솔루션의 발전을 지속적으로 지원하고 있습니다.

org.springframework.stereotype

org.springframework.stereotype 패키지는 Spring Framework에서 주석(Annotation)을 정의하는 패키지입니다. 이 패키지에는 다양한 주석 유형이 포함되어 있으며, 주로 Spring 애플리케이션 개발 시에 사용됩니다. 아래는 몇 가지 주요한 주석 유형의 예시입니다:

@Component

Spring 컨테이너에 해당 클래스를 빈(Bean)으로 등록합니다.

@Service

비즈니스 로직을 수행하는 서비스 클래스에 사용되며, @Component의 특수한 형태입니다.

@Repository

데이터 액세스와 관련된 클래스에 사용되며, 주로 데이터베이스 액세스 관련 클래스에 적용됩니다.

@Controller

웹 애플리케이션에서 컨트롤러 역할을 하는 클래스에 사용됩니다.

@RestController

RESTful 웹 서비스를 개발할 때 컨트롤러에 적용하며, JSON 응답을 생성하는 데 사용됩니다.

@Configuration

스프링 Bean 구성을 정의하는 클래스에 사용되며, XML 설정 대신 Java 클래스를 사용할 때 사용됩니다.

@Scope

빈(Bean)의 범위를 정의할 때 사용됩니다. 예를 들어, @Scope("prototype")는 프로토타입 범위의 빈을 정의합니다.

@Autowired

의존성 주입(Dependency Injection)을 수행하기 위해 필드, 생성자 또는 메서드 매개변수에 사용됩니다.

이러한 주석들은 Spring Framework의 다양한 기능을 활용하고 스프링 애플리케이션의 구조를 정의하는 데 사용됩니다.

org.springframework.web.bind.annotation

org.springframework.web.bind.annotation는 Spring Framework에서 웹 애플리케이션 개발과 관련된 다양한 주석(Annotation)을 정의하는 패키지입니다. 이 패키지의 주석을 사용하면 컨트롤러 클래스와 핸들러 메서드를 정의하고 웹 요청과 응답을 처리할 수 있습니다. 여기에는 주요한 주석 유형의 예시가 포함되어 있습니다:

@Controller

클래스에 이 주석을 붙여 해당 클래스를 웹 애플리케이션의 컨트롤러로 지정합니다.

@RestController

JSON 또는 XML과 같은 데이터 형식의 RESTful 웹 서비스를 제공하는 컨트롤러 클래스에 사용됩니다.

@RequestMapping

핸들러 메서드에 이 주석을 적용하여 특정 URL 경로 및 HTTP 요청 메서드와 메서드를 매핑합니다. 예를 들어, @RequestMapping("/example")은 "/example" 경로의 HTTP GET 요청을 처리합니다.

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping

HTTP GET, POST, PUT, DELETE 요청을 처리하기 위한 단축형 주석입니다. 예를 들어, @GetMapping("/resource")은 HTTP GET 요청을 처리합니다.

@PathVariable

핸들러 메서드의 경로 변수를 추출하는 데 사용되며, 경로 변수 값을 메서드 매개변수로 주입할 수 있습니다.

@RequestParam

HTTP 요청 매개변수를 핸들러 메서드의 매개변수로 주입하기 위해 사용됩니다.

@RequestBody

HTTP 요청 본문을 자바 객체로 변환하는 데 사용됩니다. 주로 JSON 요청 본문을 객체로 매핑하는 데 사용됩니다.

@ResponseBody

핸들러 메서드의 반환 값을 HTTP 응답 본문으로 직렬화하여 클라이언트에 반환합니다.

@ModelAttribute

모델 속성(attribute)을 설정하기 위해 사용됩니다. 주로 폼 데이터를 모델 객체로 바인딩할 때 사용됩니다.

@SessionAttribute

세션에 저장된 모델 속성을 처리하기 위해 사용됩니다.

이러한 주석은 Spring Boot 및 Spring MVC 프레임워크를 사용하여 웹 애플리케이션을 개발할 때 사용되며, 요청 처리, 데이터 전달, 뷰 렌더링 및 RESTful 서비스를 구현하는 데 도움이 됩니다.

jakarta.persistence.*

jakarta.persistence 패키지의 주석)은 Java Persistence API (JPA)를 사용하여 엔티티 클래스를 정의하는 데 사용됩니다. JPA는 관계형 데이터베이스와 상호작용하는 자바 애플리케이션을 개발하는 데 사용되는 자바 ORM(객체 관계 매핑) 기술의 일부입니다. 여기에서 사용된 각 주석의 의미를 설명해 드리겠습니다:

@Entity

  • @Entity 주석은 해당 클래스가 JPA 엔티티 클래스임을 나타냅니다. 엔티티 클래스는 데이터베이스 테이블과 매핑되는 자바 클래스입니다. 데이터베이스에서 엔티티의 인스턴스를 행으로 저장하거나 가져오기 위해 사용됩니다.

@Id

  • @Id 주석은 해당 필드가 엔티티의 주요 식별자(primary key) 역할을 한다는 것을 나타냅니다. 각 엔티티는 반드시 하나 이상의 주요 식별자를 가져야 합니다.

@GeneratedValue

  • @GeneratedValue 주석은 주요 식별자의 값을 자동으로 생성하는 방법을 지정합니다. strategy 속성을 사용하여 생성 전략을 선택할 수 있으며, GenerationType.IDENTITY와 같은 값이 사용될 수 있습니다.

  • GenerationType.IDENTITY: 데이터베이스에서 자동으로 키를 생성하는 방식을 사용합니다.

@Column

  • @Column 주석은 엔티티 클래스의 필드와 데이터베이스 테이블의 열 간의 매핑을 정의합니다.

  • name 속성을 사용하여 데이터베이스에서 열의 이름을 지정하고, nullable 및 length와 같은 다양한 속성을 사용하여 열의 속성을 정의할 수 있습니다.

이러한 JPA 주석을 사용하여 엔티티 클래스를 정의하면, JPA 구현체(예: Hibernate)는 해당 클래스를 사용하여 데이터베이스와 상호작용할 수 있게 됩니다. 엔티티 클래스의 인스턴스를 데이터베이스에 저장하고 검색하는 작업은 JPA를 사용하여 상당히 간단하게 처리할 수 있습니다.

org.springframework.data.jpa.repository.JpaRepository

org.springframework.data.jpa.repository.JpaRepository는 Spring Data JPA 프레임워크에서 제공하는 인터페이스 중 하나입니다. Spring Data JPA는 JPA(Java Persistence API)를 사용하여 데이터베이스와 상호작용하는 Spring 기반의 데이터 액세스 계층을 만들기 위한 강력한 도구를 제공합니다. JpaRepository는 Spring Data JPA를 사용하여 데이터베이스와 상호작용하는 데 도움을 주는 일반적인 레파지토리(Repository) 인터페이스입니다.

JpaRepository 인터페이스의 주요 역할과 기능은 다음과 같습니다:

  • CRUD 작업 지원: JpaRepository는 엔티티(모델) 클래스와 연결된 CRUD(Create, Read, Update, Delete) 작업을 지원합니다. 이를 통해 데이터베이스의 데이터를 만들고 읽고 갱신하며 삭제할 수 있습니다.

  • 기본 쿼리 메서드: Spring Data JPA는 메서드 이름에 따라 자동으로 쿼리를 생성하고 실행할 수 있도록 지원합니다. 이를 통해 간단한 쿼리 메서드를 정의하고 사용할 수 있습니다.

  • 페이징 및 정렬: JpaRepository는 데이터를 페이징 및 정렬하여 반환할 수 있는 메서드를 제공합니다.

  • 사용자 정의 쿼리: 복잡한 데이터베이스 쿼리가 필요한 경우, @Query 어노테이션을 사용하여 사용자 정의 쿼리를 정의하고 실행할 수 있습니다.

  • 스프링 데이터 JPA 기능 지원: Spring Data JPA의 기능 중 하나로, JpaRepository를 확장하여 사용자 정의 레포지토리 인터페이스를 만들 수 있습니다.

  • 도메인 모델과 연동: JpaRepository는 JPA와 통합되어 엔티티와 관련된 작업을 수행할 때 사용됩니다. 따라서 엔티티 클래스와 연결하여 데이터베이스와 상호작용할 수 있습니다.

JpaRepository는 Spring Data JPA에서 일반적으로 사용되며, 개발자가 데이터 액세스 계층을 효과적으로 구축하고 데이터베이스와의 상호작용을 단순화하는 데 도움을 줍니다. 이를 통해 데이터 액세스 코드를 줄이고 생산성을 향상시킬 수 있습니다.
몇 가지 일반적인 Spring Data JPA 어노테이션은 다음과 같습니다:

@Repository

레포지토리 인터페이스를 스프링 빈으로 등록하기 위한 어노테이션입니다. 이 어노테이션을 레포지토리 인터페이스에 적용하여 스프링 애플리케이션 컨텍스트에서 레포지토리 빈으로 등록합니다.

@Query

사용자 정의 쿼리 메서드를 정의할 때 사용되며, JPQL(Java Persistence Query Language) 또는 네이티브 SQL 쿼리를 지정할 수 있습니다.

@Param

메서드 매개변수와 함께 사용하여 쿼리 메서드의 매개변수를 이름으로 연결할 수 있습니다.

@EntityGraph

지연로딩 및 엔티티 그래프를 제어하는 데 사용됩니다. 특히 엔티티 그래프를 사용하여 특정 엔티티와 관련된 다른 엔티티를 로드할 수 있습니다.

@Modifying

수정 쿼리를 실행할 때 사용됩니다. 해당 메서드는 UPDATE 또는 DELETE 쿼리를 실행하고 영향을 받은 행 수를 반환합니다.

이러한 어노테이션은 Spring Data JPA를 통해 데이터베이스와 상호작용하는 데 사용되며, 사용자 정의 레포지토리 메서드 및 쿼리 메서드를 정의하고 제어하기 위해 활용됩니다.

JpaRepository의 메서드(위는 애노테이션이었고, 여기는 메서드임)

Spring Data JPA의 JpaRepository 인터페이스는 여러 데이터베이스 작업을 위한 기본 메서드를 제공합니다. 아래에는 일반적으로 사용되는 몇 가지 JpaRepository의 기본 메서드와 그 기능을 나열하겠습니다:

save(S entity)

엔티티를 저장하거나 업데이트합니다. 새로운 엔티티를 저장하거나, 기존 엔티티를 업데이트할 때 사용합니다.

findById(ID id)

주어진 ID에 해당하는 엔티티를 검색합니다.

findAll()

모든 엔티티를 검색합니다. 데이터베이스 테이블의 모든 레코드를 조회합니다.

count()

저장된 엔티티의 수를 반환합니다.

deleteById(ID id)

주어진 ID에 해당하는 엔티티를 삭제합니다.

deleteAll()

모든 엔티티를 삭제합니다.

findBy<Property>

특정 엔티티 속성(필드) 값을 기반으로 데이터를 검색합니다. 는 검색하려는 속성의 이름이며, 예를 들어 findByTitle(String title)는 title 속성을 기반으로 데이터를 검색합니다. 이 메서드를 통해 동적 검색을 수행할 수 있습니다.

findBy<Property>And<Property>

두 가지 속성에 대한 조합으로 데이터를 검색합니다. 예를 들어 findByTitleAndContent(String title, String content)는 title 및 content 속성을 모두 기반으로 데이터를 검색합니다.

findBy<Property>Like(String propertyValue)

속성 값의 부분 일치를 허용하는 검색을 수행합니다. 문자열 속성의 경우 주로 사용됩니다.

findAll(Sort sort)

정렬된 순서로 모든 엔티티를 검색합니다. Sort 객체를 사용하여 정렬 기준을 지정할 수 있습니다.

findAll(Pageable pageable)

페이징 및 정렬된 결과를 반환합니다. Pageable 객체를 사용하여 페이지 번호, 페이지 크기 및 정렬 기준을 지정할 수 있습니다.

nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect

nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect는 Thymeleaf 템플릿 엔진과 함께 사용되는 Thymeleaf 레이아웃(Dialect) 확장 라이브러리입니다. 이 라이브러리를 사용하면 Thymeleaf 템플릿에서 레이아웃을 효과적으로 관리하고 확장할 수 있습니다.

thymeleaf-layout-dialect의 주요 특징과 기능은 다음과 같습니다:

  • 템플릿 레이아웃: 이 라이브러리를 사용하면 웹 애플리케이션의 레이아웃을 템플릿으로 정의하고, 이를 다른 페이지 템플릿에 포함시킬 수 있습니다. 이를 통해 웹 페이지의 공통 구조(헤더, 푸터, 사이드바 등)를 쉽게 관리할 수 있습니다.

  • 템플릿 재사용: 레이아웃 템플릿을 정의하고 다른 페이지 템플릿에서 재사용할 수 있습니다. 이로써 코드 중복을 줄이고 템플릿을 효과적으로 구성할 수 있습니다.

  • 타일(Tile)과 유사한 기능: thymeleaf-layout-dialect는 Apache Tiles와 유사한 레이아웃 관리 기능을 제공하지만 Thymeleaf와 완전히 통합됩니다.

  • 템플릿 섹션(Section) 관리: 페이지 템플릿에서 레이아웃 템플릿의 특정 섹션을 재정의하거나 추가할 수 있습니다. 이를 통해 동적으로 페이지 내용을 구성할 수 있습니다.

  • 자바 코드 없이 설정 가능: 대부분의 레이아웃 구성은 Thymeleaf 템플릿 내에서 HTML 태그와 속성을 사용하여 정의됩니다. 따라서 자바 코드를 작성할 필요가 없습니다.

nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect 라이브러리를 사용하면 Thymeleaf를 기반으로 하는 웹 애플리케이션에서 템플릿 레이아웃을 쉽게 관리하고 확장할 수 있으며, 페이지의 일관성을 유지하고 코드 중복을 줄일 수 있습니다. Thymeleaf와 함께 사용할 때 웹 애플리케이션의 프론트엔드를 개발하는 데 유용한 도구 중 하나입니다.

org.springframework.boot:spring-boot-starter-validation

https://beanvalidation.org/

org.springframework.boot:spring-boot-starter-validation은 스프링 부트 프로젝트의 의존성 관리 시스템(라이브러리 관리 시스템)에서 제공하는 스타터(starter) 의존성 중 하나입니다. 이 스타터 의존성은 데이터 유효성 검사(Validation) 관련 기능을 스프링 부트 애플리케이션에 포함시키는 데 사용됩니다.

  • spring-boot-starter-validation 스타터를 프로젝트에 추가하면 다음과 같은 주요 기능을 포함합니다:

  • 데이터 유효성 검사: 스프링 부트는 데이터 유효성 검사를 위한 기능을 제공합니다. 이 스타터를 추가하면 데이터 모델에 대한 유효성 검사를 수행할 수 있으며, 주로 자바 Bean Validation (JSR-380) 스펙에 따라 어노테이션을 사용하여 데이터 유효성을 정의하고 검사합니다. 예를 들어, @NotNull, @Size, @Pattern 등의 어노테이션을 사용하여 필드의 제약 조건을 지정할 수 있습니다.

  • Hibernate Validator: 스프링 부트의 spring-boot-starter-validation 스타터는 Hibernate Validator를 포함하여 제공합니다. Hibernate Validator는 자바 Bean Validation 스펙을 구현한 라이브러리로, 데이터 모델의 유효성 검사를 수행하는 데 사용됩니다.

Validation Auto-Configuration: 스프링 부트는 spring-boot-starter-validation 스타터를 감지하고 자동 구성을 제공하여 유효성 검사를 활성화합니다. 이것은 설정을 최소화하고 빠르게 시작할 수 있도록 도와줍니다.

몇 가지 주요 어노테이션은 다음과 같습니다:

@NotNull

해당 필드가 null이 아니어야 함을 나타냅니다.

@Size(min, max)

해당 필드의 크기가 주어진 범위 내에 있어야 함을 나타냅니다.

@Max

최대값

@Min

최소값

@NotEmpty

해당 문자열, 컬렉션 또는 배열이 null이 아니고 비어 있지 않아야 함을 나타냅니다.

@NotBlank

해당 문자열이 null이 아니고 공백 문자를 제외한 문자가 포함되어야 함을 나타냅니다.

@Email

해당 문자열이 이메일 주소의 형식을 따라야 함을 나타냅니다.

@Pattern(regex)

해당 문자열이 주어진 정규식 패턴과 일치해야 함을 나타냅니다.

@Past

과거 날짜만 가능

@Future

미래 날짜만 가능

@FutureOrPresent

미래 또는 오늘날짜만 가능

이것들은 일부 기본 어노테이션입니다. 스프링 부트에서는 또한 커스텀 유효성 검사 어노테이션을 만들어 사용할 수 있으며, @Valid 어노테이션을 사용하여 유효성 검사를 수행할 수 있습니다. @Valid 어노테이션을 사용하면 해당 객체의 필드에 지정된 유효성 검사 어노테이션을 검사하고, 유효성 검사 오류가 발견되면 예외가 발생합니다.

이러한 어노테이션들을 사용하여 스프링 부트 애플리케이션에서 데이터 모델의 유효성을 검사하고, 사용자가 올바른 데이터를 입력하도록 보장할 수 있습니다.

org.springframework.data.domain

org.springframework.data.domain 패키지는 스프링 데이터 프로젝트에서 제공하는 도메인 클래스와 관련된 기능을 포함하는 패키지입니다. 이 패키지는 주로 데이터베이스와 상호 작용하는 데 사용됩니다. 주요 클래스와 기능에 대한 간략한 설명은 다음과 같습니다:

  • Pageable: 페이지네이션 및 정렬에 사용되는 인터페이스로, 페이지 번호, 페이지 크기 및 정렬 속성을 정의합니다. 스프링 데이터에서 데이터베이스에서 결과를 페이지로 가져올 때 사용됩니다.

  • Page: 페이지 정보와 페이지에 포함된 엔티티(데이터) 목록을 나타내는 인터페이스입니다. 데이터를 페이지별로 나누고 페이지 관련 정보(현재 페이지, 총 페이지 수 등)를 제공합니다.

  • Sort: 정렬 속성을 나타내는 클래스로, 엔티티의 정렬 순서를 지정할 수 있습니다. 주로 Pageable과 함께 사용하여 결과를 정렬하는 데 활용됩니다.

  • Example: 동적 쿼리 생성을 위한 인터페이스로, 조건에 따라 쿼리를 동적으로 생성하고 데이터베이스에서 데이터를 검색하는 데 사용됩니다.

  • Slice: Page와 유사하지만 페이지의 전체 내용을 가져오지 않고 다음 페이지로 이동하기 위한 정보만을 제공하는 인터페이스입니다. 이것은 일부 데이터를 한 번에 가져오는 데 유용합니다.

이러한 클래스 및 인터페이스는 스프링 데이터 JPA 및 다른 스프링 데이터 모듈과 함께 사용되어 데이터베이스에서 데이터를 쉽게 검색, 페이징 및 정렬하는 데 도움을 줍니다. 이를 통해 개발자는 데이터 액세스 계층을 효과적으로 구축할 수 있으며 반복적인 작업을 간소화할 수 있습니다.

org.springframework.boot:spring-boot-starter-security

org.springframework.boot:spring-boot-starter-security는 스프링 부트 애플리케이션에서 보안 기능을 사용하기 위한 스프링 부트 스타터의 하나입니다. 이 스타터는 스프링 시큐리티와 관련된 종속성을 자동으로 추가하고 설정을 제공하여 보안 설정을 간단하게 구성할 수 있도록 도와줍니다.

주요 기능 및 역할:

  • 사용자 인증 및 권한 관리: 스프링 시큐리티를 사용하여 사용자의 인증 및 권한 관리를 구현할 수 있습니다. 사용자 인증에 대한 구성 및 사용자 및 역할 정보를 저장하는 방식을 설정할 수 있습니다.

  • 보안 필터: 스프링 부트 스타터 시큐리티는 애플리케이션에 다양한 보안 필터를 자동으로 설정하며, 웹 요청에 대한 권한 확인, CSRF(Cross-Site Request Forgery) 방지, 세션 관리 및 기타 보안 관련 작업을 처리합니다.

  • 사용자 정의 보안 설정: 필요에 따라 스프링 시큐리티 설정을 변경하고 사용자 지정 규칙을 적용할 수 있습니다. 이를 통해 애플리케이션의 특정 요구 사항에 맞게 보안을 조정할 수 있습니다.

  • 손쉬운 구성: 스프링 부트 스타터 시큐리티는 기본적인 보안 구성을 제공하여 개발자가 빠르게 시작할 수 있도록 도와줍니다. 필요한 경우 구성을 커스터마이즈할 수 있습니다.

이 스타터를 사용하면 스프링 부트 애플리케이션에서 보안 관련 작업을 쉽게 처리할 수 있으며, 웹 애플리케이션의 사용자 인증 및 권한 부여에 필요한 기능을 간단하게 구현할 수 있습니다.

org.thymeleaf.extras:thymeleaf-extras-springsecurity

org.thymeleaf.extras:thymeleaf-extras-springsecurity는 Thymeleaf와 Spring Security를 함께 사용할 때 도움을 주는 유틸리티 라이브러리입니다. 이 라이브러리는 Spring Security와 Thymeleaf를 통합하여 웹 애플리케이션에서 사용자 권한 및 보안 관련 작업을 수행할 때 유용합니다.

주요 기능과 사용 사례:

  • 보안 관련 Thymeleaf 태그: thymeleaf-extras-springsecurity는 다양한 보안 관련 Thymeleaf 태그를 제공합니다. 예를 들어, sec:authorize, sec:authorize-url, sec:authentication, sec:authorize-acl, sec:authorize-object 등의 태그를 사용하여 사용자 권한과 보안 관련 정보를 템플릿에서 쉽게 다룰 수 있습니다.

  • 태그 라이브러리: thymeleaf-extras-springsecurity는 커스텀 Thymeleaf 태그 라이브러리로 사용되며, 이러한 태그를 사용하면 웹 페이지에서 사용자 권한을 검사하고, 특정 권한에 따라 페이지의 일부 내용을 조건부로 표시할 수 있습니다.

  • 보안 관련 속성: 템플릿에서 보안 관련 속성을 사용하여 사용자의 권한 및 보안 관련 정보를 접근할 수 있습니다. 예를 들어, ${#authorization.expression('hasRole(''ROLE_USER'')')}를 사용하여 사용자가 'ROLE_USER' 권한을 가지고 있는지 검사할 수 있습니다.

  • 인증 및 권한 정보 접근: 템플릿에서 현재 사용자의 인증 정보와 권한을 쉽게 접근할 수 있습니다. ${#authentication.name}를 사용하여 현재 사용자의 이름을 얻을 수 있으며, ${#authentication.principal.authorities}를 통해 현재 사용자의 권한 목록을 가져올 수 있습니다.

thymeleaf-extras-springsecurity는 Thymeleaf와 Spring Security를 연동할 때 사용자 인터페이스의 보안 요소를 쉽게 처리하기 위한 강력한 도구입니다. Thymeleaf와 Spring Security를 함께 사용하는 웹 애플리케이션을 개발하고자 할 때, 이 라이브러리를 활용하여 사용자 권한을 검사하고 페이지 내용을 동적으로 제어할 수 있습니다.

profile
Engineer, Look Beyond the Code.

0개의 댓글