Overivew
- 여러개의 dto를 하나의 인터페이스 안에 묶어주어 사용 가능하다
코드
public sealed interface PortfolioResponse permits PortfolioResponse.PortfolioResponseDto {
record PortfolioResponseDto(
Long id,
String title,
String content,
) implements PortfolioResponse {}
Sealed
- 다음에 명시되는 클래스,인터페이스에 한해 구현 할 수 있게 제한한다
permits
위 코드는 아래와같다
public class PortfolioResponse {
private Long id;
private Stirng title;
pirvate String content;
public PortfolioResponse(Long id, String title, Stirng content){
this.id = id;
this.title = title;
this.content = content;
}
그 외 record를 통해 생성되는 해쉬코드 등등...
}
사용방법
public String test(){
PortfolioResponse portfolioResponse = new PortfolioResponse.PortfolioResponseDto(
...PortfolioResponseDto 인자들 넣어주면됩니다
)
}

- 위 예제에서는 id,title,content만 넣었지만 실제 생성자의 인자로서 받아야 할것들이 잘 표시되는 모습이다
일반 생성자 패턴에서처럼 of를 사용한 생성자 제어 방식
public sealed interface PortfolioResponse permits PortfolioResponse.PortfolioResponseDto {
record PortfolioResponseDto(
Long id,
Long user_id,
String title,
String content,
Long work_experience,
String work_type,
String project_history,
AreaType area
) implements PortfolioResponse {
public static PortfolioResponseDto of(Portfolio portfolio) {
return new PortfolioResponseDto(
portfolio.getId(),
portfolio.getUser().getId(),
portfolio.getTitle(),
portfolio.getContent(),
portfolio.getWork_experience(),
portfolio.getWork_type(),
portfolio.getProejct_history(),
portfolio.getArea()
);
}
}
}
- implements안에 of를 넣어서 기존대로 사용가능하다
오늘 한것
- 외주 API (기본)
- 포트폴리오 API (기본)
- 공통 response,excpetion 구현