Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ฝ”๋“œ์Šค์ฟผ๋“œ ์ฝ”์ฝ”์•„] ๊ฐœ์ธํ”„๋กœ์ ํŠธ 4์ผ์ฐจ(๋งˆ์ง€๋ง‰) ๋ณธ๋ฌธ

Records/Codesquad - cocoa Java

[์ฝ”๋“œ์Šค์ฟผ๋“œ ์ฝ”์ฝ”์•„] ๊ฐœ์ธํ”„๋กœ์ ํŠธ 4์ผ์ฐจ(๋งˆ์ง€๋ง‰)

๋น„๋น„ bibi 2020. 12. 4. 02:05

๋‚ด์ผ ์˜ค์ „์ด ๋ฐœํ‘œ์ผ์ด๋ฏ€๋กœ ์˜ค๋Š˜ ์ €๋…๊นŒ์ง€ ์—ด์‹ฌํžˆ ํ•ด์„œ ๋‚จ์€ ๋กœ์ง ๊ตฌํ˜„ํ•˜๊ณ , ๋งˆ๋ฌด๋ฆฌ ์ž‘์—…์„ ํ•ด์•ผ๊ฒ ๋‹ค.
ํ™”์ดํŒ…!๐Ÿ’ช

 

โœ… ์˜ค๋Š˜ ํ•  ์ผ

- ๋ฒ ์ด์Šค ํ•˜์œ„ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ๋„ ๊ฒ€์ƒ‰๋˜๋„๋ก ๊ตฌํ˜„ !

 : ์นดํ…Œ๊ณ ๋ฆฌ ํ•ด์‰ฌ๋งต์˜ key๋กœ value๊ฐ’ ๊ฒ€์ƒ‰
 '์ปคํ”ผ'์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒํ•˜๋ฉด '์ž๋ชจ์นด'๊ฒฐ๊ณผ๋„ ๋‚˜์™€์•ผ ํ•˜๊ณ ,
 '๊ฒฌ๊ณผ๋ฅ˜'์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒํ•˜๋ฉด 'ํ˜ธ๋‘'๊ฒฐ๊ณผ๋„ ๋‚˜์™€์•ผ ํ•จ.

-> ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฐฉ์‹์„ ์ƒ๊ฐํ•ด๋ดค๋Š”๋ฐ, filterBase๋ฉ”์†Œ๋“œ์— ํ•„ํ„ฐ๋งํ•  ๋ฒ ์ด์Šค ๋ชฉ๋ก์— ํ•จ๊ป˜ ๋‹ด์•„์„œ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒŒ ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ผ ๊ฒƒ ๊ฐ™๋‹ค.
transferBaseInput()์—์„œ ํ•˜์œ„์นดํ…Œ๊ณ ๋ฆฌ๊นŒ์ง€ ์ฐพ์•„ ๋‹ด์•„์„œ ๋ณด๋‚ด์ฃผ๊ธฐ๋กœํ–ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋ช…๋„ ๋ฐ”๊ฟ”์•ผ๊ฒ ๋‹ค.
(์™„๋ฃŒ)

- ์‹œ๋Ÿฝ, ํ† ํ•‘์—๋„ ๋˜‘๊ฐ™์€ ํ•„ํ„ฐ๋ง ๊ตฌํ˜„!

(์™„๋ฃŒ)

- ๊ฒ€์ƒ‰๊ฒฐ๊ณผ์— ๋ฒ ์ด์Šค, ํ† ํ•‘, ์‹œ๋Ÿฝ ๊ต์ง‘ํ•ฉ๋งŒ ์ถœ๋ ฅ๋˜๋„๋ก ๊ตฌํ˜„!

 ์„ ํƒํ•œ ๋ฒ ์ด์Šค, ํ† ํ•‘, ์‹œ๋Ÿฝ์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ์•„์ด์Šคํฌ๋ฆผ๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ.
 -> ์˜ค๋Š˜ ๋ฐฐ์šด ์ค‘๋ณต์ œ๊ฑฐ๋ฉ”์„œ๋“œ๋ฅผ ์‘์šฉํ•ด์•ผ๊ฒ ๋‹ค.
  ๋ฒ ์ด์Šคํ•„ํ„ฐ๋ง๊ฒฐ๊ณผ/ํ† ํ•‘ํ•„ํ„ฐ๋ง๊ฒฐ๊ณผ/์‹œ๋Ÿฝํ•„ํ„ฐ๋ง๊ฒฐ๊ณผ ์— ๋ชจ๋‘ ์žˆ๋Š” ์•„์ด์Šคํฌ๋ฆผ์ผ๋•Œ๋งŒ ์ƒˆ๋กœ์šด ๊ฒฐ๊ณผ๊ฐ’๋ฐฐ์—ด์— ๋‹ด๊ธฐ.
