Tech Stack/Spring Boot

[Spring] 20. @ModelAttribute와 DTO 바인딩

[Spring] 20. @ModelAttribute와 DTO 바인딩이전 글에서는 @PathVariable에 대해 살펴봤습니다. @PathVariable은 URL 경로에 포함된 값을 Controller 메서드에서 받을 때 사용하는 어노테이션입니다.이번 글에서는 폼 입력값을 객체로 받는 방법인 @ModelAttribute와 DTO 바인딩에 대해 정리하겠습니다. 게시글 작성, 회원가입, 로그인처럼 입력값이 여러 개 있는 경우에는 값을 하나씩 받는 것보다 DTO로 묶어서 받는 것이 더 깔끔합니다.핵심은 간단합니다. @ModelAttribute는 요청 파라미터 값을 객체에 담아 Controller 메서드에서 사용할 수 있게 해주는 방법입니다.1. DTO로 값을 받는 이유사용자가 게시글 작성 폼에서 제목, 내용, ..

[Spring] 19. @PathVariable이란?

[Spring] 19. @PathVariable이란?이전 글에서는 @RequestParam에 대해 살펴봤습니다. @RequestParam은 URL의 쿼리 문자열이나 폼 데이터로 전달된 값을 Controller 메서드에서 받을 때 사용하는 어노테이션입니다.이번 글에서는 URL 경로 자체에 포함된 값을 받는 @PathVariable에 대해 정리하겠습니다. 게시글 번호, 회원 번호, 상품 번호처럼 특정 자원을 식별하는 값은 URL 경로에 포함해서 표현할 수 있습니다.핵심은 간단합니다. @PathVariable은 URL 경로의 일부 값을 Controller 메서드의 파라미터로 받을 때 사용하는 어노테이션입니다.1. @PathVariable이란?@PathVariable은 URL 경로 안에 들어있는 값을 꺼내서 C..

[Spring] 18. @RequestParam이란?

[Spring] 18. @RequestParam이란?이전 글에서는 @GetMapping과 @PostMapping에 대해 살펴봤습니다. @GetMapping은 주로 화면 조회나 데이터 조회에 사용하고, @PostMapping은 주로 폼 전송이나 데이터 처리에 사용합니다.이번 글에서는 사용자가 보낸 요청 값을 Controller에서 받는 방법인 @RequestParam에 대해 정리하겠습니다. 게시글 상세 번호, 검색어, 페이지 번호처럼 URL이나 폼을 통해 전달되는 값을 받을 때 자주 사용합니다.핵심은 간단합니다. @RequestParam은 요청 파라미터 값을 Controller 메서드의 파라미터로 받아올 때 사용하는 어노테이션입니다.1. 요청 파라미터란?요청 파라미터는 사용자가 서버에 함께 보내는 값입니다..

[Spring] 17. @GetMapping과 @PostMapping

[Spring] 17. @GetMapping과 @PostMapping이전 글에서는 @RequestMapping에 대해 살펴봤습니다. @RequestMapping은 사용자의 URL 요청을 Controller 또는 Controller 메서드와 연결하는 어노테이션입니다.이번 글에서는 Spring MVC에서 가장 자주 사용하는 Mapping 어노테이션인 @GetMapping과 @PostMapping을 정리하겠습니다. 두 어노테이션은 각각 GET 요청과 POST 요청을 처리할 때 사용합니다.핵심은 간단합니다. @GetMapping은 주로 화면 조회나 데이터 조회에 사용하고, @PostMapping은 주로 폼 전송이나 데이터 등록 처리에 사용합니다.1. @GetMapping이란?@GetMapping은 HTTP GE..

[Spring] 16. @RequestMapping이란?

[Spring] 16. @RequestMapping이란?이전 글에서는 DispatcherServlet에 대해 살펴봤습니다. DispatcherServlet은 Spring MVC에서 사용자의 요청을 가장 먼저 받아서 알맞은 Controller로 전달하는 Front Controller 역할을 합니다.이번 글에서는 사용자의 URL 요청을 Controller 메서드와 연결하는 @RequestMapping에 대해 정리하겠습니다. Spring MVC에서 Controller를 작성할 때 가장 기본이 되는 어노테이션입니다.핵심은 간단합니다. @RequestMapping은 특정 URL 요청을 어떤 Controller 또는 메서드가 처리할지 지정하는 어노테이션입니다.1. @RequestMapping이란?@RequestMa..

[Spring] 14. Bean 생명주기

[Spring] 14. Bean 생명주기이전 글에서는 @Configuration과 @Bean에 대해 살펴봤습니다. @Configuration은 Spring 설정 클래스이고, @Bean은 메서드가 반환하는 객체를 Spring Bean으로 직접 등록하는 방법입니다.이번 글에서는 Bean 생명주기에 대해 정리하겠습니다. Spring Bean은 단순히 생성되고 끝나는 것이 아니라, 정해진 흐름에 따라 생성되고, 의존성을 주입받고, 초기화되고, 사용되다가, 애플리케이션이 종료될 때 함께 종료됩니다.Bean 생명주기를 이해하면 Spring이 객체를 어떤 순서로 관리하는지 더 명확하게 알 수 있습니다.1. Bean 생명주기란?Bean 생명주기는 Spring Bean이 생성되고 사라질 때까지의 전체 흐름을 말합니다.B..

[Spring] 13. @Configuration과 @Bean

[Spring] 13. @Configuration과 @Bean이전 글에서는 Singleton Bean과 상태값 주의사항에 대해 살펴봤습니다. Spring Bean은 기본적으로 Singleton으로 관리되며, 하나의 Bean 객체를 여러 곳에서 공유합니다. 그래서 사용자별로 달라지는 값을 Service 필드에 저장하면 위험하다는 점을 정리했습니다.이번 글에서는 Spring Bean을 직접 등록하는 방법인 @Configuration과 @Bean에 대해 알아보겠습니다. 지금까지는 @Controller, @Service, @Repository, @Component를 사용해서 Bean을 자동으로 등록했습니다.하지만 모든 객체를 어노테이션으로 자동 등록할 수 있는 것은 아닙니다. 직접 만든 클래스가 아니거나, 객체..

[Spring] 12. Singleton Bean과 상태값 주의사항

[Spring] 12. Singleton Bean과 상태값 주의사항이전 글에서는 Bean Scope에 대해 살펴봤습니다. Bean Scope는 Spring Bean이 생성되고 유지되는 범위를 의미합니다. Spring Bean은 기본적으로 Singleton Scope로 관리됩니다.이번 글에서는 Singleton Bean을 조금 더 자세히 정리하겠습니다. 특히 Singleton Bean에서 가장 조심해야 하는 상태값 문제를 예제로 살펴보겠습니다.핵심은 간단합니다. Singleton Bean은 하나의 객체를 여러 곳에서 함께 사용하므로, 사용자별로 달라지는 값을 필드에 저장하면 위험합니다.1. Singleton Bean이란?Singleton Bean은 Spring Container 안에서 하나만 생성되어 여러..