@EnableWebSecurity@EnableWebSecurity 어노테이션은 Spring Security 프레임워크에서 제공하는 어노테이션으로, 웹 보안 기능을 활성화하는 데 사용됩니다.WebSecurityConfigurerAdapter 구현 활성화@EnableWebSecurity 어노테이션을 사용하면 WebSecurityConfigurerAdapter 인터페이스를 구현한 클래스가 자동으로 감지됩니다. WebSecurityConfigurerAdapter는 웹 보안 구성을 정의하는 데 사용되는 추상 클래스입니다.스프링 시큐리티 필터 체인 활성화@EnableWebSecurity 어노테이션을 사용하면 스프링 시큐리티 필터 체인이 자동으로 활성화됩니다.이 필터 체인은 웹 요청에 대한 보안 처리를 수행합니다.스..
HttpSecurityHttpSecurity는 Spring Security 프레임워크에서 제공하는 클래스로, HTTP 보안 구성을 정의하는 데 사용됩니다. 이 클래스를 통해 웹 애플리케이션의 보안 정책을 설정할 수 있습니다.URL 기반 보안 설정: HttpSecurity를 사용하여 특정 URL 패턴에 대한 접근 권한을 설정할 수 있습니다. 예를 들어, /admin/** 경로에 대해서는 ADMIN 권한이 필요하도록 설정할 수 있습니다.인증 및 권한 설정: HttpSecurity를 통해 사용자 인증 방식과 권한 부여 정책을 구성할 수 있습니다. 예를 들어, 폼 기반 인증, OAuth2, JWT 토큰 기반 인증 등 다양한 인증 방식을 설정할 수 있습니다.CSRF 보호, XSS 보호 등보안 기능 설정: Http..
Create (저장)save(entity): 새로운 entity를 저장하거나 기존 entity를 업데이트합니다.Read (조회)findById(id): 주어진 ID로 entity를 조회합니다.getOne(id): 주어진 ID로 entity를 지연 로딩(lazy loading)합니다.findAll(): 모든 entity를 조회합니다findAll(pageable): 페이징 처리된 entity 목록을 조회합니다.findAllById(iterable): 주어진 ID 목록으로 entity 목록을 조회합니다.existsById(id): 주어진 ID의 entity가 존재하는지 확인합니다.Update (수정)save(entity): 새로운 entity를 저장하거나 기존 entity를 업데이트합니다.Delete (삭제)..
SortSort는 엔티티 데이터를 정렬하는 기능입니다. Sort를 사용하면 엔티티를 특정 기준으로 정렬하여 반환할 수 있습니다.Sort를 사용하는 이유데이터 정렬: 엔티티 데이터를 특정 기준(예: 이름, 가격, 등록일 등)으로 정렬하여 반환가능사용자 경험 향상: 정렬된 데이터를 사용자에게 제공데이터 처리 효율성: 정렬된 데이터를 사용하면 추가적인 정렬 작업 없이 데이터를 처리import org.springframework.data.domain.Sort;import org.springframework.data.jpa.repository.JpaRepository;// 엔티티 클래스@Entitypublic class Product { @Id @GeneratedValue(strategy = Gener..
JPA는 자바에서 사용하는 ORM 기술 표준으로 자바 애플리케이션과 JDBC 사이에 동작을 하고, 자바 인터페이스로 정의가 되어있습니다. 여기서 ORM은 객체의 관계 매핑을 뜻하는데, 말그대로 객체와 관계형 데이터베이스의 데이터를 매핑하는 기술로써 그 사이에서 매핑을 하는 역할을 합니다. 사용하는 이유로는 기존 개발은 SQL중심의 개발이었으나 JPA를 통해서 객체 중심으로 애플리케이션 개발이 가능해졌다는 것입니다. 또한 엔티티 클래스 필드가 변경되면 모든 SQL을 수정하여야 했으나 JPA에서는 쿼리를 직접적으로 작성하지 않기 때문에 필드의 변경이 있더라도 매핑 정보만 잘 연결한다면 SQL문을 자동으로 작성해줍니다. 더해서 CRUD에 있어서 생선성 또한 높아지고, 상속, 연관관계, 객체나 비교 등의 설계차..
WebMvcConfigurerSpring MVC 애플리케이션의 구성을 커스터마이징하기 위해 사용되는 인터페이스입니다. 이 인터페이스를 구현하여 다양한 Spring MVC 설정을 오버라이드할 수 있습니다.사용 이유URL 매핑 설정: 애플리케이션의 URL 매핑을 커스터마이징할 수 있습니다.뷰 리졸버 설정: 뷰 리졸버의 설정을 변경할 수 있습니다.리소스 핸들러 설정: 정적 리소스(CSS, JavaScript, 이미지 등)의 처리 방식을 변경할 수 있습니다.인터셉터 등록: 요청 전/후에 실행될 인터셉터를 등록할 수 있습니다.포맷터 및 컨버터 등록: 데이터 포맷팅 및 변환을 위한 포맷터와 컨버터를 등록할 수 있습니다.import org.springframework.context.annotation.Configur..
@Bean@Bean어노테이션은 Spring 프레임워크에서 사용되는 어노테이션으로, 메서드 레벨에 적용되어 해당 메서드가 반환하는 객체를 Spring 컨테이너에 등록하는 역할을 합니다.이를 통해 개발자가 직접 객체를 생성하고 관리할 수 있습니다.why의존성 관리: 애플리케이션에 필요한 객체를 직접 생성하고 관리할 수 있어, 객체 간의 의존성을 효과적으로 관리할 수 있습니다.유연성: 객체 생성 방식을 직접 제어할 수 있어, 복잡한 객체 생성 로직을 캡슐화할 수 있습니다.테스트 용이성: 테스트 시 @Bean 메서드를 오버라이드하여 mock 객체를 주입할 수 있어, 단위 테스트를 더욱 쉽게 작성할 수 있습니다.@Configurationpublic class AppConfig { // 이 클래스는 Sprin..
OAuthOAuth(Open Authorization)는 애플리케이션이 사용자의 비밀번호 없이도 제한된 접근 권한을 얻을 수 있게 해주는 인증 프로토콜입니다.why보안: 사용자의 비밀번호를 공유하지 않고도 애플리케이션에 접근할 수 있도록 합니다. 이를 통해 사용자의 계정 정보가 노출되는 것을 방지할 수 있습니다.편의성: 사용자는 한 번의 인증으로 여러 애플리케이션에 접근할 수 있습니다. 이를 통해 사용자 경험이 향상됩니다.범위 제한: 애플리케이션은 사용자의 승인을 얻어 필요한 최소한의 권한만 요청할 수 있습니다.// OAuth2 클라이언트 구성@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAd..
@ResponseBody@ResponseBody 어노테이션은 Spring MVC에서 사용되는 어노테이션으로, 메서드의 반환 값을 HTTP 응답 본문으로 직접 작성하도록 지정합니다.일반적으로 Spring MVC 컨트롤러 메서드는 View 이름을 반환하여 해당 View를 렌더링하게 됩니다.하지만 @ResponseBody 어노테이션을 사용하면 메서드의 반환 값 자체가 HTTP 응답 본문이 됩니다.이 어노테이션은 주로 RESTful API를 구현할 때 사용됩니다. RESTful API는 클라이언트와 서버 간의 데이터 교환을 위해 HTTP 프로토콜을 사용하며, 응답 본문에 직접 데이터를 담아 보내는 것이 일반적입니다.@RestController // 이 클래스가 REST API 컨트롤러임을 나타내는 어노테이션@R..