2-9 관심사의 분리, MVC패턴-이론

서현우·2022년 5월 23일
0

복습

목록 보기
8/34

OOP 5대 설계원칙 - SOLID

  1. SRP
    단일책임의 원칙 - 하나의 메서드는 하나을 책임만 진다
    분리
    1.관심사의분리, 2.변하는 것, 변하지 않는 것 분리, 3.공통코드(중복코드)의 분리

  2. 입력의 분리
    request객체가 아닌 개별 값을 매개변수로 받을 수 있음.
    (int year, int month, int day)
    request -> String -> int (스프링이 자동 변환)

  3. 처리부분 분리
    출력을 분리하면 매개변수 사용 못 함.
    ==> 중간 객체인 Model 객체를 사용
    처리 한 값을 Model에 저장해서 출력으로 전달.
    MVC패턴.(분리된 두 코드간의 데이터 전달을 위해 모델이 필요)

1.입력(DispatcherServlet) -- 2.처리(컨트롤러)
   |
   |
3.출력(뷰) 

입력 : 요청을 받은 내용을 DispatcherServlet이 모델에 넣어서 컨트롤러로 전달.
처리 : 컨트롤러에서 처리한 값을 모델에 넣어서 DispatcherServlet으로 전달.
뷰 : DispatcherServlet에서 모델을 받아서 응답을 만들어서 클라이언트로 전달.

@Controller
public class YoilTeller {
	@RequestMapping("/getYoil")
	public String main(int year, int month, int day, Model m) {
		//1. 유효성 검사
		if(!isValid(year, month, day))
			return "yoilError"; //유효하지않으면 yoilError.jsp로 이동
		
		//2. 처리
		char yoil = getYoil(yaar, month, day);
		
		//3. Model에 작업 결과 저장
		model.addAttribute("year", year); //key=value형태의 map으로 저장
		model.addAttribute("month", month);
		model.addAttribute("day", day);
		model.addAttribute("yoil", yoil);
		
		//4. 작업 결과를 보여줄 View의 이름을 반환
		return "yoil"; // /WEB-INF/views/yoil.jsp
	}
}

@Request

profile
안녕하세요!!

0개의 댓글