spring boot 4

스프링 @Controller와 @RestController의 차이점

1. @Controller란?@Controller는 Spring MVC에서 사용되는 애너테이션으로, 주로 HTML 페이지를 반환하는 경우에 사용됩니다. 뷰(View) 템플릿과 함께 사용되며, ModelAndView 또는 Model 객체를 활용하여 데이터를 전달할 수 있습니다.@Controller 예제아래는 @Controller를 사용하여 뷰를 반환하는 예제입니다.@Controllerpublic class HomeController { @GetMapping("/home") public String home(Model model) { model.addAttribute("message", "Welcome to Spring Boot!"); return "home"; /..

Back_End/Spring 2025.03.28

JWT 토큰을 쿠키에 저장하여 인증 처리하기

Spring Boot를 사용하여 로그인 후 JWT 토큰을 발급하고, 발급된 토큰을 쿠키에 저장하는 방법에 대해 알아보겠습니다. JWT 토큰을 쿠키에 저장하면 사용자 인증 정보를 안전하게 관리할 수 있으며, 매번 헤더에 토큰을 추가하지 않고도 인증된 요청을 쉽게 처리할 수 있습니다.1. 로그인 요청 처리 및 JWT 토큰 생성Spring Boot에서 JWT 기반 인증을 구현하려면 사용자가 로그인할 때 아이디와 비밀번호로 인증을 받고, 인증이 완료되면 JWT 토큰을 발급하는 로직을 작성해야 합니다. 이 과정에서 AuthenticationManager와 JwtTokenUtil 클래스를 활용하여 인증 및 토큰 생성을 처리합니다.1-1. 로그인 요청 처리우선 로그인 API를 구현하여 아이디와 비밀번호를 전달받고, ..

@Component와 @Configuration 비교

Spring Framework에서 자주 사용되는 두 가지 중요한 애노테이션이 있습니다: @Component와 @Configuration. 이 두 애노테이션은 모두 빈(Bean)을 정의하는 데 사용되지만, 사용하는 목적과 동작 방식에서 큰 차이가 있습니다. 이 글에서는 각각의 애노테이션에 대해 상세히 알아보고, 어떤 상황에서 어떤 애노테이션을 선택해야 하는지 명확히 이해할 수 있도록 설명하겠습니다.1. @Component란?@Component는 Spring에서 관리되는 일반적인 빈(Bean)을 정의하기 위해 사용됩니다. Spring 컨테이너는 @Component가 붙은 클래스를 스캔하여 자동으로 빈으로 등록합니다.주요 특징:자동 감지:@Component는 클래스 레벨에서 선언되며, Spring의 컴포넌트 ..

Back_End/Spring 2024.12.26

스프링(Spring) 필드 주입과 생성자 주입 – 무엇이 더 나은 선택일까?

Spring에서 의존성을 주입하는 방식은 여러 가지가 있지만, 대표적으로 **필드 주입(Field Injection)**과 **생성자 주입(Constructor Injection)**이 있습니다. 각각의 방식이 어떤 차이를 가지며, 어떤 방식이 더 적절한지 비교해 보겠습니다.1. 필드 주입 (Field Injection)필드 주입은 클래스의 필드에 직접적으로 @Autowired를 사용하여 의존성을 주입하는 방식입니다.🔍 장점✅ 코드가 간결하여 구현이 쉽습니다.✅ 초기에 빠르게 작성할 수 있으며, 학습하기 쉽습니다.⚠️ 단점❌ 테스트가 어렵습니다.필드가 private이므로, 테스트 시 Mockito 등을 활용하여 주입하려면 Reflection이 필요하거나 Spring 컨테이너를 사용해야 합니다.❌ 객체의..

Back_End/Java 2024.12.02