본문 바로가기

전체 글112

[Spring] 컨트롤러의 리턴 타입 목차 String 뷰 페이지 이름으로서, ViewResolver에 의해 해석됩니다. 프로젝트를 생성하면 기본적으로 servlet-context.xml에 다음과 같이 ViewResolver가 등록됩니다. prefix로 폴더 경로를 지정하고 suffix로 .jps를 붙여 뷰 페이지 지정을 편리하게 합니다. 따라서 다음의 코드는 /WEB-INF/views/main.jsp 뷰 페이지를 요청하게 됩니다. @RequestMapping("/") public String main() { return "main"; } Redirecting redirect: 라는 특별한 prefix를 붙이면 UrlBasedViewResolver가 이를 redirect가 필요하다는 지시로 인식하여 해당 주소로 재요청이 가게 됩니다. 여기에.. 2022. 9. 4.
[Spring] Model, ModelAndView, @ModelAttribute - 컨트롤러에서 뷰로 데이터 전송하기 목차 컨트롤러에서 뷰 페이지로 데이터를 전달하는 몇 가지 방법을 알아보겠습니다. Model / ModelMap / Map 컨트롤러의 메소드를 작성할 때 Model이라는 타입을 파라미터로 지정할 수 있습니다. Model 객체는 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재입니다. 메소드의 파라미터에 Model 타입이 지정되면 스프링은 특별하게 Model 타입 객체를 만들어서 메소드에 주입하게 됩니다. ModelMap, Map도 Model과 동일한 기능을 수행합니다. Model은 Servlet에서의 request.setAttribute()와 유사한 역할을 합니다. 다음은 Servlet에서 데이터를 Request 객체에 담아 뷰 페이지로 전달하는 코드입니다. request.setAttribut.. 2022. 9. 3.
[Spring] @RequestParam - 요청 파라미터 데이터 파싱하기 목차 @RequestParam @RequestParam 어노테이션을 이용하면 Servlet 요청 파라미터(ex. 쿼리 파라미터, form 데이터)를 컨트롤러 메소드의 인자로 바인딩할 수 있습니다. 스프링 프레임워크를 사용할 때 가장 편리한 기능 중 하나가 파라미터를 자동으로 수집하는 것입니다. 매번 request.getParameter로 데이터를 파싱하던 노동에서 벗어날 수 있게 됩니다. @RequestParam(name = "name") 파라미터 name을 지정하여 파라미터로 전달된 데이터들 중 지정한 이름의 데이터를 파싱합니다. 매개변수로 지정한 변수의 타입이 String이 아닌 경우 자동으로 형변환이 이루어집니다. @RequestMapping(value = "/login1") public Strin.. 2022. 9. 2.
[Spring] @RequestMapping - 요청 주소 매핑하기 목차 @RequestMapping @Controller 또는 @RestController 어노테이션으로 등록된 클래스는 자동으로 스프링 빈으로 등록이 되어 매핑됩니다. 하지만 사용자가 요청한 URL에 매핑하기 위해서는 빈의 매핑 정보를 정의해야 합니다. 이때 사용하는 것이 @RequestMapping 어노테이션입니다. @RequestMapping 어노테이션은 Spring MVC Framework의 RequestHandlerMappingHandler 인터페이스를 어노테이션화한 것으로서, 사용자의 요청을 스프링 Controller 메소드 또는 클래스에 매핑하기 위해 사용됩니다. 클래스 레벨에 사용하면 클래스 내 모든 메소드에 공유되는 매핑 주소로 설정할 수 있으며, 메소드 레벨에 사용하면 특정한 매핑으로 범.. 2022. 9. 1.
[Spring] 스프링 MVC의 기본 구조 목차 MVC 패턴이란? MVC 패턴은 어플리케이션을 세 가지 영역, 즉 모델(Model), 뷰(View), 컨트롤러(Controller)로 구분하여 작업을 분리하는 웹 어플리케이션 개발 방법론으로서, 서로 간의 결합도를 최소화하고 유지보수성을 높이며 개발의 효율성을 향상시킵니다. 사용자가 입력을 담당하는 View를 통해 요청을 보내면 해당 요청을 Controller가 받고, Controller는 Model을 통해 데이터를 가져온 후, 해당 데이터를 바탕으로 출력을 담당하는 View를 제어해서 사용자에게 전달합니다. Model : 어플리케이션이 무엇을 할 것인지 정의합니다. 내부 Business Login을 처리하기 위한 역할을 합니다. 즉, 데이터 저장소와 연동하여 사용자가 입력한 데이터나 사용자에게 출.. 2022. 8. 31.
[Spring] @Transactional 기본 사용법 목차 트랜잭션 (Transaction) 트랜잭션(Transaction)은 더 이상 쪼개질 수 없는 하나의 작업 단위을 의미합니다. 예를 들어 '계좌 이체'라는 행위를 따져보면, '출금'과 '입금'이라는 각각의 작업이 하나의 단위를 이루고 있습니다. 이때 출금은 정상적으로 처리되었는데 입금하는 과정에서 예외가 발생하는 경우를 생각해 볼 수 있습니다. 이미 계좌에서 돈이 빠져나갔는데 상대방의 계좌에 돈이 입금되지 않는다면 큰 문제가 될 것입니다. 이 때문에 출금과 입금을 하나의 트랜잭션으로 관리하여 문제가 발생한 경우 모든 작업을 rollback하는 것이 필요합니다. 이처럼 여러 작업을 진행하다가 문제가 생기면 모든 작업을 이전 상태로 rollback하기 위해 사용되는 것이 트랜잭션입니다. ACID 원칙 원.. 2022. 8. 27.