Annotation은 Java에서 코드에 추가 정보를 제공하는 메타데이터다. 이는 컴파일 또는 실행 시에 해석될 수 있다.
예시로:
기본 Java Annotations: @Override는 메서드가 부모 클래스의 메서드를 오버라이드한다는 것을 나타낸다.
Spring Framework: @Autowired는 의존성 주입을 위해 사용된다.
JPA: @Entity는 클래스가 데이터베이스 엔터티임을 표시한다.
JUnit: @Test는 메서드가 테스트 메서드임을 나타낸다.
Annotations은 코드의 동작에 직접적인 영향을 주진 않지만, 해당 코드의 사용법 및 동작에 대한 정보를 제공한다.
Spring Security는 애플리케이션의 보안 요구사항을 위한 프레임워크다.
주요 구성요소로는 AuthenticationManager, SecurityContextHolder, 필터 체인, UserDetails가 있다.
Spring Security와 JWT를 조합하면, 상태를 유지하지 않는 API 보안을 효과적으로 구현할 수 있다.