작성
·
82
답변 2
0
안녕하세요, Doobie 님!
하드코딩하여 데이터를 넣어준다고 보시면 됩니다 ㅎㅎ
FE 에서도 직접 API를 호출하면서 이해하고 개발하는 것이 가장 효율적이기도 해서요.
상호 간 스펙 논의를 하고, 여러 케이스를 정의하고, 대표적인 케이스 한두가지를 하드코딩해서 빠르게 제공합니다.
(물론 API 문서만 제공하고 개발하는 경우도 많습니다. 항상 그런 것은 아니고, 시간이 어느정도 보장될 때 합니다.)
Controller
요청과 응답 스펙이 정의되었다는 가정 하이니, 관련 DTO를 만듭니다. 이 부분은 코드 양이 많지 않으니 바로 개발하는 편에 속합니다.
시간이 허락한다면 Controller 테스트도 같이 작성하면 좋겠네요.
Service
Service에서 특정 케이스에 맞는 가짜 데이터를 하드코딩합니다.
정확하게, 자세히 다 만들 필요는 없고, 그저 API의 정상 동작만을 제공하는 것을 목표로 합니다.
Repository
이 부분은 아직 개발 전입니다.
저는 요렇게 해서 개발 서버에 배포하고, 그 이후는 FE, BE가 각자 병렬로 개발한 뒤에 맞춰가는 형태로 진행하고 있습니다.
위에서 언급한 대로 API 문서와 함께 제공하는 것이 가장 좋은 방법입니다.
정답은 아니니, 참고만 해주세요!
감사합니다 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
Doobie님께서 질문주신 Mock 반환값을 먼저 주는 방법에 대해 설명드리겠습니다.
프론트엔드와의 협업 시, 백엔드 개발자가 서비스를 구현하기 전에 프론트엔드가 개발을 진행할 수 있도록 임시로 Mock 데이터를 반환할 수 있습니다. 이는 주로 초기 개발 단계에서 빠른 기능 개발을 위해 사용되며 하드코딩된 예제 데이터를 사용하게 됩니다.
컨트롤러
@RestController
@RequestMapping("/api")
public class SampleController {
@GetMapping("/example")
public ResponseEntity<Map<String, String>> getExample() {
// 하드코딩된 데이터 반환 (example endpoint)
Map<String, String> mockResponse = new HashMap<>();
mockResponse.put("status", "success");
mockResponse.put("message", "This is a mock response");
return ResponseEntity.ok(mockResponse);
}
}
서비스
서비스 레이어는 주로 비즈니스 로직이 들어가지만 초기 단계에서는 필요 없다면 생략 가능합니다. 직접적으로 컨트롤러에서 Mock 데이터를 반환하도록 구성하기도 합니다. 필요할 경우 간단하게 인터페이스만 정의해 놓을 수 있습니다.
레포지토리
레포지토리 또한 데이터베이스 연동이 필요한 경우가 아니라면 초기 Mock 데이터라면 미리 정의해 놓지 않아도 됩니다.
이와 같은 방식으로 프론트엔드 개발자에게 예상되는 API 형태와 반환값을 제공하여 개발을 진행할 수 있게 도와줍니다. 실제 서비스 로직이 완성되면 Mock 값을 실제 비즈니스 로직으로 대체하면 됩니다.
더 자세한 예제가 필요하시다면, Spring Boot의 테스트에서 사용하는 다양한 Mocking 라이브러리들, 예를 들어 Mockito 등을 활용하여 좀 더 유연한 Mock 객체를 생성하는 방법도 학습해 보시기 바랍니다. Spring Boot Reference Documentation에서 테스트와 관련된 정보를 확인하실 수 있습니다.