강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

hjun16님의 프로필 이미지
hjun16

작성한 질문수

게시글에 대한 질문

작성

·

23

0

안녕하세요 게시판에 대한 답글을 만드는 프로그램을 짜는데

사진까지 업로드가 되야 하는데 이럴경우 PostController 단순 글저장하는 곳에 같이 api 설계를 하고 따로 Service를 만들어야 할까요? 이걸 Post와 Answer(답글+사진) 포함으로 서로 매핑하고 mysql로 가져올려고 생각중인데 이걸 한번에 조회해 올 수 있는지 --1번 질문

2번 이걸 한번에 조회해 올때 PostController(글컨트롤러)에 다 만들어도 되나요?

 

{50FFBADC-D7FC-4758-BA7A-49F0B4BA71AC}.png

{840D649D-A200-48DD-94AB-66CA1E253662}.png

 

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;
}

 

{4BEE5992-C60B-4D9D-9B7B-C1E40F90CE03}.png

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
hjun16님께서 질문하신 게시판 프로그램 설계에 대한 조언을 드리겠습니다.

1번 질문: 답글과 사진을 포함하여 Post와 Answer를 매핑하고 MySQL에서 한번에 조회하는 방법
- Post와 Answer를 JPA 관계 매핑(예: @OneToMany, @ManyToOne)을 적절히 사용하여 연결하신 것처럼, 엔티티 간의 관계를 명확히 설정하세요. 이미지를 다룰 때는 Answer 엔티티와 AnswerImg 엔티티를 또다시 @OneToMany 관계로 설정하는 것이 일반적입니다.
- Post 엔티티를 통해 List로 답글을 조회할 수 있도록 설정하시면 JPA가 이를 적절히 처리해줍니다. Eager 혹은 Lazy Fetch 전략을 활용하여 관련 엔티티를 의도한 시점에 불러올 수 있습니다.

2번 질문: PostController에서 조회 로직을 구성해도 되는지
- PostController에서 조회 로직을 직접 구현할 수 있지만, 비즈니스 로직은 일반적으로 Service 계층에 위임하는 것이 유지보수 및 테스트에 유리합니다. 즉, PostService라는 클래스를 만들어 세부적인 처리를 담당시키고, Controller는 Service를 호출하는 구조로 구성하는 것이 권장됩니다.

Spring Boot의 각 계층을 적절히 활용하여 코드의 유지보수성과 재사용성을 높이세요. 추가적인 정보는 Spring Boot Reference Documentation에서 참고하실 수 있습니다.

hjun16님의 프로필 이미지
hjun16
질문자

감사합니다

hjun16님의 프로필 이미지
hjun16

작성한 질문수

질문하기