inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 테스트

인스턴스가 두개일 때

해결된 질문

380

성유창

작성한 질문수 2

1

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

[질문 내용]
강사님이 설명해주신 것 중 memberService쪽과 memberRepository에 있는 MemoryMemberRepository는 다른것이다 라고 말씀하셨습니다

따라서 인스턴스가 두개가 만들어진것이고 static이라 문제가 없을 테지만 static이 아니라면 다른 DB를 사용하는 것이기 때문에 내용이 틀려 질 수 있다고 하셨는데

여기에 대해서 더 자세히 알고싶습니다.

  1. 왜 다른 것인지 궁금합니다

  2. 좀 더 찾아보고 싶은데 어떤 개념을 검색해보면 될까요 ?

감사합니다.

java spring mvc spring-boot

답변 1

1

나무늘보

안녕하세요, 성유창 님! 공식 서포터즈 codesweaver 입니다.
프로그램은 메모리를 stack과 heap 영역으로 구분합니다. 자바 코드에서 new Xxx() 형태로 클래스의 인스턴스를 생성할 경우 heap 영역에 인스턴스를 할당하고, 이 인스턴스를 참조할 수 있는 주소지를 stack에서 보관합니다. 후에 인스턴스를 참조하려면 stack에 보관한 주소를 이용하여 찾아갑니다.

그런데 static은 이 일반적인 법칙에서 조금 바뀝니다. static 객체는 아무리 new Xxx()로 인스턴스화 하더라도 단 하나의 같은 객체를 참조하게 됩니다. static 메서드는 인스턴스에 속한 메서드가 아니라 '클래스에 속한 메서드'라고 표현합니다. 클래스에서 아무리 인스턴스를 만든다 하더라도 static 메서드/필드는 모두 똑같은 주소를 가르키게 됩니다.

감사합니다.

..

0

76

2

Unused property.....

0

101

2

project JDK is misconfigured

0

132

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

83

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

230

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

104

2

윈도우 build test오류 질문

1

103

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

101

2

테스트 실행 시 에러 질문

0

292

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

129

1

윈도우 gradlew.bat 에러

0

167

1

@PostMapping("/members/new")가 동작하지 않습니다

0

89

1

java static class와 kotlin class

0

79

1

스프링 DB연결

0

127

1

소요 시간

0

87

2

ddl.sql에 빨간 밑줄

1

102

2

welcome page 에러

0

183

3

잘 모르겠습니다.

0

164

2

fail을 똑같이 쳤는데 오류가 발생해요

0

156

2

index.html Welcome page

0

124

1

프로젝트 gradle-groovy ?

0

369

1

테스트코드 메서드명 한글

0

202

2