저번 두 포스팅에서 동적인 웹화면과 정적인 웹화면을 만들어보았습니다.
참고 ↓
물론, 백엔드에서 직접적으로 화면을 만들어내기도 하지만, 프론트엔드 개발자에게 API를 통해서 JSON형태의 데이터를 주어야 하는 경우도 더러 있습니다.
이번에는 그래서 컨트롤러에서 어떤 방식으로 API가 만들어지는 것인지 알아보겠습니다.
API 만들기
위 두 포스팅에 이어서 시작하겠습니다.
우선 컨트롤러 내부에 자바클래스로 Hello 라는 클래스를 만들어주겠습니다.
내부에 name과 id를 변수로 선언해주고 생성자와 getter setter를 만들어줍시다.
참고 : alt + insert 키를 누르면 생성자와 getter setter를 바로 생성할 수 있습니다.
@GetMapping("/helloApi")
@ResponseBody
private Hello helloApi(){
Hello hello = new Hello("베어",1);
return hello;
}
이제, 새로운 함수 helloApi를 만들어줍니다.
@ResponseBody 어노테이션을 추가해주어야 하는데, 이 어노테이션의 의미는 Http body부에 viewResolver가 아닌 HttpMessageConverter가 접근하여 직접 return에 해당하는 결과를 넣겠다는 뜻입니다.
즉, return에 굳이 객체를 반환하지 않고, String을 반환하여도 Http body부에는 String형의 데이터가 들어가있게 됩니다.
객체를 넣는다면 객체의 데이터가 Json 형으로 바뀌어 데이터가 전달되게 됩니다.
이제, 서버를 가동하고 API를 테스트해보도록 하겠습니다.
다음과 같은 json형의 데이터가 들어오는 것을 확인할 수 있습니다👌
정리
앞선 두 포스팅과 함께 controller만을 사용하여(service를 사용한 다른 로직이나 데이터베이스 접근 없이) 어떻게 스프링이 동작하는지 간단하게나마 정리해보았습니다.
그러나, 이렇게 개발한 것은 정말 야생형으로 감만 잡은 것임을 유의하고, 매우 방대한 스프링에 대해 관련 전문 서적이나 강의를 들으며 공부해야만 합니다!
'서버 > 스프링' 카테고리의 다른 글
[Spring] 의존관계 자동 주입 @Autowired (0) | 2022.08.27 |
---|---|
[Spring] 스프링 컨테이너와 스프링 빈 (0) | 2022.08.26 |
[Spring] Ioc(제어의 역전)와 DI(의존성 주입)의 개념과 그 차이 (4) | 2022.08.05 |
[Spring] Spring MVC를 활용하여 동적인 화면 만들기 (0) | 2022.08.03 |
[Spring] 스프링 부트로 내 서버에 정적인 웹 화면 띄우기 (0) | 2022.08.02 |