작성
·
23
0
안녕하세요 게시판에 대한 답글을 만드는 프로그램을 짜는데
사진까지 업로드가 되야 하는데 이럴경우 PostController 단순 글저장하는 곳에 같이 api 설계를 하고 따로 Service를 만들어야 할까요? 이걸 Post와 Answer(답글+사진) 포함으로 서로 매핑하고 mysql로 가져올려고 생각중인데 이걸 한번에 조회해 올 수 있는지 --1번 질문
2번 이걸 한번에 조회해 올때 PostController(글컨트롤러)에 다 만들어도 되나요?
package com.backend.farmon.dto.Answer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
@Schema(description = "답변 요청 DTO")
public class AnswerRequestDTO {
@Schema(description = "답변 제목")
private String title;
@Schema(description = "답변 내용")
private String content;
@Schema(description = "답변자 ID")
private Long answeredUserId; // 답변한 사람의 ID 추가
@Schema(description="사진 목록")
private List<MultipartFile> Img;
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
hjun16님께서 질문하신 게시판 프로그램 설계에 대한 조언을 드리겠습니다.
1번 질문: 답글과 사진을 포함하여 Post와 Answer를 매핑하고 MySQL에서 한번에 조회하는 방법
- Post와 Answer를 JPA 관계 매핑(예: @OneToMany, @ManyToOne)을 적절히 사용하여 연결하신 것처럼, 엔티티 간의 관계를 명확히 설정하세요. 이미지를 다룰 때는 Answer 엔티티와 AnswerImg 엔티티를 또다시 @OneToMany 관계로 설정하는 것이 일반적입니다.
- Post 엔티티를 통해 List
2번 질문: PostController에서 조회 로직을 구성해도 되는지
- PostController에서 조회 로직을 직접 구현할 수 있지만, 비즈니스 로직은 일반적으로 Service 계층에 위임하는 것이 유지보수 및 테스트에 유리합니다. 즉, PostService라는 클래스를 만들어 세부적인 처리를 담당시키고, Controller는 Service를 호출하는 구조로 구성하는 것이 권장됩니다.
Spring Boot의 각 계층을 적절히 활용하여 코드의 유지보수성과 재사용성을 높이세요. 추가적인 정보는 Spring Boot Reference Documentation에서 참고하실 수 있습니다.
감사합니다