Post

๐Ÿน chap1. ์ž๋ฐ” 8, 9, 10, 11 : ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”๊ฐ€?

JDK(Java Development Kit) ์ž๋ฐ” ๊ฐœ๋ฐœ ํ‚คํŠธ

1.1 ์—ญ์‚ฌ์˜ ํ๋ฆ„์€ ๋ฌด์—‡์ธ๊ฐ€?

1
2
3
4
5
6
// ์‚ฌ๊ณผ ๋ชฉ๋ก์„ ๋ฌด๊ฒŒ์ˆœ์œผ๋กœ ์ •๋ ฌ
Collections.sort(inventory, new Comparator<Apple>() {
		public int compare(Apple a1, Apple a2) {
				return a1.getWeight().compareTo(a2.getWeight());
		}
});

์ž๋ฐ”8์„ ์ด์šฉํ•˜๋ฉด ์œ„์— ์ฝ”๋“œ๋ฅผ ์ž์—ฐ์–ด์— ๋” ๊ฐ€๊น๊ฒŒ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

1
inventory.sort(comparing(Apple::getWeight));

์ž๋ฐ”๋Š” ๋ณ‘๋ ฌ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์—๋Ÿฌ๊ฐ€ ๋œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ™”ํ•˜๋ ค ๋…ธ๋ ฅํ–ˆ๋‹ค.

  • ์ž๋ฐ” 1.0: ์Šค๋ ˆ๋“œ, ๋ฝ, ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ ์ง€์›
    • ์ด์™€ ๊ฐ™์€ ์ €์ˆ˜์ค€ ๊ธฐ๋Šฅ์„ ์˜จ์ „ํžˆ ํ™œ์šฉํ•˜๊ธฐ๋Š” ์–ด๋ ค์› ์Œ
  • ์ž๋ฐ” 5: ์Šค๋ ˆ๋“œ ํ’€, ๋ณ‘๋ ฌ ์‹คํ–‰ ์ปฌ๋ ‰์…˜ ๋“ฑ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ ๋„์ž…
  • ์ž๋ฐ” 7: ๋ณ‘๋ ฌ ์‹คํ–‰์— ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ํฌํฌ/์กฐ์ธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณต
    • ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ™œ์šฉํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์•˜์Œ

ํ˜์‹ ์˜ ์ž๋ฐ”8

์ž๋ฐ” 8์€ ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ, ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ์˜ ์‰ฌ์šด ํ™œ์šฉ์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ

์ž๋ฐ” 8์—์„œ ์ œ๊ณตํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ 

  • ์ŠคํŠธ๋ฆผ API
  • ๋ฉ”์„œ๋“œ์— ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋ฒ•
  • ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ

[ ์ŠคํŠธ๋ฆผ ]

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์งˆ์˜ ์–ธ์–ด์—์„œ ํ‘œํ˜„์‹์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณ‘๋ ฌ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜๋Š” ์ŠคํŠธ๋ฆผ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด API ์ œ๊ณต

  • SQL์—์„œ ๊ณ ์ˆ˜์ค€ ์–ธ์–ด๋กœ ์›ํ•˜๋Š” ๋™์ž‘์„ ํ‘œํ˜„ํ•˜๋ฉด, ๊ตฌํ˜„์—์„œ ์ตœ์ ์˜ ์ €์ˆ˜์ค€ ์‹คํ–‰๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•จ

    โ†’ ์ŠคํŠธ๋ฆผ์„ ์ด์šฉํ•˜๋ฉด synchronized ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค!

    (synchronized: ์—๋Ÿฌ ์ž์ฃผ ๋ฐœ์ƒ, ๋ฉ€ํ‹ฐ์ฝ”์–ด CPU๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋น„์šฉ ๋น„์Œˆ)

