모집글 목록 조회(GET /api/posts) 와 모집글 상세 조회(GET /api/post/{postId})를 컨트롤러에서 가짜 데이터를 하드코딩하여 구현해두었습니다.
행정구역의 경우 db를 통해 값을 가져오도록 제대로 구현해두었습니다.
Description
저희가 JAVA 17을 쓰는 만큼 record를 활용하면 좋을 거 같아 DTO의 경우 record로 작성하였습니다.
일반 클래스와 생성자 선언 방식이 좀 달라서 record 사용법이 혼란이 올 수 있습니다. 이를 위해 city 패키지를 제대로 구현해두었습니다. city.dto의 CityResponse를 보시면 record의 생성자를 어떻게 만들어야하는 지 볼 수 있습니다.
public record DistrictDto(
Long id,
String name
) {
DistrictDto(District district) {
this(district.getId(), district.getName());
}
}
이런식으로 this 키워드를 사용하거나, 혹은 this가 잘 안될 시 생성자 대신 of 패턴을 사용하면 해결됩니다.
public record GetDistrictsDto(
List<DistrictDto> countries
) {
public static GetDistrictsDto of(List<District> districtList) {
return new GetDistrictsDto(districtList.stream()
.map(DistrictDto::new)
.toList());
}
public record DistrictDto(
Long id,
String name
) {
DistrictDto(District district) {
this(district.getId(), district.getName());
}
}
}
GetDistrictsDto의 경우 생성자 대신 public static 메서드 of를 만들었습니다. this안에 map 넣을려고 하니까 오류가 나서 of로 처리했습니다.
Summary
모집글 목록 조회(GET /api/posts) 와 모집글 상세 조회(GET /api/post/{postId})를 컨트롤러에서 가짜 데이터를 하드코딩하여 구현해두었습니다.
행정구역의 경우 db를 통해 값을 가져오도록 제대로 구현해두었습니다.
Description
저희가 JAVA 17을 쓰는 만큼
record
를 활용하면 좋을 거 같아 DTO의 경우record
로 작성하였습니다.일반 클래스와 생성자 선언 방식이 좀 달라서 record 사용법이 혼란이 올 수 있습니다. 이를 위해 city 패키지를 제대로 구현해두었습니다. city.dto의 CityResponse를 보시면 record의 생성자를 어떻게 만들어야하는 지 볼 수 있습니다.
이런식으로 this 키워드를 사용하거나, 혹은 this가 잘 안될 시 생성자 대신 of 패턴을 사용하면 해결됩니다.
GetDistrictsDto의 경우 생성자 대신 public static 메서드
of
를 만들었습니다. this안에 map 넣을려고 하니까 오류가 나서 of로 처리했습니다.Related Issue
Issue Number: #6