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

JiYoung Dev ๐Ÿ–ฅ

[์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ž๋ฐ” ์ž๋ฃŒ๊ตฌ์กฐ, ์„ ํ˜•๊ตฌ์กฐ - ๋ฐฐ์—ด (2023.04.06) ๋ณธ๋ฌธ

full stack/JAVA

[์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ž๋ฐ” ์ž๋ฃŒ๊ตฌ์กฐ, ์„ ํ˜•๊ตฌ์กฐ - ๋ฐฐ์—ด (2023.04.06)

Shinjio 2023. 4. 6. 20:28

๐ŸŽˆ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜

๋‹จ์ˆœ๊ตฌ์กฐ

: 2์ง„์ˆ˜, ์ •์ˆ˜ / ์‹ค์ˆ˜, ๋ฌธ์ž / ๋ฌธ์ž์—ด

์„ ํ˜•๊ตฌ์กฐ

: ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ๋ฑ, ์Šคํƒ, ํ

๋น„์„ ํ˜•๊ตฌ์กฐ

: ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„

ํŒŒ์ผ๊ตฌ์กฐ

: ์ˆœ์ฐจ ํŒŒ์ผ, ์„น์…˜ ํŒŒ์ผ, ์ง์ ‘ ํŒŒ์ผ

 

๐ŸŽˆ ์„ ํ˜•๊ตฌ์กฐ์™€ ๋น„์„ ํ˜•๊ตฌ์กฐ

๐Ÿ“– ์„ ํ˜•๊ตฌ์กฐ 

์ž๋ฃŒ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚˜์—ด์‹œํ‚จ ํ˜•ํƒœ

ex. ๋ฆฌ์ŠคํŠธ(๋ฐฐ์—ด), ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ๋ฑ, ์Šคํƒ, ํ

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ
๋ฆฌ์ŠคํŠธ์™€ ๋‹ฌ๋ฆฌ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋“ค์˜ ์•ž/๋’ค๋กœ ๋‹ค์Œ์— ๋‚˜์™€์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์–ด๋””์— ์กด์žฌํ•˜๋Š”์ง€ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ์ž์‹ ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์Œ ๊ฐ’์„ ์ฐพ์Œ

๋ฑ/์Šคํƒ/ํ 
๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜. ์Šคํƒ์€ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ์ผ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ์ธ ๋ฐ˜๋ฉด, ํ๋Š” ์ œ์ผ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ์ผ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ

 

๐Ÿ“– ๋น„์„ ํ˜•๊ตฌ์กฐ

ํ•˜๋‚˜์˜ ์ž๋ฃŒ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž๋ฃŒ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

ex 1. ํŠธ๋ฆฌ

ํด๋” ๊ตฌ์กฐ์—์„œ ๋งŽ์ด ์“ฐ์ด๋ฉฐ, ๋ฃจํŠธ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๊ฐ€์ง€๋กœ ๋ป—์–ด๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ.

ํ•˜๋‚˜์˜ ์ž๋ฃŒ ์•ˆ์— ๋˜๋‹ค๋ฅธ ์ž๋ฃŒ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ ์ž๋ฃŒ ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ์ž๋ฃŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ.

ex 2. ๊ทธ๋ž˜ํ”„

๊ฐ€์ง€๋งŒ ๋ป—์–ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŠธ๋ฆฌ์™€ ๋‹ฌ๋ฆฌ ์ˆœํ™˜์ด ๊ฐ€๋Šฅํ•จ

 

๐ŸŽˆ ๋ฆฌ์ŠคํŠธ(๋ฐฐ์—ด)

์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„

๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฐ™์€ ํ˜•ํƒœ๋งŒ ๊ฐ€๋Šฅ 

๋‹จ์ 

- ํฌ๊ธฐ ์ง€์ •์ด ํ•„์ˆ˜ → ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•จ / ๊ณ ์ • ํฌ๊ธฐ ์ด์ƒ์˜ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.

- ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… ํ˜น์€ ์‚ญ์ œํ•˜๋ ค๋ฉด ์ผ์ผ์ด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ์ค˜์•ผ ํ•จ. 

 

๐ŸŽˆ ์ปฌ๋ ‰์…˜(Collection)

์œ„์™€ ๊ฐ™์€ ๋ฐฐ์—ด์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

์š”์†Œ(element)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ๊ฐ์ฒด๋“ค์˜ ๋ชจ์Œ → ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณ€๋™ํ•  ์ˆ˜ ์žˆ์Œ

์š”์†Œ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ์ž๋™ ํฌ๊ธฐ ์กฐ์ ˆ

์‚ฝ์ž… ์‚ญ์ œ์— ๋”ฐ๋ฅธ ์š”์†Œ์˜ ์ž๋ฃŒ ์ด๋™ ์ž๋™ ๊ด€๋ฆฌ

 

๐Ÿ“– ์ปฌ๋ ‰์…˜์˜ ์ข…๋ฅ˜ : ๋ฆฌ์ŠคํŠธ(list) & ์…‹(set)

๋ฆฌ์ŠคํŠธ(List) → ์ˆœ์„œ๊ฐ€ ์žˆ์Œ (์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ๋ฒกํ„ฐ, ArrayList ๋“ฑ) 

์…‹(Set) - ์ˆœ์„œ๊ฐ€ ์—†์Œ (HashSet, SortedSet)

 

 ๐Ÿ“– ArrayList<E>

๋ฐฐ์—ด์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ์ปฌ๋ ‰์…˜์—์„œ ์ œ๊ณต

๊ฐ€๋ณ€๊ฐœ์ˆ˜(๊ฐœ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ)

๊ฐ€๋ณ€ ํฌ๊ธฐ ๋ฐฐ์—ด์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค

 

โš™๏ธ ArrayList<E> ์ œ๋„ค๋ฆญ (E : element , ์š”์†Œ์˜ ํ˜•ํƒœ)

ํŠน์ง•

1. ๊ฐ™์€ ํ˜•ํƒœ๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

๋ฐฐ์—ด : int[] / String[] / char[] →  ArrayList<E> : ArrayList<integer>, ArrayList<String>

* ArrayList<>๋„ ๊ฐ€๋Šฅ

→ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋“ ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ 

→ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋˜๋ฉด ๊ทธ ๋•Œ ArrayList ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๋ฅผ ํ™•์ธ 

    ์‹คํ–‰์„ ํ–ˆ์„ ๋•Œ ํ˜•ํƒœ ์ง€์ •

     ๋งŒ์•ฝ, ๋ฌด์กฐ๊ฑด ArrayList์—๋Š” ์ •์ˆ˜ํ˜•๋งŒ ๋„ฃ์„๊ฑฐ์•ผ, ๋‹ค๋ฅธ ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ฒŒ ํ• ๊ฑฐ๋ฉด ArrayList<integer>๋กœ ์ž‘์„ฑ

** ๋ฐฐ์—ด์€ ํ˜•ํƒœ๊ฐ€ ์ด๋ฏธ ์ •์˜๊ฐ€ ๋˜์–ด ์žˆ์Œ → ์ปดํŒŒ์ผ ์ „์— ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ  ์˜ค๋ฅ˜ ํ™•์ธ ๊ฐ€๋Šฅ

2. ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ์„ ์–ธ์‹œ ํฌ๊ธฐ ์ง€์ • ๊ฐ€๋Šฅ 

  - ๋ฆฌ์ŠคํŠธ์˜ ๋งจ ๋’ค์— ๊ฐ์ฒด ์ถ”๊ฐ€ (๊ณต๊ฐ„์ด ๋ชจ์ž๋ผ๋ฉด ์ž๋™ ๋Š˜๋ฆผ)

  - ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„์— ๊ฐ์ฒด ์‚ฝ์ž… → ์‚ฝ์ž…๋œ ๋’ค์˜ ๊ฐ์ฒด๋Š” ๋’ค๋กœ ํ•˜๋‚˜์”ฉ ์ด๋™

  - ์ž„์˜์˜ ์œ„์น˜์— ์žˆ๋Š” ๊ฐ์ฒด ์‚ญ์ œ ๊ฐ€๋Šฅ → ๊ฐ์ฒด ์‚ญ์ œ ํ›„ ์ž๋ฆฌ ์ด๋™. 

    (ArrayList์— ๋นˆ๊ฐ’์€ ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ์•„๋ฌด๊ฒƒ๋„ ๋„ฃ์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ) 

 - ๊ณต๊ฐ„์„ ๋Š˜๋ฆด ์‹œ ๊ธฐ์กด ๋ฉ”๋ชจ๋ฆฌ ๋’ค์˜ ๊ณต๊ฐ„์„ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹˜. ๋‹ค๋ฅธ ๋” ๋„“์€ ๊ณต๊ฐ„์„ ์ฐพ์•„์„œ ์›๋ž˜ ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋Š” ์ž๋™ ๋ณต์‚ฌํ•ด์„œ ์˜ฎ๊น€. → ํฌ๊ธฐ๋ฅผ ๋„‰๋„‰ํ•˜๊ฒŒ ๋ฏธ๋ฆฌ ์žก์•„์„œ ๋ณต์‚ฌ์˜ ์ˆ˜๋ฅผ ์ค„์ด๋„๋ก...

 

ArrayList<String> al = new ArrayList<String>(7)
ArrayList<์ž๋ฃŒํ˜•> ๋ณ€์ˆ˜๋ช… = new <์š”์†Œ์˜ํ˜•ํƒœ>(์ดˆ๊ธฐํฌ๊ธฐ)

- ์ดˆ๊ธฐ ํฌ๊ธฐ๋Š” ์ƒ๋žต์‹œ ๊ธฐ๋ณธ๊ฐ’์€ 10

- new ArrayList : ํž™ ์˜์—ญ์— ์ €์žฅ → ์ฝ”๋“œ ์ƒ ๋ฐ”๋กœ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ
- ArrayList<String> al : ์ฐธ์กฐ๊ฐ’(๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜)๋ฅผ ์Šคํƒ ์˜์—ญ์— ์ €์žฅ

 

โš™๏ธ ArrayList์˜ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ

 

 

 

int ์ž๋ฃŒํ˜•์„ ์“ฐ๊ณ  ์‹ถ์œผ๋ฉด Integer ํด๋ž˜์Šค(๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ. 

boolean, char ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋ณธํƒ€์ž…์ด ์•„๋‹Œ ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…์œผ๋กœ ๋„ฃ์–ด์ค˜์•ผ ํ•จ. 

 

 

MusicPlayList ๋งŒ๋“ค๊ธฐ

point 1) menu ๋ณ€์ˆ˜ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฐ€๋Šฅ

point 2) ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ๊ฐ€ 1๋ฒˆ ์„ ํƒํ–ˆ์„ ๋•Œ, 2๋ฒˆ ์„ ํƒํ–ˆ์„ ๋•Œ ์ค‘๋ณต ์ถœ๋ ฅ → ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