[ ์ŠคํŠธ๋ฆผ ๋•๋ถ„์— ์กด์žฌํ•˜๋Š” 2๊ฐ€์ง€ ๊ธฐ๋Šฅ ]

  • ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐ„๊ฒฐ ๊ธฐ๋ฒ•(๋ฉ”์„œ๋“œ ์ฐธ์กฐ์™€ ๋žŒ๋‹ค)
    • ์•ฝ๊ฐ„๋งŒ ๋‹ค๋ฅธ ๋‘ ๋ฉ”์„œ๋“œ๋ฅผ ์ธ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‹ค๋ฅธ ๋™์ž‘์„ ํ•˜๋„๋ก ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋กœ ํ•ฉ์นœ๋‹ค.

      โ†’ ํ”„๋กœ๊ทธ๋žจ์ด ์งง๊ณ  ๊ฐ„๊ฒฐํ•ด์ง€๊ณ , ๋ถˆํ•„์š”ํ•œ ์—๋Ÿฌ๋„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

  • ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ ์กด์žฌ

์ž๋ฐ”8 ๊ธฐ๋ฒ•์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์œ„๋ ฅ์„ ๋ฐœํœ˜ํ•œ๋‹ค.

1.2 ์™œ ์•„์ง๋„ ์ž๋ฐ”๋Š” ๋ณ€ํ™”ํ•˜๋Š”๊ฐ€?

  • C, C++
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์•ˆ์ „์„ฑ์€ ๋ถ€์กฑํ•˜์ง€๋งŒ ์ž‘์€ ๋Ÿฐํƒ€์ž„ ํ’‹ํ”„๋ฆฐํŠธ ๋•๋ถ„์— ์šด์˜์ฒด์ œ์™€ ๋‹ค์–‘ํ•œ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ์—์„œ ์—ฌ์ „ํžˆ ์ธ๊ธฐ
    • ๋‚ฎ์€ ์•ˆ์ •์„ฑ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ๋ฐ”์ด๋Ÿฌ์Šค ๋“ฑ์ด ์นจํˆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ๊ตฌ๋ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ

โ†’ ๋Ÿฐํƒ€์ž„ ํ’‹ํ”„๋ฆฐํŠธ์— ์—ฌ์œ ๊ฐ€ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ž๋ฐ”, C# ๊ฐ™์ด ์•ˆ์ „ํ•œ ํ˜•์‹์˜ ์–ธ์–ด๊ฐ€ C, C++๋ฅผ ์••๋„ํ•จ

1.2.1 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ƒํƒœ๊ณ„์—์„œ ์ž๋ฐ”์˜ ์œ„์น˜

[ ์ž๋ฐ”์˜ ์‹œ์ž‘ ]

  • ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŽ์€ ์œ ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์ž˜ ์„ค๊ณ„๋œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ์‹œ์ž‘
  • ์ฒ˜์Œ๋ถ€ํ„ฐ ์Šค๋ ˆ๋“œ์™€ ๋ฝ์„ ์ด์šฉํ•œ ์†Œ์†Œํ•œ ๋™์‹œ์„ฑ๋„ ์ง€์›
  • ์ฝ”๋“œ๋ฅผ JVM ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ํŠน์ง•(๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ€์ƒ ๋จธ์‹  ์ฝ”๋“œ๋ฅผ ์ง€์›) ๋•Œ๋ฌธ์— ์ž๋ฐ”๋Š” ์ธํ„ฐ๋„ท ์• ํ”Œ๋ฆฟ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์š” ์–ธ์–ด๊ฐ€ ๋˜์—ˆ๋‹ค.

[ ์ž๋ฐ”๋Š” ์–ด๋–ป๊ฒŒ ๋Œ€์ค‘์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์„ฑ์žฅํ–ˆ๋Š”๊ฐ€? ]

  • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฐ๊ด‘
    1. ์บก์Šํ™” ๋•๋ถ„์— C์— ๋น„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง์ ์ธ ๋ฌธ์ œ๊ฐ€ ํ›จ์”ฌ ์ ์Œ
    2. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ •์‹ ์ ์ธ ๋ชจ๋ธ ๋•๋ถ„์— ์œˆ๋„์šฐ 95 ๋ฐ ๊ทธ ์ดํ›„์˜ WIMP ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์— ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Œ

    โ†’ โ€˜๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด๋‹คโ€™๋กœ ์š”์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

[ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ƒํƒœ๊ณ„์— ๋ณ€ํ™”์˜ ๋ฐ”๋žŒ ]

ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋น…๋ฐ์ดํ„ฐ(TB ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ์…‹)์— ๋„์ „ํ•˜๋ฉด์„œ ๋ฉ€ํ‹ฐ์ฝ”์–ด ์ปดํ“จํ„ฐ๋‚˜ ์ปดํ“จํ„ฐ ํด๋Ÿฌ์ŠคํŒ…์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ํ•„์š”์„ฑ์ด ์ปค์กŒ๊ณ , ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์‹ฑ์„ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ง€๊ธˆ๊นŒ์ง€์˜ ์ž๋ฐ”๋กœ๋Š” ์ถฉ๋ถ„ํžˆ ๋Œ€์‘ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค .

์ž๋ฐ” 8์€ ๋” ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋„๊ตฌ, ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ๋ฅผ ๋” ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ์ œ๊ณตํ•œ๋‹ค.

์ž๋ฐ”8, ์ž๋ฐ”9์—์„œ๋Š” ์™ธ๋ถ€์˜ ํฐ ํ•˜์œ„์‹œ์Šคํ…œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ฒค๋”๊ฐ€ ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋Š˜๊ณ ์žˆ๊ณ , ์ด๋Ÿฐ ์„ค๊ณ„ ์Šคํƒ€์ผ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋””ํดํŠธ ๋ฉ”์†Œ๋“œ์™€ ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•œ๋‹ค.

1.2.2 ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ

์ŠคํŠธ๋ฆผ: ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์”ฉ ๋งŒ๋“ค์–ด์ง€๋Š” ์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๋“ค์˜ ๋ชจ์ž„

[ ์ŠคํŠธ๋ฆผ ํŒจํ‚ค์ง€ ]

  • ์ž๋ฐ” 8์—๋Š” java.util.stream ํŒจํ‚ค์ง€์— ์ŠคํŠธ๋ฆผ API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.
  • ์ŠคํŠธ๋ฆผ ํŒจํ‚ค์ง€์— ์ •์˜๋œ **Stream**๋Š” T ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ผ๋ จ์˜ ํ•ญ๋ชฉ์„ ์˜๋ฏธํ•œ๋‹ค.

[ ์ŠคํŠธ๋ฆผ API ์žฅ์  ]

  • โ€˜์ŠคํŠธ๋ฆผ API๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๋งŽ์€ ๋ฉ”์„œ๋“œ ์ œ๊ณต
  • ๊ธฐ์กด์—๋Š” ํ•œ ๋ฒˆ์— ํ•œ ํ•ญ๋ชฉ์„ ์ฒ˜๋ฆฌํ–ˆ์ง€๋งŒ ์ž๋ฐ” 8์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋ ค๋Š” ์ž‘์—…์„ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์ฒ˜๋Ÿผ) ๊ณ ์ˆ˜์ค€์œผ๋กœ ์ถ”์ƒํ™”ํ•ด์„œ ์ผ๋ จ์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋งŒ๋“ค์–ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ ๋ถ€๋ถ„์„ ์—ฌ๋Ÿฌ CPU ์ฝ”์–ด์— ์‰ฝ๊ฒŒ ํ• ๋‹น ๊ฐ€๋Šฅ

    โ†’ ์Šค๋ ˆ๋“œ๋ผ๋Š” ๋ณต์žกํ•œ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๊ณต์งœ๋กœ ๋ณ‘๋ ฌ์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

1.2.3 ๋™์ž‘ ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋กœ ๋ฉ”์„œ๋“œ์— ์ฝ”๋“œ ์ „๋‹ฌํ•˜๊ธฐ

