지난 글에서 프로젝트를 생성하고 기본적인 설정을 하였습니다.
이번 글에서는 MVC 패턴을 사용한 프로젝트 구조를 생성하고 API 서버를 구현해보겠습니다.
개발이 주 목적이기 때문에 간단하게 MVC 패턴에 대해서 알아보겠습니다.
MVC 패턴은 다양한 디자인 패턴 중 모델(Model), 뷰(View), 컨트롤러(Controller)로 역할을 분리하여 구성하는 패턴입니다.
MVC 패턴을 사용하는 가장 큰 이유는 유지보수의 편리성 때문입니다.
public interface FirstService {
public String helloWorld();
}
@Service
public class FirstServiceImpl implements FirstService {
@Override
public String helloWorld() {
return "Hello World";
}
}
@RestController
@RequiredArgsConstructor
@RequestMapping("/first")
public class FirstController {
private final FirstService firstService;
@GetMapping("/0001")
public ResponseEntity<String> getFirst(){
String result = firstService.helloWorld();
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
@RestController : Rest API 개발이 목표기 때문에 @Controller 어노테이션 대신 사용하였습니다.
@RestController은 @Controller 와 @ResponseBody가 결합된 어노테이션입니다. 만약 @Controller을 사용한다면 컨트롤러 내 모든 메소드에 @ResponseBody를 붙여야합니다.
@RequiredArgsConstructor : lombok에서 지원하는 어노테이션으로 final이나 @NotNull이 붙은 필드에 자동으로 의존성을 주입해주는 어노테이션입니다.
@RequestMapping : API의 url을 매핑하기 위해 사용하였습니다.
Contoller별로 url을 크게 분리하고, 메소드 별로 분리합니다.
@GetMapping : HTTP Get 요청에 대해서만 매핑합니다.
ResponseEntity : HttpEntity에서 status를 추가한 클래스입니다. HttpHeaders와 body, HttpStatus를 포함하고 있습니다.
ResponseEntity를 사용하여 전체 응답을 통일시키고 세부적으로 관리하기 위하여 사용하였습니다.
다음 글에서는 DB를 연동하여 DAO를 구현하고 페이지에 표시해보도록 하겠습니다.
전체 소스는 Gitlab 에서 확인할 수 있습니다.