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

Super Novice님의 프로필 이미지
Super Novice

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

블록

타임리프 기본기능 강의중에 궁금한것이 있습니다.

해결된 질문

작성

·

136

·

수정됨

1

=
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

이런질문을 해도될지 모르겠습니다만.

타임리프 기본 강의중에 어떠한 리스트를 테스트 하기 위해서

addUsers라는 메소드로 리스트를 만들어서 model에 넣어 사용하는데요.

저같은경우라면 보통 더미?를 만들때는

private List<User> createUserList() {
    List<User> list = new ArrayList<>();
    list.add(new User("UserA",10));
    list.add(new User("UserB",20));
    list.add(new User("UserC",30));
    return list;
}

이런식으로 만들어서 데이터를 전달하는데

영한님은

private void addUsers(Model model) {
    List<User> list = new ArrayList<>();
    list.add(new User("UserA",10));
    list.add(new User("UserB",20));
    list.add(new User("UserC",30));
    model.addAttribute("users", list);
}

이런식으로 메소드에서 리턴하는것이 아닌 모델을 받아 처리하도록 구현하셨더라구요.

어떠한 장점이 있어서 이런식으로 구현하신건가요? 아니면 그냥 스타일의 차이일까요 ?

답변 1

2

안녕하세요. Super Novice님, 공식 서포터즈 OMG입니다.

올리신 방식대로 더미데이터를 만들어서 반환하는 경우에는 강의에서처럼 별도 함수를 호출해서

model에 담을 수도 있고,

ex) model.addAttribute("users", createUserList());

Json형태로 데이터를 반환할 수도있습니다.

ex)

@RestController
public class TestRestController {
    @GetMapping
    public List<User> dummy() {
        return createUserList();
    }
}

 

즉, 다양하게 활용할 수 있다는 장점이 있을 것 같습니다.

하지만 강의에서는 model에만 담아서 사용하려 하였기 때문에 model을 받아서 별도의 메서드를 만드신 것입니다 😀

 

감사합니다.

Super Novice님의 프로필 이미지
Super Novice
질문자

아 그렇게 큰이유는 없었군요 ㅎ 답변감사드립니다 서포터님!

Super Novice님의 프로필 이미지
Super Novice

작성한 질문수

질문하기