-> ๊ต์ง‘ํ•ฉ ์ฐพ์€ ํ›„ ์ค‘๋ณต์ œ๊ฑฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

-> ์œ„ ๋ฐฉ์‹๋Œ€๋กœ ํ•˜๋‹ˆ ๋ฒ ์ด์Šค/ํ† ํ•‘/์‹œ๋Ÿฝ ์ค‘ ์„ ํƒํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ๋ฌด์กฐ๊ฑด ๊ฒฐ๊ณผ๊ฐ€ 0์ด ๋‚˜์™€๋ฒ„๋ฆฐ๋‹ค. 
์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ ์ด์Šค๋งŒ ์„ ํƒํ•˜๊ณ  ํ† ํ•‘,์‹œ๋Ÿฝ ์„ ํƒ์„ ์•ˆ ํ•˜๋ฉด
์ตœ์ข…๊ฒฐ๊ณผ๊ฐ’ = ๋ฒ ์ด์Šค,ํ† ํ•‘,์‹œ๋Ÿฝ์˜ ๊ต์ง‘ํ•ฉ ์œผ๋กœ ๊ตฌํ•˜๊ณ  ์žˆ๋Š”๋ฐ
๋ฒ ์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์—ฌ๋„ ํ† ํ•‘,์‹œ๋Ÿฝ์ด 0๊ฐœ์ด๋ฏ€๋กœ ๊ต์ง‘ํ•ฉ์ด ์—†๊ธฐ ๋–„๋ฌธ.

3๊ฐœ ๋‹ค ์„ ํƒ์‹œ์—๋งŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฒ ์ด์Šค&ํ† ํ•‘&์‹œ๋Ÿฝ ์„ธ ๊ฐœ์˜ ๊ต์ง‘ํ•ฉ์œผ๋กœ ๊ตฌํ•˜๊ณ , 
 (๋ฒ ์ด์Šค,ํ† ํ•‘,์‹œ๋Ÿฝ ํ•„ํ„ฐ๋ง๊ฒฐ๊ณผ ๊ธธ์ด๊ฐ€ ๊ฐ๊ฐ ๋ชจ๋‘ 0์ด ์•„๋‹˜)
2๊ฐœ๋งŒ ์„ ํƒํ–ˆ์„ ๋•Œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์„ ํƒํ•œ ๋‘ ๊ฐœ(๋ฒ ์ด์Šค&ํ† ํ•‘ / ํ† ํ•‘&์‹œ๋Ÿฝ / ๋ฒ ์ด์Šค&์‹œ๋Ÿฝ) ๊ต์ง‘ํ•ฉ์œผ๋กœ ๊ตฌํ•˜๊ณ ,
 (๋ฒ ์ด์Šค/ํ† ํ•‘/์‹œ๋Ÿฝ ํ•„ํ„ฐ๋ง๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜๋งŒ ๊ธธ์ด๊ฐ€ 0์ž„)
1๊ฐœ๋งŒ ์„ ํƒํ–ˆ์„ ๋•Œ๋Š” ๊ต์ง‘ํ•ฉ ๊ตฌํ•  ํ•„์š” ์—†์ด ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ์ตœ์ข…๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค.
 (๋ฒ ์ด์Šค/ํ† ํ•‘/์‹œ๋Ÿฝ ํ•„ํ„ฐ๋ง๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜๋งŒ ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹˜)
(์ตœ์ข…๊ฒฐ๊ณผ ํ•„ํ„ฐ๋ง์€ ์™„์„ฑ)

but ๊ฐ ๋ฒ ์ด์Šค ๊ต์ง‘ํ•ฉ, ํ† ํ•‘ ๊ต์ง‘ํ•ฉ์„ ๋˜ ๊ตฌํ•ด์„œ ๋ณด๋‚ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
์„ธ๊ฐœ ๊ต์ง‘ํ•ฉ์€ ์ตœ์ข…๊ฒฐ๊ณผ ํ•„ํ„ฐ๋ง์„ ๋งŒ๋“ค์–ด ๋ณธ ๊ฒฐ๊ณผ ์•ˆ ๊ทธ๋ž˜๋„ ํž˜๋“ ๋ฐ
๋ฒ ์ด์Šค๊ต์ง‘ํ•ฉ, ํ† ํ•‘๊ต์ง‘ํ•ฉ์„ ๊ตฌํ•  ๋–„๋Š” ๊ฐ ๋ฒ ์ด์Šค/ํ† ํ•‘์˜ ํ•˜์œ„์นดํ…Œ๊ณ ๋ฆฌ ๊ต์ง‘ํ•ฉ๊นŒ์ง€ ์ƒ๊ฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—๐Ÿคฏ
์ตœ๋Œ€ ์„ ํƒ๊ฐ€๋Šฅ๊ฐœ์ˆ˜๋ฅผ 2๊ฐœ๋กœ ์ค„์ด๊ธฐ๋กœ ํ–ˆ๋‹ค.๐Ÿ˜‚
-> ๋ฒ ์ด์Šค ์ตœ๋Œ€2, ํ† ํ•‘ ์ตœ๋Œ€2, ์‹œ๋Ÿฝ ์ตœ๋Œ€2๊ฐœ๋ฅผ ์„ ํƒ๊ธฐ์ค€์œผ๋กœ ๊ฒฐ์ •.