๋™์  ํŒŒ๋ผ๋ฏธํ„ฐํ™”: ๋ฉ”์„œ๋“œ(์šฐ๋ฆฌ ์ฝ”๋“œ)๋ฅผ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์˜ ์ธ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ธฐ๋Šฅ

  • ๋™์  ํŒŒ๋ผ๋ฏธํ„ฐํ™”์˜ ์˜ˆ์‹œ

    2013UK0001, 2014US0002, โ€ฆ ๋“ฑ์˜ ํ˜•์‹์„ ๊ฐ–๋Š” ์†ก์žฅ ID๊ฐ€ ์žˆ๋‹ค. ์ฒ˜์Œ 4๊ฐœ์˜ ์ˆซ์ž๋Š” ์—ฐ๋„, ๋‹ค์Œ ๋‘ ๊ธ€์ž๋Š” ๊ตญ๊ฐ€ ์ฝ”๋“œ๋ฅผ, ๋งˆ์ง€๋ง‰ 4๊ฐœ์˜ ์ˆซ์ž๋Š” ๊ณ ๊ฐ ID๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด ์†ก์žฅ ID๋ฅผ ๊ณ ๊ฐ ID ๋˜๋Š” ๊ตญ๊ฐ€ ์ฝ”๋“œ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ sort๊ฐ€ ๊ณ ๊ฐ ID๋‚˜ ๊ตญ๊ฐ€ ์ฝ”๋“œ๋กœ ์†ก์žฅ ID๋ฅผ ์ •๋ ฌํ•˜๋„๋ก sort์— ๋”ฐ๋กœ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

    ์†ก์žฅ ID๋ฅผ ๋น„๊ตํ•˜๋Š” compareUsingCustomerId ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ sort ๋ฉ”์„œ๋“œ์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•ด์ค€๋‹ค. ์ด๋ฅผ ๋™์  ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋ผ๊ณ  ํ•œ๋‹ค.

1.2.4 ๋ณ‘๋ ฌ์„ฑ๊ณผ ๊ณต์œ  ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ

์„œ๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ๋•Œ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณต์œ ๋œ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

โ†’ ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ์ˆœ์ˆ˜ ํ•จ์ˆ˜, ๋ถ€์ž‘์šฉ ์—†๋Š” ํ•จ์ˆ˜, ์ƒํƒœ ์—†๋Š” ํ•จ์ˆ˜๋ผ ๋ถ€๋ฅธ๋‹ค.

[ ๋ณ‘๋ ฌ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ ]

๊ณต์œ ๋œ ๋ณ€์ˆ˜๋‚˜ ๊ฐ์ฒด๊ฐ€ ์žˆ์œผ๋ฉด ๋ณ‘๋ ฌ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ ๋œ ๋ณ€์ˆ˜๋ฅผ ๋™์‹œ์— ๋ฐ”๊พธ๋ ค ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

  • ๊ธฐ์กด์ฒ˜๋Ÿผ synchronized๋ฅผ ์ด์šฉํ•ด์„œ ๊ณต์œ ๋œ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๊ทœ์น™์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

    โ†’ ์ผ๋ฐ˜์ ์œผ๋กœ synchronized๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์— ์•…์˜ํ–ฅ์„ ๋ฏธ์นจ

    ๋‹ค์ค‘ ํ”„๋กœ์„ธ์‹ฑ ์ฝ”์–ด์—์„œ synchronized๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ณ‘๋ ฌ์ด๋ผ๋Š” ๋ชฉ์ ์„ ๋ฌด๋ ฅํ™”์‹œํ‚ค๋ฉด์„œ ํ›จ์”ฌ ๋” ๋น„์‹ผ ๋Œ€๊ฐ€๋ฅผ ์น˜๋Ÿฌ์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ž๋ฐ” 8 ์ŠคํŠธ๋ฆผ์„ ์ด์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ ์ž๋ฐ” ์Šค๋ ˆ๋“œ API๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋ณ‘๋ ฌ์„ฑ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

