Bibi's DevLog ๐ค๐
[์ฝ๋์ค์ฟผ๋ ์ฝ์ฝ์] ๊ฐ์ธํ๋ก์ ํธ 4์ผ์ฐจ(๋ง์ง๋ง) ๋ณธ๋ฌธ
[์ฝ๋์ค์ฟผ๋ ์ฝ์ฝ์] ๊ฐ์ธํ๋ก์ ํธ 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) ์ ํ ์ค๋ฅ์ ๋์ํ๋ ์์ธ์ฒ๋ฆฌ ๋ก์ง ๊ตฌํํ๊ธฐ
๋ชจ๋ ํ๋ก์ธ์์ ์ ๋ ฅ๊ฐ ์ค๋ฅ ์์ธ์ฒ๋ฆฌ ๋ก์ง๋ ํจ๊ผ ๊ตฌํํ๊ธฐ!
- ์ฝ์ ์ถ๋ ฅ ๊ฐ๋ฅํ ์์๊ฒ ๋ง๋ค์ด ๋ณด๊ธฐ
+ (์๊ฐ์ด ๋๋ค๋ฉด..)์๋ ๋ฅด๊ธฐ์ฑ๋ถ ๋ฐ๋ผ ํํฐ๋ง ๊ธฐ๋ฅ? ์ถ๊ฐ.