개발/Springboot
[Spring] 김영한의 Spring 입문 섹션 2. 스프링 웹 개발 기초
윤J
2023. 5. 15. 22:27
- 정적 컨텐츠: 그냥 파일 그대로 올려줌
- MVC, 템플릿 엔진: 서버에서 약간의 변형을 거치고 올려줌
- API: json 이라는 데이터 구조 포맷으로 클라이언트에게 전달
[1] 정적 컨텐츠
Spring Boot에는 resources: static/hello-static.html에서 정적 컨텐츠 찾아서 반환하는 기능 있음
[2] MVC와 템플릿 엔진
MVC: Model, View(=html), Controller
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name", required = false) String name, Model model){
model.addAttribute("name", name);
// model에 속성 추가 "name"은 html에서 쓰이는 값 이름, 뒤 name은 request로 받은 값 value(html에 넘겨줌)
return "hello-template";
}
[3] API
- getter setter 단축키: alt+insert
- getter setter 함수: (보통은 class 안에서) getter는 인스턴스 변수를 반환(return)하고 setter는 인스턴스 변수를 생성, 대입하거나 수정한다. -> 인터넷을 찾아보니 사용을 줄이는 게 낫다고 한다!
public class Vehicle {
private String color;
// Getter
public String getColor() {
return color;
}
// Setter
public void setColor(String c) {
this.color = c;
}
}
- JSON(JavaScript Object Notation): 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식. 클라이언트가 사용하는 언어에 관계 없이 통일된 데이터를 주고받을 수 있도록, 일정한 패턴을 지닌 문자열을 생성해 내보내면 클라이언트는 그를 해석해 데이터를 자기만의 방식으로 온전히 저장, 표시할 수 있게 된다.
- API: API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의합니다. API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있습니다.
@GetMapping("hello-string")// URL 주소
@ResponseBody // http의 body에 직접 넣어주겠다
public String helloString(@RequestParam("name") String name){
return "hello " + name; // API 방식, 문자 그대로 내려준다
}
@GetMapping("hello-api")
@ResponseBody // JSON으로 반환하는 게 기본
public Hello helloApi(@RequestParam("name") String name){
Hello hello = new Hello();
hello.setName(name);
return hello; // 객체 반환
}
static class Hello{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}