1.2.5 ์ž๋ฐ”๊ฐ€ ์ง„ํ™”ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

[ ์ž๋ฐ”์˜ ์ง„ํ™” ]

  • ์ œ๋„ค๋ฆญ(generic)์˜ ๋“ฑ์žฅ
  • List โ†’ List
  • ํ‹€์— ๋ฐ•ํžŒ Iterator ๋Œ€์‹  for-each ๋ฃจํ”„ ์‚ฌ์šฉ

๊ธฐ์กด ๊ฐ’์„ ๋ณ€ํ™”์‹œํ‚ค๋Š” ๋ฐ ์ง‘์ค‘ํ–ˆ๋˜ ๊ณ ์ „์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ๋ฒ—์–ด๋‚˜ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋‹ค๊ฐ€์„ฐ๋‹ค๋Š” ๊ฒƒ์ด ์ž๋ฐ” 8์˜ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”๋‹ค.

[ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ]

  • ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋ ค๋Š” ์ž‘์—…์ด ์ตœ์šฐ์„ ์‹œ ๋˜๋ฉฐ ๊ทธ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€๋Š” ๋ณ„๊ฐœ์˜ ๋ฌธ์ œ๋กœ ์ทจ๊ธ‰
  • ์ „ํ†ต์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ๋Š” ์ƒ๊ทน
  • ์ž๋ฐ” 8์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„์ž…ํ•จ์œผ๋กœ์จ ๋‘ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ์žฅ์ ์„ ๋ชจ๋‘ ํ™œ์šฉ

1.3 ์ž๋ฐ” ํ•จ์ˆ˜

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’(์ผ๊ธ‰ ๊ฐ’)

  • int ํ˜•์‹, double ํ˜•์‹ ๋“ฑ์˜ ๊ธฐ๋ณธ ๊ฐ’
  • ๊ฐ์ฒด(๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’) - ๊ฐ์ฒด ์ฐธ์กฐ๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
    • new ๋˜๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ์ฒด์˜ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

1.3.1 ๋ฉ”์„œ๋“œ์™€ ๋žŒ๋‹ค๋ฅผ ์ผ๊ธ‰ ์‹œ๋ฏผ์œผ๋กœ

์ž๋ฐ” 8์—์„œ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ๋” ์‰ฝ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด ์ œ๊ณต๋˜๋„๋ก ์ž๋ฐ” 8์„ ์„ค๊ณ„ํ•จ

[ ๋ฉ”์„œ๋“œ ์ฐธ์กฐ ๊ธฐ๋Šฅ ]

ex) ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋“  ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

์œ„์˜ ์ฝ”๋“œ๋Š” ๊ฐ ํ–‰์ด ๋ฌด์Šจ ์ž‘์—…์„ ํ•˜๋Š”์ง€ ํˆฌ๋ช…ํ•˜์ง€ ์•Š๋‹ค. ์ด๋ฏธ isHidden() ์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ตณ์ด FileFilter๋กœ ๋ณต์žกํ•˜๊ฒŒ ๊ฐ์‹ผ ํ›„ FileFilter๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•ด์•ผํ•˜๋‚˜? ์ด๊ฒƒ์„ ์ž๋ฐ” 8์—์„œ๋Š” ์•„๋ž˜ ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค

์ž๋ฐ” 8์˜ ๋ฉ”์„œ๋“œ ์ฐธ์กฐ ::๋ฅผ ์ด์šฉํ•˜์—ฌ listFiles์— ์ง์ ‘ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด์— ๋น„ํ•ด ๋ฌธ์ œ ์ž์ฒด๋ฅผ ๋” ์ง์ ‘์ ์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค๋Š” ์ ์ด ์ž๋ฐ” 8 ์ฝ”๋“œ์˜ ์žฅ์ ์ด๋‹ค.

์ž๋ฐ” 8์—์„œ๋Š” ๊ธฐ๋ช… ๋ฉ”์„œ๋“œ์™€ ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

