우리가 보통 main에 코드를 칠때
- 입력을 받고
- 특정 작업 계산 및 처리
- 처리
이런 식으로 진행하는데 이러한 1,2,3들을 각각 관심사라고 부른다. 회사로 치면 부서라고 생각하면 된다. 우리가 해야할 작업을 관심사라고 생각하면 된다. 그러면 왜 이걸 분리해야할까
OOP(객체지향설계)의 5대 설계원칙이 있다. SOLID라고 한다. 이 중 SRP가 있는데 단일책임 원칙이라고 한다.
하나의 메서드는 하나의 책임만 진다.
따라서 우리는 메서드 안에는 한 개의 책임만 있어야한다.
그래서 우리는 공통 코드를 분리해야한다.
사실 이렇게 입력분리를 해도 나머지 처리와 출력도 분리해줘야한다.
분리가 되면 우리가 기존의 코드들을 수정해야한다. 왜냐면 class가 달라서 우리가 선언한 lv가 대입되지 않기때문이다. 따라서 중간에 Model이 필요하다. Model은 객체라고 생각하자.
이렇게 Model에 우리가 출력에 필요한 값들을 넣어주고 이를 이용해서 출력한다.
여기서 MVC 패턴이 나온다.
2.처리(Controller) -> Model -> 출력(View)
앞의 약자를 따서 우리는 이것을 MVC 패턴이라고 한다.
정리하면 다음과 같다.
요청 ->
입력
-> 모델 생성 ->Controller
에서 결과 모델에 결과 저장 -> 모델이View
에 뿌려줌
이는 대략적인 요약이고 제대로 된 그림은 아래와 같다. 출처를 남겨두었으니 블로그에 들어가 같이 보면 좋을 듯하다.
그림 출처: https://catsbi.oopy.io/f52511f3-1455-4a01-b8b7-f10875895d5b
매개변수 이름 얻어어기
1. refelction API 이용
-parameters 옵션넣고 컴파일 ->jdk1.8부터 가능
그전에는 classfile에서 얻어옴