๋งŒ์•ฝ ๋ฒ ์ด์Šค/ํ† ํ•‘์„ 1๊ฐœ ์„ ํƒํ–ˆ๋‹ค๋ฉด,
๊ทธ ๋ฒ ์ด์Šค/ํ† ํ•‘๊ณผ ํ•˜์œ„ ๋ฒ ์ด์Šค/ํ† ํ•‘ ์„ ๊ฒ€์ƒ‰ํ•ด์˜จ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ธ๋‹ค.
๋งŒ์•ฝ ๋ฒ ์ด์Šค/ํ† ํ•‘์„ 2๊ฐœ(A,B) ์„ ํƒํ–ˆ๋‹ค๋ฉด,
๊ทธ ๋ฒ ์ด์Šค/ํ† ํ•‘(A) ๋˜๋Š” ํ•˜์œ„ ๋ฒ ์ด์Šค/ํ† ํ•‘(ํ•˜์œ„A) ๊ณผ
๋‹ค๋ฅธ ๋ฒ ์ด์Šค/ํ† ํ•‘(B) ๋˜๋Š” ํ•˜์œ„ ๋ฒ ์ด์Šค/ํ† ํ•‘(ํ•˜์œ„B) ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ ํ”Œ๋ ˆ์ด๋ฒ„๋งŒ์„ ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ ์ด์Šค๋กœ 

-> ํ˜„์žฌ ๋ฒ ์ด์Šค, ํ† ํ•‘์ด ๊ต์ง‘ํ•ฉ ํ•„ํ„ฐ๋ง ์•ˆ๋˜๋Š” ์ƒํƒœ. -> ๋“œ๋””์–ด ์™„์„ฑ!!ใ… ใ… ใ… 
๋ฉ”์„œ๋“œ๊ฐ€ ๋ฌด์ง€๋ง‰์ง€ํ•˜๊ฒŒ ๊ธธ์–ด์กŒ์ง€๋งŒ ๋ฆฌํŒฉํ† ๋ง์€ ๋‚˜์ค‘์— ํ•˜๊ณ ใ…  ์ผ๋‹จ ๋Œ์•„๊ฐ€๋Š”๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ธฐ์˜๋‹ค!
- ๋ฒ ์ด์Šค, ํ† ํ•‘, ์‹œ๋Ÿฝ ์ตœ๋Œ€ 2๊ฐœ์”ฉ๋งŒ ์„ ํƒ ๊ฐ€๋Šฅ.
- ๊ฐ๊ฐ managed ๋ฉ”์„œ๋“œ์™€ filter๋ฉ”์„œ๋“œ๋ฅผ ๊ฑฐ์นจ.
- managed๋ฉ”์„œ๋“œ : ์ž…๋ ฅ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ฒ ์ด์Šค/ํ† ํ•‘/์‹œ๋Ÿฝ๋ช…์œผ๋กœ ์น˜ํ™˜ํ•˜๊ณ , ๊ฐ ๋ฒ ์ด์Šค/ํ† ํ•‘/์‹œ๋Ÿฝ์˜ ํ•˜์œ„ ๋ฒ ์ด์Šค/์‹œ๋Ÿฝ/ํ† ํ•‘๊นŒ์ง€ ์ฐพ์•„์„œ ๋ฐ˜ํ™˜.
- filter๋ฉ”์„œ๋“œ : (์ค‘๊ฐ„๊ฒฐ๊ณผ)๊ฐ ๋ฒ /ํ† /์‹œA,B์™€ ๋ฒ /ํ† /์‹œA,B์˜ ํ•˜์œ„๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด๋ฒ„ ํƒ์ƒ‰. (๊ต์ง‘ํ•ฉ)A,Aํ•˜์œ„์™€ B,Bํ•˜์œ„๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ํ”Œ๋ ˆ์ด๋ฒ„ ํƒ์ƒ‰. (์ค‘๋ณต์ œ๊ฑฐ) ๊ต์ง‘ํ•ฉ๊ฒฐ๊ณผ ์ค‘ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด ์ตœ์ข…๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜.
-filterResult : ๋ฒ ,ํ† ,์‹œ ๊ฐ ์„ ํƒ์— ๋”ฐ๋ฅธ ์ตœ์ข… ๊ต์ง‘ํ•ฉ๊ณผ, ๊ต์ง‘ํ•ฉ์˜ ์ค‘๋ณต์ œ๊ฑฐ๋ฅผ ํ†ตํ•ด ์ตœ์ข…๊ฒฐ๊ณผ ๋ฐ˜ํ™˜.

 