1.3.2 ์ฝ”๋“œ ๋„˜๊ฒจ์ฃผ๊ธฐ : ์˜ˆ์ œ

Apple ํด๋ž˜์Šค์™€ getColor ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๊ณ , Apples ๋ฆฌ์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ณ€์ˆ˜ inventory๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

์ด๋•Œ ๋ชจ๋“  ๋…น์ƒ‰ ์‚ฌ๊ณผ๋ฅผ ์„ ํƒํ•ด์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•œ๋‹ค.(ํ•„ํ„ฐ)

  • ์ž๋ฐ” 8 ์ด์ „ filterGreenApples

    ์‚ฌ๊ณผ ๋ฌด๊ฒŒ๋กœ ํ•„ํ„ฐ๋ง ํ•˜๊ณ ์‹ถ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

    ์ฒซ๋ฒˆ์งธ ์ฝ”๋“œ๋ฅผ ๋ณต๋ถ™ํ•˜์—ฌ ์œ„ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™์ ์ธ ๋ฉด์—์„œ ํ•ด๋‹น ์ฝ”๋“œ์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณต๋ถ™ํ•œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๊ณ ์ณ์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

  • ์ž๋ฐ” 8 ์ดํ›„

    ์ฝ”๋“œ๋ฅผ ์ธ์ˆ˜๋กœ ๋„˜๊ฒจ์ค„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ filter ๋ฉ”์„œ๋“œ๋ฅผ ์ค‘๋ณต์œผ๋กœ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

    ๋‹ค์Œ์ฒ˜๋Ÿผ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

1.3.3 ๋ฉ”์„œ๋“œ ์ „๋‹ฌ์—์„œ ๋žŒ๋‹ค๋กœ

๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ์œ ์šฉํ•˜์ง€๋งŒ, ํ•œ๋‘ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๋ฒˆ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๊ท€์ฐฎ์€ ์ผ์ด๋‹ค.

์ž๋ฐ” 8์—์„œ ๋žŒ๋‹ค(์ต๋ช… ํ•จ์ˆ˜)๋ฅผ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ๋ฉ”์„œ๋“œ๋Š” ๋”ฐ๋กœ ์ •์˜๋ฅผ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

ํ•˜์ง€๋งŒ ๋žŒ๋‹ค๊ฐ€ ๋ช‡ ์ค„ ์ด์ƒ์œผ๋กœ ๊ธธ์–ด์ง„๋‹ค๋ฉด, ์ต๋ช… ๋žŒ๋‹ค๋ณด๋‹ค๋Š” ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ์„ ์ž˜ ์„ค๋ช…ํ•˜๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฉ”์„œ๋“œ ์ฐธ์กฐ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค. (์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ ์šฐ์„ )

1.4 ์ŠคํŠธ๋ฆผ

์ปฌ๋ ‰์…˜์€ ์ž๋ฐ”์—์„œ ๋Œ€๋ถ€๋ถ„ ๋งŒ๋“ค์–ด ํ™œ์šฉํ•˜์ง€๋งŒ, ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌ์ŠคํŠธ์—์„œ ๊ณ ๊ฐ€์˜ ํŠธ๋žœ์žญ์…˜(๊ฑฐ๋ž˜)๋งŒ ํ•„ํ„ฐ๋งํ•œ ๋‹ค์Œ์— ํ†ตํ™”๋กœ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ฃนํ™”ํ•ด์•ผ ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŽ์€ ๊ธฐ๋ณธ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ์œ„ ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ ์ค‘์ฒฉ๋œ ์ œ์–ด ํ๋ฆ„ ๋ฌธ์žฅ์ด ๋งŽ์•„์„œ ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ์ดํ•ดํ•˜๊ธฐ๋„ ์–ด๋ ต๋‹ค.

