inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

ModelView 질문

해결된 질문

74

창신동 장첸

작성한 질문수 115

0

image.png

 

안녕하세요~ mvc에 도입된 ModelView클래스에 질문있습니다.

위 코드처럼 필드에 바로 HashMap 구현객체를 할당한 것을 보실 수 있는데요.

MVC model v3 을 설명하는 강의자료에 나온 소스입니다.

 

생성자로 초기화하는 아래 코드처럼 작성해주실 것이라 기대했는데

@Data
@AllArgsConstructor
public class ModelView {
    private String viewName;
    private Map<String, Object> model;

    public ModelView(String viewName) {
        this.viewName = viewName;
        this.model = new HashMap<>();
    }
}

그렇지 않은 이유가 궁금합니다~!

spring mvc

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 창신동 장첸님!

ModelView 클래스에서 필드에 바로 HashMap 구현 객체를 할당한 것에 대해 궁금하셨군요. 이 부분은 코드 작성 스타일이나 설계의 차이에서 비롯될 수 있습니다.

  1. 즉시 초기화 vs 생성자 초기화:

    • 필드에서 즉시 HashMap 객체를 초기화하면, 클래스의 인스턴스가 생성되면서 필드가 자동으로 초기화됩니다. 이는 널포인트 예외를 방지할 수 있고, 매우 간단한 초기화 방식일 때 유리합니다.
    • 반면 생성자에서 초기화하면 각 생성자마다 원하는 방식으로 초기화 구문을 넣을 수 있는 유연함이 생깁니다. 단, 모든 생성자에 동일한 초기화 코드를 삽입해야 할 때 코드가 중복될 수 있습니다.
  2. 의미의 차이:

    • 필드 초기화는 해당 필드가 클래스 내에서 항상 동일한 방식으로 초기화될 것을 보장하며, 객체가 생성되는 시점에서 특정 필드에 대해 기본값을 지정하겠다는 명확한 의미를 전달합니다.
    • 생성자 초기화는 생성자 호출 과정에서 동적으로 초기화 값을 설정할 수 있으며, 초기화 과정을 더 구체적으로 제어할 수 있게 합니다.

참고하시기 위해 유사한 질문들에 대한 답변 링크를 공유합니다:
- 질문있습니다!: ModelView 클래스의 Map<String, Object> model에 대해 다룬 내용입니다.
- 질문이요..!!: ModelView 클래스의 process 메서드와 관련된 질문입니다.

질문이 해결이 되셨기를 바라며, 완벽한 답변을 제공하지 못한 것에 대해 양해 부탁드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

servlet과 container에 대한 질문입니다

0

24

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

63

1

jsp 의존성 수정 요청

0

78

2

요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?

0

143

1

save() 메서드 문의

0

67

1

절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상

0

101

1

request-body-json

0

83

2

MVC 패턴의 적용 단위

0

97

1

RequestMapping을 이용한 핸들러, 어댑터

0

119

2

save 후 결과화면

0

89

2

jsp를 이용한 view

0

97

1

application.properties에 debug 추가해도 결과가 똑같습니다.

0

178

1

수업 코드 제공 관련 문의

0

97

2

RequestMappingHandlerAdapter의 Controller 호출 과정

0

100

3

파일 오픈 시

0

70

1

스프링 배치 관련

0

77

1

@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부

0

112

1

postman으로 /request-body-json-v1 호출시 500 error

0

95

1

프론트엔드와 백엔드의 mvc, rest api에 대한 질문

0

79

1

모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문

0

111

1

console log 출력 관련 질문입니다.

0

75

1

애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ

0

139

1

html 변경하는 부분 적용 문제

0

103

1

한글 깨짐

0

76

2