inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

map<Long,Member>를 넣은 이유가 궁금합니다!

714

wjdtlr0604

작성한 질문수 3

1

Member class에는 long id, String name을 가지고 있어서

id값에 Long을 주는건 이해가 되는데

name값을  넣어주려면 Member가 아니라 String이 들어가야되는게 아닌가요??

잘 이해가 안되서 설명 부탁드리겠습니다!

java spring spring-boot MVC

답변 1

12

나무늘보

안녕하세요.

Map<Long, Member> store; 부분을 이해하기 위해서 예를 하나 들겠습니다.

.

Member 대신 살아서 움직이는 계란(?)을 생각해주세요. 계란은 각자 고유번호와 이름을 가지고 있습니다. 이 고유번호는 계란 각자만이 알고 있습니다.

> 계란1: 나는 1번 계란, 이름은 "후라이".

> 계란2: 나는 2번 계란, 이름은 "찜".

.

이제 이 계란들을 계란판에 넣어서 보관하려 합니다.

그런데 계란이 계란판에 들어가려면 계란판 입구에서 '점원'에게 자신의 고유번호를 말해줘야 하는 규칙이 있습니다.

> 점원: 네, 다음분. 아이디가 어떻게 되시죠?

> 계란1: 네 저는 1번이에요.

> 점원: (종이에 아이디를 적으며) 네. 1번이시고... 그리고 계란 맞으시죠?

> 계란1: 당근이죠!

> 점원: 네, 들어가세요.

.

그런식으로 계란들이 각자 자리를 잡고 앉아있습니다.

이 계란판은 자바 코드로 Map<Long, 계란> 이라고 표현할 수 있습니다.

왜 점원은 굳이 불편하게 아이디를 말해달라고 했을까요?

그것은 만약 계란판에서 계란을 꺼내야 할 때 필요한 계란을 단번에 찾아내기 위해서입니다.

.

예를들어 2번 계란을 급하게 찾아야 할 때 점원은 다음과 같이 아이디를 사용할 수 있습니다.

계란 egg = store.get(2);

System.out.println(egg.getName()); // "찜"

.

만약에 점원이 아이디를 기록하는 것이 아니라계란의 이름을 기록하기로 한 상황이면 어떻게 될까요?

코드는 다음과 같이 바뀔것입니다.

Map<String, 계란> store;

.

그리고 자신이 찾고자 하는 계란을 찾기 위해 다음과 같이 할 수 있습니다.

계란 egg = store.get("후라이");

.

조금 유치한 비유지만 이해가 되셨길 바랍니다.

0

wjdtlr0604

와... 한번에 이해가 됐어요!! 정말 감사합니다!

0

김영한

codesweaver님 감사합니다!

0

논노

넘 귀여운 비유...

..

0

83

2

Unused property.....

0

104

2

project JDK is misconfigured

0

138

2

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

0

84

2

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

0

91

2

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

0

232

1

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

0

105

2

윈도우 build test오류 질문

1

103

2

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

0

102

2

테스트 실행 시 에러 질문

0

295

1

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

0

77

1

빌드 후 libs 없음

1

132

1

윈도우 gradlew.bat 에러

0

170

1

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

0

91

1

java static class와 kotlin class

0

80

1

스프링 DB연결

0

128

1

소요 시간

0

89

2

ddl.sql에 빨간 밑줄

1

102

2

welcome page 에러

0

186

3

잘 모르겠습니다.

0

164

2

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

0

159

2

index.html Welcome page

0

127

1

프로젝트 gradle-groovy ?

0

382

1

테스트코드 메서드명 한글

0

205

2