์ŠคํŠธ๋ฆผ API๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ŠคํŠธ๋ฆผ API๋ฅผ ์ด์šฉํ•˜๋ฉด ์ปฌ๋ ‰์…˜ API์™€๋Š” ์ƒ๋‹นํžˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ปฌ๋ ‰์…˜์—์„œ๋Š” ๋ฐ˜๋ณต๊ณผ์ •์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ๋‹ค(for-each ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด ๊ฐ ์š”์†Œ ๋ฐ˜๋ณต ์ž‘์—…). ์ด๋ฅผ ์™ธ๋ถ€ ๋ฐ˜๋ณต์ด๋ผ ํ•œ๋‹ค.
  • ์ŠคํŠธ๋ฆผ API๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฃจํ”„๋ฅผ ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ŠคํŠธ๋ฆผ API์—์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด๋ถ€์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋œ๋‹ค. ์ด๋ฅผ ๋‚ด๋ถ€ ๋ฐ˜๋ณต์ด๋ผ๊ณ  ํ•œ๋‹ค.

[ ๋ฉ€ํ‹ฐ์ฝ”์–ด ์ปดํ“จํ„ฐ ]

๋‹จ์ผ CPU๊ฐ€ ์•„๋‹Œ 4 ๋˜๋Š” 8๊ฐœ ์ด์ƒ์˜ CPU๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ „ํ†ต์  ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ๋งŽ์€ CPU ์ค‘ ๋‹จ ํ•˜๋‚˜๋งŒ์„ ์‚ฌ์šฉํ•ด ๋‚˜๋จธ์ง€ CPU๋ฅผ ๋‚ญ๋น„์‹œํ‚ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฐ” 8์—์„œ๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•œ๋‹ค.

1.4.1 ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์€ ์–ด๋ ต๋‹ค

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋ณ‘๋ ฌ์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์Šค๋ ˆ๋“œ๋ฅผ ์ž˜ ์ œ์–ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ์›์น˜์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋ชจ๋ธ์€ ์ˆœ์ฐจ์ ์ธ ๋ชจ๋ธ๋ณด๋‹ค ๋‹ค๋ฃจ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค

์œ„๋Š” ๋‘ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ์ ˆํžˆ ์ œ์–ด๋˜์ง€ ์•Š์•˜์„ ๋•Œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ž๋ฐ” 8์˜ ์ŠคํŠธ๋ฆผ API๋กœ โ€™์ปฌ๋ ‰์…˜์„ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจํ˜ธํ•จ๊ณผ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ ๋ฌธ์ œโ€™ ๊ทธ๋ฆฌ๊ณ  โ€˜๋ฉ€ํ‹ฐ์ฝ”์–ด ํ™œ์šฉ ์–ด๋ ค์›€โ€™์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ํ•ด๊ฒฐํ–ˆ๋‹ค.

๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด(SQL๊ณผ ๊ฐ™์€ DB ์ฟผ๋ฆฌ์™€ ๋น„์Šทํ•œ)์„ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋ง ํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

  1. ํฌํ‚น ๋‹จ๊ณ„: ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•„ํ„ฐ๋งํ•  ๋•Œ ํ•œ CPU๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์•ž๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋‹ค๋ฅธ CPU๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋’ท๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์š”์ฒญ
  2. ํ•„ํ„ฐ ๋‹จ๊ณ„: ๊ฐ๊ฐ์˜ CPU๋Š” ์ž์‹ ์ด ๋งก์€ ์ ˆ๋ฐ˜์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  3. ๊ฒฐ๊ณผ ํ•ฉ์นจ: ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•˜๋‚˜์˜ CPU๊ฐ€ ๋‘ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.

์ŠคํŠธ๋ฆผ์€ ์ŠคํŠธ๋ฆผ ๋‚ด์˜ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.

์ปฌ๋ ‰์…˜์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์€ ์ปฌ๋ ‰์…˜์„ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ฐ”๊พธ๊ณ , ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ์—, ๋ฆฌ์ŠคํŠธ๋กœ ๋‹ค์‹œ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ˆœ์ฐจ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ์ฝ”๋“œ

  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ์ฝ”๋“œ

