1. MVC (Model View Controller)
Controller
클라이언트의 요청에 대해
Model이 업무 수행을 완료하면 그 결과를 가지고 화면을 생성하도록View에 전달하는 역할을 하게 되며, 일종의 조정자 담당
2. Annotation자바에서
Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술. 즉, 프로그램에게 추가적인 정보를 제공해주는meta data
annotation 정의 → class에 annotation 배치 → 코드가 실행되는 중에 *Reflection을 이용하여 추가 정보를 획득하여 기능을 실시*Relection?Reflection이란 프로그램이 실행 중에 자신의 구조와 동작을 검사, 조사, 수정하는 것 Reflection을 사용하면 컴파일 타임에 interface, field, method 이름을 알 지 못해도 실행 중에 class, interface, field, method 접근 가능 Annotation 자체는 아무런 동작을 가지지 않는 단순한 표식일 뿐이지만, Reflection을 이용하면 Annotation의 적용 여부와 엘리먼트 값을 읽고 처리3. Annotation 종류
@Component개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation
@Component public class Student { public Student() { System.out.println("hi"); } }Component에 추가 정보가 없다면 Class의 이름을 camelCase로 변경한 것이 Bean id로 사용
@Component(value="mystudent") public class Student { public Student() { System.out.println("hi"); }
@Bean과 다르게@Component는name이 아닌value를 이용해Bean의 이름을 지정
@Bean개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만들려할 때 사용되는
Annotation@Configuration public class ApplicationConfig { @Bean public ArrayList<String> array(){ return new ArrayList<String>(); } }ArrayList 같은 라이브러리 등을
Bean으로 등록하기 위해서 별도로 해당 라이브러리 객체를 반환하는 Method를 만들고@Bean Annotation사용위의 경우
@Bean에 아무런 값을 지정하지 않았으므로 Method 이름을 camelCase로 변경한 것이 Bean id로 등록
(method 이름이 arrayList()인 경우 arrayList가 Bean id)@Configuration public class ApplicationConfig { @Bean(name="myarray") public ArrayList<String> array(){ return new ArrayList<String>(); } }위와 같이
@Bean에 name이라는 값을 이용하면 자신이 원하는 id로 Bean 등록
@RestController
Spring에서Controller중View로 응답하지 않는Controller를 의미
method의 반환 결과를JSON형태로 반환
이 Annotation이 적혀있는 Controller의 method는 HttpResponse로 바로 응답이 가능@Controller와 @RestController
- @Controller : API와 view를 동시에 사용하는 경우에 사용. view(화면) return이 주목적
 - @RestController : view가 필요없는 API만 지원하는 서비스에서 사용. @RequestMapping 메서드가 기본적으로 @ResponseBody 의미를 가정. data(json, xml등) return이 주목적
 
4. Controller 만들기https://github.com/JuyoungKimmy-Kim/spring-mytest2.git
controller.java 파일 생성


main 클래스
Reference
https://goddaehee.tistory.com/203
https://velog.io/@gillog/Spring-Annotation-%EC%A0%95%EB%A6%AC
스프링부트로 배우는 자바 웹 개발 p90~92