- ์ „์ฒดํ”Œ๋ ˆ์ด๋ฒ„ ์กฐํšŒ ๋””๋ฒ„๊น…

 -> ๊ทธ๋ƒฅ View์—์„œ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‹œ๊ทธ๋‹ˆ์ฒ˜/์‹œ์ฆŒ ArrayList๋ฅผ ๋„˜๊ฒจ๋ฒ„๋ ธ๋‹ค.

 

-> ๋ง‰์ƒ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ๋ฒ ์ด์Šค์— ์ตœ์†Œ์กฐ๊ฑด์„ ๋‹ฌ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฌ๊ณผ๋ฅ˜ ๋“ค์–ด์žˆ๋Š” ์•„์ด์Šคํฌ๋ฆผ์ด๋ฉด ๋ญ๋“  ๊ดœ์ฐฎ์œผ๋‹ˆ ๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค(์‹ค์ œ ๊ทธ๋Ÿฐ ์†๋‹˜๋„ ์žˆ์—ˆ๊ณ ใ…‹ใ…‹)
๊ทธ๋ž˜์„œ ๋ฒ ์ด์Šค์˜ ์ตœ์†Œ์กฐ๊ฑด์€ ๋นผ๊ธฐ๋กœ ํ–ˆ๋‹ค. 
๋˜ ์‚ฌ์‹ค ์ง€๊ธˆ ๊ตฌํ•œ ๋กœ์ง๋Œ€๋กœ์ด๋ฉด ์ตœ๋Œ€์กฐ๊ฑด๋„ ํ•„์š”์—†์„๊ฒƒ๊ฐ™์ง€๋งŒ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ•˜๋ฉด์„œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด ๋ด์•ผ๊ฒ ๋‹ค.
-> ํ˜„์žฌ ๋ฒ ์ด์Šค ์—†์ด ํ† ํ•‘๋งŒ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค(์•„์ง ๋ฒ ์ด์Šค ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ๋‹ค ์•ˆ ๋ผ์„œ..) ์ด๊ฒƒ๋„ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•„์š”.

 

 - ์ƒˆ๋กœ ๋ฐฐ์šด ๊ฒƒ : ๋ฐฐ์—ด 2๊ฐœ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ธฐ

dkfkslsksh.tistory.com/19 ๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐฐ์—ด 2๊ฐœ๋ฅผ ํ•œ๊ฐœ์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์น˜๊ธฐ(System.arraycopy)

์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์€ ๋™์ ์œผ๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ ์กฐ์ ˆ ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์ƒ๋‹นํžˆ ์• ๋ฅผ ๋จน๊ฒŒ ๋œ๋‹ค. ์ด๋ฒˆ์—๋„ ํฌ๊ธฐ๋ฅผ ๊ณ ์ •ํ•  ์ˆ˜ ์—†๋Š” ๋‘๊ฐœ์˜ ๋ฐฐ์—ด์„ ํ•œ๊ฐœ์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ๊ฒ€์ƒ‰ ํ›„ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ธด๋‹ค. ์ž

dkfkslsksh.tistory.com

 

โœ… ์•ž์œผ๋กœ ๋งˆ์ € ํ•  ์ผ

- ๋ฒ ์ด์Šค(์ตœ๋Œ€2), ํ† ํ•‘(์ตœ๋Œ€2), ์‹œ๋Ÿฝ(์ตœ๋Œ€2) ์„ ํƒ ์˜ค๋ฅ˜์— ๋Œ€์‘ํ•˜๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋กœ์ง ๊ตฌํ˜„ํ•˜๊ธฐ

๋ชจ๋“  ํ”„๋กœ์„ธ์„œ์˜ ์ž…๋ ฅ๊ฐ’ ์˜ค๋ฅ˜ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋กœ์ง๋„ ํ•จ๊ผ ๊ตฌํ˜„ํ•˜๊ธฐ!

 

- ์ฝ˜์†” ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•œ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ

 

+ (์‹œ๊ฐ„์ด ๋œ๋‹ค๋ฉด..)์•Œ๋ ˆ๋ฅด๊ธฐ์„ฑ๋ถ„ ๋”ฐ๋ผ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ? ์ถ”๊ฐ€.