1.5 ๋””ํดํŠธ ๋ฉ”์„œ๋“œ์™€ ์ž๋ฐ” ๋ชจ๋“ˆ

์š”์ฆ˜์€ ์™ธ๋ถ€์—์„œ ๋งŒ๋“ค์–ด์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด์šฉํ•ด ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. ์ด์ „ ์ž๋ฐ”์—์„œ๋Š” ํ‰๋ฒ”ํ•œ ํŒจํ‚ค์ง€ ์ง‘ํ•ฉ์„ ํฌํ•จํ•˜๋Š” JAR ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ „๋ถ€์˜€๊ณ , ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ”๊พธ๋Š” ์ƒํ™ฉ์—์„œ ๋ชจ๋“  ํด๋ž˜์Šค์˜ ๊ตฌํ˜„์„ ๋ฐ”๊ฟ”์•ผ ํ–ˆ์œผ๋ฏ€๋กœ ์—„์ฒญ๋‚œ ๋น„์šฉ์ด ๋“ค์—ˆ๋‹ค.

์ž๋ฐ” 8๊ณผ ์ž๋ฐ” 9์—์„œ ์ด๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.

  • ์ž๋ฐ” 9: ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์€ ๋ชจ๋“ˆ์„ ์ •์˜ํ•˜๋Š” ๋ถ„๋ฒ•์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์ด์šฉํ•ด ํŒจํ‚ค์ง€ ๋ชจ์Œ์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“ˆ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“ˆ ๋•๋ถ„์— JAR ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ์— ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฌธ์„œํ™”์™€ ๋ชจ๋“ˆ ํ™•์ธ ์ž‘์—…์ด ์šฉ์ดํ•ด์กŒ๋‹ค.
  • ์ž๋ฐ” 8: ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋„๋ก ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค.

์ž๋ฐ” 8์€ ๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

๋ฉ”์„œ๋“œ ๋ณธ๋ฌธ์€ ํด๋ž˜์Šค ๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ถ€๋กœ ํฌํ•จ๋œ๋‹ค. โ†’ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

[ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ ]

  • ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ ์›๋ž˜์˜ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ž๋ฐ” 8์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ทœ๊ฒฉ๋ช…์„ธ์— default๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค.

ex) ์ž๋ฐ” 8์—์„œ๋Š” List์— ์ง์ ‘ sort ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค (List ์ธํ„ฐํŽ˜์ด์Šค์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ ์ •์˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. โ†’ ์ด ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋Š” ์ •์  ๋ฉ”์„œ๋“œ์ธ Collections.sort๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.)

๋”ฐ๋ผ์„œ ์ž๋ฐ” 8 ์ด์ „์—๋Š” List๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๊ฐ€ sort๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์ง€๋งŒ ์ž๋ฐ” 8๋ถ€ํ„ฐ๋Š” ๋””ํดํŠธ sort๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์—์„œ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. โ†’ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋‹ค์ค‘ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋‹ค์ค‘ ์ƒ์†์ด ํ—ˆ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์ธ๊ฐ€?

โ‡’ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋‹ค์ค‘ ์ƒ์†์€ ์•„๋‹ˆ์ง€๋งŒ ์–ด๋Š ์ •๋„๋Š” โ€˜๊ทธ๋ ‡๋‹คโ€™๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

1.6 ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์ ธ์˜จ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ์•„์ด๋””์–ด

[ null์„ ํšŒํ”ผํ•˜๋Š” ๊ธฐ๋ฒ• ]

์ž๋ฐ” 8์—์„œ๋Š” NullPointer ์˜ˆ์™ธ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” **Optional** ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

  • **Optional**
    • ๊ฐ’์„ ๊ฐ–๊ฑฐ๋‚˜ ๊ฐ–์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ์ฒด
    • ๊ฐ’์ด ์—†๋Š” ์ƒํ™ฉ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฉ”์„œ๋“œ ํฌํ•จ
This post is licensed under CC BY 4.0 by the author.