๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

Repository ์ฝ”๋“œ ์ž‘์„ฑ ์ค‘Java ๋ฌธ๋ฒ• ์ •๋ฆฌ ๋ณธ๋ฌธ

Backend Spring

Repository ์ฝ”๋“œ ์ž‘์„ฑ ์ค‘Java ๋ฌธ๋ฒ• ์ •๋ฆฌ

adorableco 2023. 12. 19. 23:49
๋ฐ˜์‘ํ˜•

Map<Long,Member>

  • key ๋กœ value๋ฅผ ์–ป์–ด๋‚ด๋Š” ๋ฐฉ์‹
  • key ๋Š” ์ค‘๋ณต ํ—ˆ์šฉ โŒ
  • value ๋Š” ์ค‘๋ณต ํ—ˆ์šฉ ๐Ÿ†—
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "Sally");

-> key๊ฐ€ "name"์ด๊ณ , value๊ฐ€ "Sally" ์ธ ๊ฒƒ์„ map์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ

Optional<T>

  • NullPointerException ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด null ๊ฐ’์ด ์˜ค๋ฉด ๊ฐ์‹ธ๋Š” ๊ฒƒ
  • Optional.ofNullable() : ๊ฐ’์ด null ์ด ์™€๋„ ๊ฐ์ฒด ์ƒ์„ฑ
  • Optional.of() : ๊ฐ’์ด null ์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ
  • Optional.empty() : ๊ฐ’์ด ๊ฐ–์ง€ ์•Š๋Š” ๊ฐ์ฒด ์ƒ์„ฑ #### Map ์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ์ฒด ์ฐพ๊ธฐ

 

@Override
public Optional findByName(String name){
	return store.values().stream()
    .filter(member -> member.getName().equals(name))
    .findAny(); }
  1. map.values() : map์˜ ๊ฐ’(collection) ๋“ค์„ ๊ฐ€์ ธ์˜จ๋‹ค. (๊ฐ’์€ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธ)
  2. .stream(): collection์„ stream์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
    • stream() : Collection ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ ํ˜•ํƒœ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ
  3. .filter(member -> member.getName().equals(name)) : getName() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ป์€ ๋ฉค๋ฒ„์˜ ์ด๋ฆ„์ด, ์ฃผ์–ด์ง„ name ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค.
    • ์—ฌ๊ธฐ์„œ member ์€ Map์˜ ๊ฐ ๊ฐ’๋“ค์ด stream์œผ๋กœ ๋ณ€ํ™˜๋œ ๊ฐ’๋“ค์ด๋‹ค. โžก๏ธ ์ง„์งœ Member class๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ์ข…์˜ ์ž„์‹œ ๋ณ€์ˆ˜
  4. .findAny() : ์œ„ ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด(member)์„ Optional ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์—†์œผ๋ฉด ๋นˆ Optional์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•

'Backend Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring] Test Case ์ž‘์„ฑ  (1) 2023.12.20