# 요구사항
1) 새로운 기능이 추가될 때마다 매번 컨트롤러를 추가하는 것이 아니라 메소드를 추가하자.
2) URL 매핑시 HTTP 메소드 (GET, POST, PUT, DELETE)도 매핑에 활용하자.
-> URL은 같지만 다른 메소드로 매핑하고 싶다.
# 리플렉션(Reflection)이란?
영어단어 Reflect: 사물의 속성을 나타내다.
자바에서 리플렉션은
런타임에 클래스의 정보를 조회하는 것이다.
자바 고유의 기술이며 다른 언어에서는 찾아볼 수 없다. (혹시라도 생겼다면 댓글로 알려주세요!)
사용하는 곳: 프레임워크 개발(예. 스프링), 하이버네이트
궁금한점 : 웹 개발에서는 언제 쓸까? -> 어노테이션이 동작하는 원리가 reflection이라고 한다.
개발자가 직접 리플렉션 개념을 건드릴 일은 없는걸까?
예시코드 : https://hiddenviewer.tistory.com/114
예제 코드
https://dbbymoon.tistory.com/5
질문 사항 : 함수 구현시 throws를 넣는것은 필수일까? (묵시적은 YES, 그렇지 않다면 개발자 선택에 따라)
-> throws를 넣지 않아도 되는 경우는 언제가 있을까?
(함수에서 예외가 일어나지 않는다고 어떻게 장담하지? 내부에서 try-catch로 처리하는 경우 빼곤 없을 것 같은데)
Handler 매핑에서 애노테이션을 사용하나보다.
# 기존 코드
-> 컨트롤러가 추가 될 때마다 mapper를 추가 해줘야함. OCP에 어긋난다
* OCP란