스프링부트
- 스프링 부트는 스프링 프레임워크를 기반으로 한 자바 웹 어플리케이션 개발 프레임워크
- 스프링 프레임워크의 생산성과 유연성을 유지하면서도 보다 간편하게 웹 어플리케이션을 개발할 수 있도록 해주는 프레임워크입니다.
- 스프링 이니셜라이저 : 스프링 부트 프로젝트를 생성할 수 있는 웹 기반 도구
- http://localhost:8080 : URL을 웹 브라우저에 입력하면, 개발한 웹 애플리케이션에 접근할 수 있습니다.
어노테이션(Annotation)
- 코드에 대한 정보를 제공하고, 컴파일러나 프레임워크 등이 이 정보를 활용하여 코드를 생성하거나 실행 시 동작을 변경할 수 있도록 합니다.
Spring
@Controller
- MVC(Model-View-Controller) 패턴에서 Controller 역할
- 어노테이션을 클래스에 붙이면, 해당 클래스는 Spring에서 자동으로 빈(bean)으로 등록되며, 클라이언트의 요청을 처리하는 메서드를 정의할 수 있습니다.
@Controller
public class UserController {
}
@GetMapping
- HTTP GET 요청과 메서드를 매핑하기 위해 사용
- 해당 메서드는 GET 요청을 처리하는 핸들러로 등록되며, 요청 URL과 일치하는 경우 해당 메서드가 실행
@Controller
public class UserController {
@GetMapping("/user/hello")
public String hello() {
return "hello";
}
}
@ResponseBody
- 메서드가 반환하는 객체를 HTTP 응답 본문으로 변환하여 반환할 때 사용
- 별도의 뷰를 사용하지 않고도 클라이언트에게 데이터를 전송할 수 있습니다.
public class UserController {
@GetMapping("/user/hello")
@ResponseBody
public String hello() {
return "hello";
}
}
@RequestParam
- HTTP 요청 파라미터를 메서드의 매개변수로 전달할 때 사용
- Spring 웹 애플리케이션에서 HTTP 요청 파라미터는 보통 URL 쿼리 문자열이나 HTML form 데이터의 형태로 전달됩니다.
// "name"와 "age"는 HTTP 요청 파라미터
http://localhost:8080/user/getInfo?name=iu&age=30
public class UserController {
#V1
@GetMapping("/user/getInfo")
@ResponseBody
public String getInfo(@RequestParam String name, @RequestParam int age) {
return "이름은 %s이고, 나이는 %d입니다.".formatted(name, age);
}
}
public class UserController {
#V2
@GetMapping("/user/getInfo")
@ResponseBody
public String getInfo(@RequestParam("name") String userName,
@RequestParam("age") int userAge) {
return "이름은 %s이고, 나이는 %d입니다.".formatted(userName, userAge);
}
}
lombok
- lombok은 자바 언어에서 사용되는 라이브러리로, 개발자들이 자바 소스 코드에서 반복적으로 작성하는
Getter
, Setter
, 생성자
, Equals
및 HashCode 메서드
등을 자동으로 생성해주는 기능을 제공합니다.
@AllArgsConstructor
- 클래스의 모든 필드를 인자로 받는 생성자를 자동으로 생성
@AllArgsConstructor
class Animal{
int age;
String name;
}
@Getter / @Setter
- @Getter : Getter 메서드를 자동으로 생성해주는 역할
- @Setter : Setter 메서드를 자동으로 생성해주는 역할
@Getter
@Setter
class Animal{
int age;
String name;
}