inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

상품 도메인 개발

ItemRepository 에서 updateItem Method

356

천수병

작성한 질문수 1

0

안녕하세요.

 

ItemRepository의 해당 업데이트 메서드에서

프로퍼티 값을 수정한, 즉 업데이트 된 findItem을 store에 있는 기존의 item에 덮어쓰지 않았습니다.

 

마킹된 부분은 store에서 아이템을 조회하는 것이므로, findItem은 "자전거",1000,10 상태값을 가지는.. 즉, 업데이트 되지 않은 아이템이 조회되어야 하는 것 아닌가요?

업데이트된 아이템이 조회돼서 질문 드립니다.

spring mvc

답변 1

1

나무늘보

안녕하세요, 천수병 님! 공식 서포터즈 codesweaver 입니다.

모든 프로그래밍 언어에서 파라미터로 넘길 수 있는 값은 두 가지 형태 입니다. '값타입  과 '참조타입’(주소값) 입니다.  

자바에서 값 타입은 int, long, boolean 등, 원시타입이라 하는 모든 타입입니다.

‘참조’는 원시타입을 제외한 모든 객체입니다. 

(WrapperClass 라는 객체이지만 값 타입 처럼 사용하는 특수한 경우도 있습니다)

 

값 타입은 스택영역에 위치합니다. 스택영역에 사용자가 할당한 변수값을 저장합니다.

참조 타입은 스택과 힙 영역을 모두 사용합니다. 사용자가 new 연산자를 이용해 인스턴스를 만들면, 인스턴스 자체는 힙 영역에 저장하고, 힙 영역의 주소값을 스택에 저장합니다.

우리가 참조타입을 사용하면 다음과 같은 과정을 거칩니다.

  • 스택에서 힙 영역의 주소를 알아내고

  • 힙 영역으로 이동(점프)한 뒤 필요한 동작을 수행.

 

메소드를 호출할 때 파라미터를 전달할 수 있는데, 파라미터 전달은 ‘스택 복사’ 작업입니다.

값 타입은 사용자가 입력한 값 자체가 파라미터 변수로 복사 되는반면, 참조 타입은 힙 영역의 주소값을 파라미터 변수로 복사합니다.

그래서, 사용자가 메소드 안에서 값 타입의 내용을 변경하면 외부에 영향을 미치지 않습니다.

반면 참조 타입은 주소값이 복사되었으므로, 결국 같은 인스턴스를 사용합니다. 그래서 메소드 안에서 값을 변경하면 외부에도 영향을 줍니다.

 

콜렉션에 값을 저장하는 것도 마찬가지 입니다. 객체로 저장한 것은 결국 힙 영역에 위치하므로, 인스턴스 내부의 값을 변경하면, 이 인스턴스를 사용하는 모든 범위에 영향을 미칩니다.


감사합니다.

servlet과 container에 대한 질문입니다

0

25

1

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

0

64

1

jsp 의존성 수정 요청

0

80

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

78

1

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

0

112

1

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

0

96

1

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

0

79

1

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

0

111

1

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

0

75

1

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

0

139

1

html 변경하는 부분 적용 문제

0

103

1

한글 깨짐

0

77

2