RESTful API 컨트롤러
이 클래스가 REST API의 컨트롤러임을 나타냅니다. JSON 또는 XML과 같은 데이터를 반환하는 메서드를 포함합니다.
JSON과 XML은 데이터 교환 형식으로 사용되는 두 가지 주요 형식입니다. 둘 다 데이터 구조를 표현하는 데 사용되지만, 그 형식과 사용 방식에 차이가 있습니다.
특징:
특징:
<주요 차이점>
Spring Framework에서 의존성 주입(Dependency Injection)을 위한 어노테이션입니다. 의존성 주입은 객체 간의 의존성을 외부에서 주입해주어, 객체 간의 결합도를 낮추고 코드의 유연성과 테스트 가능성을 높이는 데 사용됩니다.
의존성 주입: @Autowired는 Spring 컨테이너에서 관리하는 빈(Bean)을 자동으로 주입해 줍니다. 이 어노테이션이 붙은 필드, 생성자, 또는 메서드에 대해 Spring은 해당 타입에 맞는 빈을 찾아 주입합니다.
자동 주입: @Autowired는 타입 기반으로 빈을 주입합니다. 즉, Spring 컨테이너에서 해당 타입의 빈을 찾아 자동으로 주입합니다. 명시적으로 빈을 설정하지 않아도, Spring이 자동으로 빈을 관리하고 주입합니다.
Spring Framework에서 URL 경로의 변수를 메서드 파라미터로 전달받기 위해 사용되는 어노테이션입니다. RESTful 웹 서비스에서 URL 경로의 일부를 메서드의 인자로 바인딩할 때 유용합니다.
@PathVariable은 URL 경로의 특정 부분을 메서드 파라미터에 매핑하는 데 사용됩니다. 주로 RESTful 웹 서비스에서 URI의 경로 변수 값을 메서드의 인자로 받을 때 사용합니다.
Spring Framework에서 HTTP 요청 본문(body)의 데이터를 메서드 파라미터로 변환하여 전달받기 위해 사용되는 어노테이션입니다. 주로 POST, PUT 요청의 경우 클라이언트가 서버로 보내는 데이터를 처리할 때 사용됩니다.
@RequestBody는 HTTP 요청의 본문에서 JSON, XML, Form 데이터 등을 Java 객체로 변환하여 메서드 파라미터에 주입합니다. 주로 @RestController에서 JSON 데이터를 Java 객체로 변환할 때 사용됩니다.
@RequestBody는 HTTP 요청 본문에서 데이터를 추출하여 Java 객체로 변환해 메서드 파라미터로 전달합니다.
주로 POST 및 PUT 요청에서 클라이언트가 서버로 데이터를 전송할 때 사용됩니다.
JSON, XML 등의 데이터 형식을 Java 객체로 변환하고, 클라이언트로부터 받은 데이터를 검증하거나 처리하는 데 유용합니다.
롬복(Lombok) 라이브러리에서 제공하는 어노테이션으로, 기본 생성자(default constructor)를 자동으로 생성해줍니다. 이 어노테이션을 사용하면 클래스에 명시적으로 생성자를 작성하지 않아도 인스턴스를 생성할 수 있습니다