강의

멘토링

로드맵

Inflearn brand logo image

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

carpediem7490님의 프로필 이미지
carpediem7490

작성한 질문수

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

상품 도메인 개발

제어자 static의 의미

작성

·

317

4

안녕하세요 실습 진행중에 'ItemRepository'클래스에서 선생님께서 멤버변수를 만드실 때 제어자를 'static'으로 사용하셨는데 왜 'static'을 사용하신거죠? 의미를 설명해주셨는데도 이해가 잘 안가서요!

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. carpediem7490님

제가 답변을 바로 드리는 것도 좋지만, 그러면 더 많은 것을 남겨가실 수 없으니 다음과 같이 해보시겠어요?

static은 꼭 알아야 하는 자바 기본 문법입니다. 이 부분을 공부해보시고 static이 어떤 역할을 하는지 정리해서 남겨주세요. 그러면 본인도 그 과정에서 많이 배우고 다른 분들에게도 도움이 될거에요^^

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

static문법은 멤버변수로 쓰일 경우 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 되는 걸로 알고있습니다. 아하! 그렇다면 클래스 ItemRepository안에 있는 인스턴스들(save, findById, findAll, update, clearStore)에 static멤버변수로 선언된 store과 sequence가 사용될 수 있어서 static이 선언된건가요~? 질문드리겠습니다!

김영한님의 프로필 이미지
김영한
지식공유자

static으로 사용하는 이유는 모든 곳에서 공유하기 위해서 입니다. 여기서는 store가 마치 데이터베이스 처럼 사용되기 때문에 하나만 존재하고 공유되어야 합니다.

그런데 ItemRepository가 싱글톤으로 사용되기 때문에 꼭 static을 사용하지 않아도 같은 결과를 얻을 수 있습니다.

추가로 질문주신 클래스 ItemRepository안에 있는 인스턴스들(save, findById, findAll, update, clearStore)에 static멤버변수로 선언된 store과 sequence가 사용될 수 있어서 static이 선언된건가요~? 이 부분과는 무관합니다.

감사합니다.

항상 좋은 강의 감사드립니다! 궁금한 부분이 해당 댓글에 존재해서 여기에 글을 남깁니다.

 

static을 생략해도 같은 결과를 얻을 수 있다면, 왜 사용한지 궁금합니다.

 모든 곳에서 공유하며 사용하는 한다는 것을 알려주기 위해(?) 명시한 것인지에 대한 의문이 듭니다.

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. chlwnsdud121님

싱글톤이 아닌 경우 데이터가 분리됩니다.

감사합니다.

carpediem7490님의 프로필 이미지
carpediem7490

작성한 질문수

질문하기