๐ฌ ์์ํ๋ฉฐ TMI ์ค๋ช
์ง๊ธ์ ์ ํ ๋๋ฒจ๋กํผ ์์นด๋ฐ๋ฏธ์์ ๋งจ ๋ง์ง๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์๋ค. ๋ง์ง๋ง์ธ ๋งํผ ํ๋ก์ ํธ ๊ธฐ๊ฐ์ด 3๋ฌ์ ๋๋ก ์ข ๊ธด ํธ์ด๊ณ , ๊ทธ ๊ธฐ๊ฐ๋์ ํ์๋ค๊ณผ ๊ธฐํ + ๋์์ธ + ๊ฐ๋ฐ ๊น์ง ๋ชจ๋ ์๋ฃํด์ผํ๋ค.
ํ ๋ถํธ์บ ํ์ ์ฐจ์ด์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ์ ์, ์ ํ ๋๋ฒจ๋กํผ ์์นด๋ฐ๋ฏธ์ ์์ผ๋ฉด '๊ธฐํ๋ ฅ'์ด ์ฌ๋ผ๊ฐ๊ณ , ์ธ๋ชจ์๋ ์ฑ ๋ํด์ ๋ค์ ํ ๋ฒ ์๊ฐํ๊ฒ ๋๋ค. ์ฃผ๋ณ ํ๋ค์ ์์ด๋์ด๋ง ๋ด๋, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌํ์ ์์ด๋์ด๋ง ๋ด๋ ๊ทธ๋ฅ ํ์ ์์ค์ ํ๋ก์ ํธ๋ ํ๊ณ ์ถ์ง ์๋ค๋ ์์ง๊ฐ ๊ฐํ๊ณ , ์ค์ ๋ก ๊ณ ๊ฐ ์ ์น์ ์ฑ๊ณตํ ๊ฒ ๊ฐ์ ์ฑ์ ๋ง๋ค๊ธฐ ์ํด์ ํ์ ์๋๋ค. ๋ชจ๋๊ฐ ์์ฃผ ๋นจ๊ฐ ์ด์ ์ฌ๊ณผ์ด๋ค ๐
์ฐ๋ฆฌ ํ์, ์ฐ์ 'EDUTECH'๋ฅผ ๋์ฃผ์ ๋ก ์ผ๊ณ , narrow down ํ๋ฉด์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค.
๐ค ๋ฌด์์ ๋ง๋ค์๋์
1๏ธโฃ UICollectionView
๋ด๊ฐ ๋งก์ ๋ทฐ๋ ๊ฐ์ฅ ๋ฉ์ธํ๋ฉด์ '์ฝ๋ ์ ๋ทฐ'๊ฐ ํฌํจ๋ ๋ทฐ์ด๋ค. ์ผ๋จ ๋์์ธ์ด ์์ ํ ๋์ค์ง ์์ ์ํ์ด๋ฏ๋ก, ์์ด์ด ํ๋ ์ ๊ธฐ์ค์ผ๋ก ๊ตฌํํ๋ค. UICollectionView๋ Cell๋ ๋ฐ๋ก ๋ง๋ค์ด์ผํ๊ณ , Datasource ์ Delegate๋ฅผ ๋ฐ๋ก ์ ์ํด์ ๊พธ๋ฉฐ์ฃผ์ด์ผํ๊ธฐ ๋๋ฌธ์ ์ด๋ณด์๊ฐ ์ ๊ทผํ๊ธฐ๋ ๊ฐ์ฅ ์ด๋ ค์ด ๋ทฐ๋ผ๊ณ ์๊ฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฅ์ฑ๋ ์ด๋ง๋ฌด์ํ๊ธฐ ๋๋ฌธ์,,,, CollectionView๋ง ๊ต์ฅํ ์ ๋ค๋ค๋ ์์ ๊ฐ์ด ํญํ์์นํ ๊ฒ ๊ฐ๋ค.
๋ด๊ฐ ๋งก์ ์ด์์ด๋ค.
https://github.com/DeveloperAcademy-POSTECH/MacC-Team-EarthValley80/issues/9
๋๋ ์์ ๊ฐ์ ํ๋ฉด์ ์ฝ๋ ์ ๋ทฐ๋ฅผ ๊ตฌํํด์ผํ๋ค.
2๏ธโฃ ์ค์ํ ๊ฒ์ ๋ฌด์์ด์๋์
- ๋์์ด๋์ ์๋๋ฅผ ํค์น์ง ์๊ฒ ๊ฐ๋ฐํ ๊ฒ
๋ด๊ฐ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๊ณ ๊ฐ๋ฐํ ๋ถ๋ถ์ด๋ค. ๋ฌผ๋ก , ๊ฐ๋ฐ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ ๋ถ๋ถ์ ๋ํด์๋ ๋์์ด๋์ ์ถฉ๋ถํ ์์ํ๊ณ ๋์์ธ์ ์งํํ๊ณ , ๋ด๊ฐ ์ถฉ๋ถํ ๋์ ํ ์ ์์๋งํ ๋ฒ์์ ์์๋ค๋ง ๋ฐ์์๋ค.
ํด๋น ๋ทฐ์์ ๊ฐ์ฅ ์ค์ํ ์ ์ ์ธ ๊ฐ์ง์ด๋ค.
- ์์ชฝ ์ ๋ ฌ์ ๊ผญ! ๋ง์ถ๊ฒ
- ํ ์ค์ ํ์นธ์๋ฆฌ ๋ค๋ชจ๋ 5๊ฐ๊ฐ ๋ค์ด๊ฐ๊ณ , ๋ค์ด๊ฐ label์ด ๊ธด ๊ฒฝ์ฐ ๋์นธ์ ์ฐจ์งํ ์ ์๋ค๋ ๊ฒ
- ๋๊ฐ์ ๋ฐฐ์ด์ row๊ฐ ๋ฐ๋ณต๋์ง ์์ ๊ฒ
์ด ์ธ๊ฐ์ง๋ฅผ ์งํค๊ธฐ ์ํด์๋, server์์ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ๋ ฌํด์ผํ๋ค๊ณ ์๊ฐํ๋ค.
3๏ธโฃ ๊ทธ๋์ ๋จธ๋ฆฌ๊ฐ ๊นจ์ง๋๋ก ๋ก์ง์ ๋ํด์ ์๊ฐํ์ด์ ; ๐คฏ๐คฏ๐ฅ
์๋ฒ์์ ๋ค์ด์ค๋ label์ ๊ธธ์ด๋ ๋ชจ๋ ๋ค๋ฅผ ๊ฒ์ด๊ณ , label์ ๊ฐฏ์๋ ๋งค๋ฒ ๋ค๋ฅผ ๊ฒ์ด๋ค. ๊ทธ๋์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์์์ ์ ๊ฒ๊ณผ ๊ฐ์ ๋ทฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ๋ ธ๋ ฅํด์ผํ๋ค.
์ต์ข ๊ฐฏ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก 5๊ฐ์ฉ count๋ฅผ ํด๋ณผ๊น?
๋ด๊ฐ ๊ฐ์ฅ ์ฒ์ ์๊ฐํ ๋ฐฉ์์ด๋ค. label์ ๊ธธ์ด๊ฐ ๊ธธ๋ฉด ๋์นธ์ ์ฐจ์งํ๊ธฐ ๋๋ฌธ์ count์ +2๋ฅผ ํด์ค๋ค. ์๋๊ฒฝ์ฐ๋ +1์..
var count = 0
var temp = [newsData]()
var newData = [newsData]()
for i in 0..<data.count {
if count < 5 {
if data[i].newsTitle.count >= 30, count + 2 <= 5 {
count += 2
newData.append(data[i])
} else if data[i].newsTitle.count >= 30, count + 2 > 5 {
temp.append(data[i])
} else if data[i].newsTitle.count < 30 {
count += 1
newData.append(data[i])
}
}
if count == 5 {
count = 0
}
}
์ด๋ฐ์์ผ๋ก ์งฐ์๋ค. ์ด๊ฑด ์จ์ ํ,,, "ํ์ค์ ๋ค์ฏ๊ฐ ๋ค ์ฐผ๋?"๋ง ๊ณ ๋ คํ ์ฝ๋์๋ค. ๊ทธ๋์ ๋ง์ฝ ๊ธด label๋ง ์ฐ์์ ์ผ๋ก ๋ค์ด์์ ๋, ๋ด๊ฐ ์ํ๋๋๋ก ์ ํ ๊ตฌํํ์ง ๋ชปํ๊ณ , 5๊ฐ ์ฑ์์ง์ง ์๋๋ค๋ฉด, ์๋ฌ๊ฐ ๋๊ณ ๋ง์๋ค.
๊ทธ๋๋ ์ฒซ๋ฒ์งธ ์๋ ,, ๋์์ง ์์๋ค.
๋ค์์๊ฐํด๋ณด๋ฉด, label์ด ๊ธธ์ด์ ๋๊ฐ์ ์๋ฆฌ๋ฅผ ์ฐจ์งํ๋ ์ ๋ค๋ง ์ฒ๋ฆฌ๋ฅผํด์ฃผ๋ฉด ๋๋๊ฑฐ์๋ค. ํ๊ฐ์ง๋ฆฌ๋ row๋ฅผ ๊นจ์ง๊ฒ ๋ง๋ค์ง ์์ผ๋ ์ ํ ๊ณ ๋ คํ์ง ์์๋ ๋๋ ์ํฉ์ด์๊ณ !!!
๊ทธ๋์ 2๊ฐ์ ์นธ์ ์ฐจ์งํ๋ ์ ๋ค ๋จผ์ ์๊ฐํด์ฃผ์๋ค. 2๊ฐ๋ฅผ ์ฐจ์งํ๋ ์ ๋ค์ ํ row์ ์ต๋ 2๊ฐ๊น์ง ๋ค์ด๊ฐ๋ค.
๊ทธ๋์ long ๊ณผ short๋ก ๊ธธ์ด์ ๋ฐ๋ผ label์ ๋๋ ์ฃผ๊ณ , longCount๋ฅผ 2๋ก ๋๋ row์ ์ผ๋จ 2๊ฐ์ long label, 1๊ฐ์ short label์ ๋ฃ์ด์ฃผ์๋ค.
var long = data.filter { $0.newsTitle.count >= 30 }.map { $0 }
var short = data.filter { $0.newsTitle.count < 30}.map { $0 }
var newdata = [newsData]()
var longCount = long.count
var shortCount = short.count
for _ in 0..<longCount/2 {
if longCount % 2 == 1 {
newdata.append(long.removeLast())
newdata.append(short.removeLast())
newdata.append(short.removeLast())
newdata.append(short.removeLast())
}
for _ in 0..<2 {
newdata.append(long.removeLast())
}
newdata.append(short.removeLast())
}
for i in short {
newdata.append(i)
}
์ ์ ๊น๋ง ์ด๋ ๊ฒํ๋ฉด,,,, ์๋์ฒ๋ผ ๊ต์ฅํ UI์ ์ผ๋ก ์ง๋ฃจํ ๋ทฐ๊ฐ ์์ฑ๋๋ค. (์๋ฎฌ๋ ์ดํฐ ์บก์ณ๋ฅผ ๋ชปํด์ ๋์ถฉ ๋ค๋ชจ ๊ทธ๋ฆผ์ผ๋ก ๋์ฒดํ๋ค.)
์ฌ์ง์ด 2์นธ์ ์ฐจ์งํ๋ label์ด ๊ฐฏ์๊ฐ ๋ง์์ง๊ฒ ๋๋ฉด
์ด๋ ๊ฒ ๋ง์ง๋ง ๋์ค์์ ๋์์ธ ์๋๊ฐ ๊นจ์ ธ๋ฒ๋ฆฌ๊ฒ ๋๋ค. .. ์ด ๋ถ๋ถ์ผ ใน์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฑด๋ฐ??? ๊ทธ๋ฆฌ๊ณ ์ฌ์ง์ด row์ ๊ท์น์ด ๋ฐ๋ณต๋๋ ๊ฒ ์กฐ์ฐจ ๋ฏ์ด ๊ณ ์ณ์ผํ๋ค.
๐ฌ ์ด๊ฑธ๋ก ์ ๋ง ์ค๋ ์๊ฐ๋์ ๊ณ ๋ฏผํ๋ค.... ๐ญ ๋จธ๋ฆฌ๊ฐ ๊นจ์ ธ๋ฒ๋ฆฌ๋์ค
๋ถ๋ช ๊ท์น์ด ์จ์ด์์ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋ฆฌ๊ณ ,, ์ํ์ ์ผ๋ก ์ ๊ทผํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํด์ ํ๋ฆด ๊ฒ ๊ฐ์๋ค. ๊ทผ๋ฐ ๋ด ๋จธ๋ฆฌ๊ฐ ,,, ์๋์๊ฐ,,,
๊ทธ๋์ ์ผ๋จ ์ผ์ ํ ํจํด์ ์ฃผ์ด์ ๋ค์ํ row ๊ท์น์ ๋ง๋ค์ด์ฃผ๋๋ก ๋ง๋ค์๊ณ , 2์นธ์ง๋ฆฌ ์ฐจ์งํ๋ label์ด ๋ง์์ 1๊ฐ์ง๋ฆฌ ๋ทฐ๊ฐ ๋ ํ์ํ ๊ฒฝ์ฐ์ ๋ํ ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ์งํํด์ ๋์์ธ์๋๊ฐ ํค์ณ์ง์ง๋ ์๋, ๋ทฐ๋ฅผ ์์ฑํ๋ค.
private func sortdata(_ data: [newsData]) -> [newsData] {
var short = data.filter { $0.newsTitle.count < 30 }.map { $0 }
var long = data.filter { $0.newsTitle.count >= 40 }.map { $0 }
let longcount = long.count
var mid = [newsData]()
var newdata = [newsData]()
var lastloop = 0
if long.count / 2 > short.count {
lastloop = (long.count / 2) - short.count
print("lastloop \(lastloop)")
} else if long.count / 2 + 2 <= short.count {
for _ in 0..<(long.count / 2) / 2 {
mid.append(short.removeLast())
mid.append(short.removeLast())
}
}
if lastloop != 0 {
for _ in 0..<lastloop {
short.insert(newsData(newsTitle: "-", newsCategory: "-"), at: 0)
}
}
for i in 0..<longcount/2 {
if long.count == 1 {
break
}
if i % 3 == 0 {
newdata.append(long.removeLast())
newdata.append(long.removeLast())
newdata.append(short.removeLast())
} else if i % 3 == 1 {
newdata.append(short.removeLast())
newdata.append(long.removeLast())
newdata.append(long.removeLast())
} else {
newdata.append(long.removeLast())
newdata.append(short.removeLast())
newdata.append(long.removeLast())
}
}
if mid.count != 0 {
for i in stride(from: Int.random(in: 0...8), through: newdata.count, by: 5) {
if newdata.count > i {
if newdata[i].newsTitle.count >= 40 {
newdata.insert(mid.removeLast(), at: i)
newdata.insert(mid.removeLast(), at: i+1)
newdata.append(newdata[i+2])
newdata.remove(at: i+2)
}
}
}
}
for s in short {
newdata.append(s)
}
return newdata
}
ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ์ฐธ๋ดํ๋ค ์ ๋ง,, ์ฝ๋๊ฐ ์ง์ง,,
ํํํํํํํใ ใ ํํ
๋ด๊ฐ ๊ทธ๋์ ์ด์ฐ์ ์ฐ ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์,
๊ฒฐ๊ตญ 2๊ฐ๋ฅผ ์ฐจ์งํ๋ label (long ๋ผ๋ฒจ์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋ค.) ๋ง ์์ธ๋ฅผ ์ ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์ง์คํ๋ค.
๋ง์ฝ long ๋ผ๋ฒจ.count / 2 ํ ์๋ณด๋ค short๋ผ๋ฒจ(1๊ฐ์ง๋ฆฌ)์ด ๋ ์ ๋ค๋ฉด, ์์์ 1๊ฐ์ง๋ฆฌ ๋ผ๋ฒจ์ ๋ง๋ค์ด์ ๋ฃ์ด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ,,, long long short, short long long, long short long ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ์ ์ ๋ ฌ์ ์๋ํ๋ค.
๋ง์ง๋ง์ผ๋ก ๋งค๋ฒ ๊ฐ์ ๊ท์น์ ๋ทฐ๊ฐ ๋ฐ๋ณต๋์ง๋ ์์ง๋ง, 2๊ฐ์ง๋ฆฌ๊ฐ ๋๋ฌด ๋ง์ด ๋ค์ด๊ฐ์์ผ๋ฉด ๋ทฐ๊ฐ ๋ ์ง๋ฃจํด์ง ์๋ ์์ด์ ํ๊ฐ์ง๋ฆฌ ๋ทฐ๋ฅผ ์กฐ๊ธ ๋ ์ ์ ํ๊ฒ ์์ด์ค์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋์ long๋ผ๋ฒจ.count/2ํ ์๋ณด๋ค short๋ผ๋ฒจ์ด ๋ง์ผ๋ฉด, ์ง๋ฃจํ UI๊ฐ ๋์ง ์๋๋ก, ๋๋ค row index์ long๋ผ๋ฒจ ๋์ short๋ผ๋ฒจ ๋๊ฐ๋ฅผ ๋ฟ๋ ค์ค ์ ์๋๋ก ํ๋ค.
๐คฏ ๋ด๊ฐ ๋งํ๊ณ ๋,,, ๋ญ๋ง์ธ์ง ์ ์ดํด๊ฐ ์๋๋๋ฐ, ๋ณ์๋ช ์ ๋ฆฌ์ PR์ ๋ ๋ฆด๋ ๋ค์ ํ๋ฒ์ ์ ๋ฆฌ๊ฐ ํ์ํ๋ค. (์ถํ ๋งํฌ๋ฅผ ๊ฑธ์ด๋๊ฒ ๋ค.)
์ด์จ๋ ๊ทธ๋์ ์์ฑํ ๋ทฐ๋ ๋ค์๊ณผ ๊ฐ๋ค..
๋นจ๊ฐ์๋ทฐ๋, ๋ค๋ฅธ ๊ทธ๋ฆผ์ด ๋ค์ด๊ฐ ์์ ์ด๋ค. ๋์์ด๋์๊ฒ ์ ์์งค์ฒ๋ผ 2์นธ์ ์ฐจ์งํ๋ long ๋ผ๋ฒจ์ด ๊ต์ฅํ ๋ง์ ๊ฒฝ์ฐ, ์นธ์ด ์ ๋ถ ๋น๊ฒ๋์ด ๋ผ์ธ์ด ๊นจ์ง ์๋ ์๋ค๋ ์ ์ ์ค๋ช ํ๋ค. ๊ทธ๋์ ๋นจ๊ฐ์ ๋ถ๋ถ์๋ ๊ท์ฌ์ด ์ผ๋ฌ์คํธ๊ฐ ๋ค์ด๊ฐ ๊ฒ ๊ฐ๋ค! ๊ท์ฝ๊ฒ๋น,, ๐
๐ฌ ๋ง๋ฌด๋ฆฌ ํ๊ณ
์ด์จ๋ ,,, ๋ด์ผ๋ถํฐ๋ ๊ฐ๋ฐ์ผ์ง๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ฐ๋ฐํ๋ฉด์ ์จ๋๋๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค. .. ๋ ๋ง์ด ๋๋์ ๋ ์ ์ ์ ์์ ๊ฒ ๊ฐ๊ณ !
์์ง ๋๋ ๋ถ์กฑํ์ ์ด ๋ง๋ค. ํนํ, collectionview๋ ๋ง์ ธ๋ ๋ง์ ธ๋ ์ ๊ธฐํ๊ฒ ๋ง์๋ฐ, ์ด์ ๋ฉด์ ์์ ๋๋ตํ์ง ๋ชปํ ์์๋ค์ด ๋ง ๋ ์ค๋ฅด๊ธฐ ์์ํ๋ค. ๋ง๋ค...๋ด๊ฐ ๋ถ๋ช
๊ฑด๋๋ ค๋ณด๊ณ , ๋ถ๋ช
๋ง์ ธ๋ณธ ์ฝ๋์ธ๋ฐ, ๋ง์ ๋ฌผ์ด๋ณด๋๊น "์ญ ์ ๊ฒ๋ญ์ง?" ํ๋ ์๊ฐ๊ณผ ํจ๊ป "์๋์ค, ๋ค๋ค๋ณด์ง ์์์ต๋๋ค."๋ผ๋ ๋ฐ๋ณด๊ฐ์ ๋ง์ ... ๋ด๋ฑ์๋ค๋ ์ ์ ๊นจ๋ฌ์๋ค.
์,,, ์ด๊ฒ ์๋์์ฑ์ผ๋ก collectionview๋ง๋ค๋ผ๋ฉด ์ด๋ฐ function์ ๊ทธ๋ฅ ์์ด์ผํด~ ํ๋ ์์ผํ ์๊ฐ๋๋ฌธ์ ๋์น ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐ๋๋ค. ์์ผ๋ก ๊ณต๋ถํ ๋๋, ๊ทธ๋ฅ ๊ตฌํ๋ณด๋ค๋, ๋ด๊ฐ ๋ง์ง๋ ์ด๊ฒ ๋๋์ฒด ์ด๋ป๊ฒ!! ๊ตฌํ๋๋๊ฒ์ธ์ง์ ๋ํ ์๊ฐ์ ํด๋ด์ผํ ๊ฒ ๊ฐ๋ค.
์ถ๊ฐ๋ก ์ค๋ ์คํฌ๋ผ์์ ์งํํ ๋์ ํ๊ณ ๋,, ๋ถ์ฌ๋๋ค.
์ค๋ ์ด์ฐ์ ์ฐ ์๋ชจ์กฐ๋ชจ ๋ด์ค ๋ฉ์ธํ๋ฉด์ collectionview ๋ก์ง์ ๋ํด์ ์๊ฐ์ ์๋ฃํ๊ณ ๊ตฌํ์ ํด๋จ๋ค.
๊ทผ๋ฐ,,, ์ฝ๋๊ฐ ์ง์ง ๋๋ฝ๋ค ใ
ใ
ใ
ใ
ใ
ใ
ใ
์ด๋ฐ์ '์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ด๋ฟ๊ฒ ์ง์ง?'๋ผ๋ ๊ณ ๋ฏผ์ ํ๋ฉด์ ๋ก์ง์ ์๊ฐํ๋๋ฐ,
๊ทธ๋ฌ๋ค๋ณด๋ ๋ก์ง์ด ์ ์ ์ฐ์ผ๋ก ๊ฐ๊ธฐ ์์ํ๋ค.... ๊ทธ๋์ ์ผ๋จ ์ด์ฐ์ ์ฐ ๊ตฌํ์ ํด๋ง๋๋ฐ ๋ฆฌํฉํ ๋ง์ด ํ์์ผ๊ฒ ๊ฐ๋ค.
์ด๋ํ ๋ฐฐ์ธ์ ์ด ์๊ฒ ์ง!! ์์์
(๊ทผ๋ฐ 100% ์ํ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ์ํฌ ์ ์์ ๊ฒ ๊ฐ๋ค. ๊ผญ ํ์ด๋ด์ผ์ง!!!)
๋๋์ ์ฝ๋๋ ๋ณด๊ณ ๋ฐฐ์ธ์ ์ด ์ฐธ ๋ง์ ๊ฒ ๊ฐ๋ค. ๊น๋ํ๊ฒ ์ง๋ ๊ฒ๋ถํฐ, ์ ์ ํ๊ฒ ์ฌ์ฉ๋๋ extension, Why์ ๋ํด์ ํญ์ ์๊ฐํ๋ ์ ๋ฑ,,
์์ง ๋๋์๊ฒ ๊ทธ๋ฆฌ๊ณ ์ญ์๊ฒ๋ ๋๋ 1์ธ๋ถ๋ ๋ค ๋ชปํ๊ฒ ๊ฐ์ ๋๋์ด ๋ค์ด์ ๋๋ฌด ์ฌํ ํ๋ฃจ์๋ค.
ํ์๊ฒ ๋ฏผํ๊ฐ ๋์ง ์๋๋ก ์ฑ์ฅ ๊ณก์ ์ ๊ฐํ๋ฅด๊ฒ ๊ทธ๋ ค์ผ์ง! ์ ์ ๋๋ ๋ ์ข์์ง๊ฒ ์ง ๊ธ์ด๊ธ์ด (เนหฬตแดหฬต)ู```