์์ํ๋ฉฐ
6๊ฐ์๊ฐ ITํ์ฌ์์ ์ธํด์ค์ต์ ์งํํ๋ฉฐ ๊ฐ๋ฐํ๊ณ , ์นญ์ฐฌ๋ฐ์๋ ๊ฐ์ธ ๊ณผ์
์ ๋ํด ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค.
ํ์ฌ ๋ด์์ ์ฌ์ฉํ๋ ๊ธฐ์ ์ด๋ฉด ๋์ธ๋น์๋์ผ? ๋ผ๊ณ ํ ์ ์๊ฒ ์ง๋ง,
ํด์ฌ ์ , '์์์ถ์ถ๊ธฐ ๋ณด๊ณ '๋ฅผ ๋ง์น๊ณ ์ผํฐ์ฅ๋๊ป์ '๋ญ ํด์ฌํ๊ณ ๊นํ๋ธ์ฌ๋ฆฌ๋๊ฐ~ ์ ์ ์ฅํด๋ฌ ์ํ๋ค' ๋ผ๊ณ ์นญ์ฐฌ์ ํด์ฃผ์
จ๊ธฐ์, ๋ด๊ฐ ๊ฐ๋ฐํ๋ '์ด๋ฏธ์ง ๋ถ์ ์ ์ฒ๋ฆฌ ํ๋ก์ธ์ค' ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์์ํด๋ณธ๋ค!
ํ๋ก์ ํธ ๋ชฉ์
ํ์ฌ ๋ด์์ ์ฌ์ฉํ๊ณ ์๋ ๋ค์ํ AI ๋ก์ง์ ์ ์ฉ์ํฌ ์ ์๋ ์ด๋ฏธ์ง ์์์ถ์ถ๊ธฐ๋ฅผ ๊ฐ๋ฐํ๊ณ ์ ํ๋ค.
ํ๋ก์ ํธ ๋ชฉํ
์ด๋ฏธ์ง๋ก๋ถํฐ ์ฌ๋ ๋์ผ๋ก๋ ์ธ์ ํ ์ ์๋ ์ ํํ ์์์ ์ถ์ถํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
์งํ ์กฐ๊ฑด
์ฌ๋ด ๋ก์ง์ R ๋ก ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ์, R๋ก ๊ตฌํํด ๋ณผ ๊ฒ --> ์์
์ค์ต ์ดํ๋ก ์ฒ์ ๋ง์ ธ๋ณด๋ R... ์ด์ํ๋ค.
function์ผ๋ก ๊ตฌํํ ๊ฒ
๋ถํ๊ฐ ์ ์, ์ต๋ํ ๋ฅ๋ฌ๋ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์๊ณ , ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๊ตฌํํด ๋ณผ ๊ฒ
๊ฒฐ๊ณผ๊ฐ์ด ๋ฐ์ดํฐ ํ์ฉ ๊ฐ๋ฅ์ฑ์ ์ธก๋ฉด์์ ๋์์ผ ํจ --> ์ด๋ฏธ์ง๋ฅผ ์์นํ ํด์ผ๊ฒ ๋ค๊ณ ๋ค์ง!
์์ ์ฝ๋
1. library import
library(tibble)
library(magick)
library(dplyr)
R์์ ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฃฐ ์ ์๋ magick ํจ์๊ฐ ๋ฉ์ธ์ด๋ค
2. main
url1 ="https://%%%%%%%%.jpg"
extract_colors(url1)
url : ์์์ ์ถ์ถํ๊ณ ํ ์ฌ์ง์ url์ ๋ณ์์ ์ ์ฅ
extract_colors() : ์์ ์ถ์ถ ํจ์๋ฅผ ๋ฐ์์ ์ ์ํ ๊ฒ์ด๊ณ , ๋งค๊ฐ๋ณ์๋ฅผ url ๋ก ๋ฐ๋๋ค.
3. ์์ ์ถ์ถํ๋ ํจ์ ์ดํด๋ณด๊ธฐ
3-1. ํจ์์ ์
extract_colors <- function(url) { $$$ }
ํจ์๋ฅผ ์ ์ํ๋ฉฐ ์ฝ๋๋ฅผ ์์ํ๊ณ , ์ด์ $$$ ์์ ๋ค์ด๊ฐ ์์์ถ์ถ ์ฝ๋๋ฅผ ์ดํด๋ณด๋๋ก ํ์.
3-2. Get Image
#get image
img1 <- image_crop(image_scale(image_read(url), 300), "200x200+50+50")
- Image_read : url์ ํตํด ์ป์ ์ด๋ฏธ์ง๋ฅผ
- Image_scale : 300 ํฌ๊ธฐ๋ก ๊ฐ์ ธ์จ ํ
- Image_crop : ์ข์ฐ ์๋ค 200, 200, 50, 50 ๋งํผ ์๋ผ์ img1 ์ ์ ์ฅํ๋ค.
- ์ฌ๋ด์์๋ ์ฃผ๋ก '์ํ'์ด๋ฏธ์ง๋ฅผ ๋ค๋ค์๋ค. ์ํ์ ๋๋ถ๋ถ ๋ฐฐ๊ฒฝ ๊ฐ์ด๋ฐ์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ์ด๋ฏธ์ง๋ฅผ crop ํด์คฌ๋ค.
3-3. Color List ์์ฑ
์์์ ๋น ๋ฅด๊ฒ ๋น๊ตํ๊ธฐ ์ํด ๊ณ ์ํ ๋ฐฉ๋ฒ์ด๋ค.
๋ฏธ์ ์์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด๋๋, ํ๋ ํธ์ ์๋ ์์์ ๋ณด๊ณ ๋ฌด์จ ์์ ์น ํ ๊น! ๋ผ๊ณ ๊ณ ๋ฏผํ๋ค.
๊ทธ๋์ ๊ตฌ๊ธ๋ง์ ์ข ํ๋ค๊ฐ, ์ด ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ๋ฐํด๋ณด๊ธฐ๋ก ํ๋ค.
์ฆ, hex code ์ ์์ ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด ๋ฒกํฐ๋ฅผ ๋ง๋ค์ด ์ค๋ค.
color_dic <- setNames(
c(#back_black
"#000000ff",
#black
"#1d1e23ff", "#0a0a0aff", "#191919ff", "#323232ff", "#4b4b4bff",
#pink
"#ff00ffff","#ee82eeff", "#ff1493ff", "#ffc0cbff","#cba397ff","#ff4040ff",
#orange
"#ffa500ff","#ff4500ff","#ff8c00ff","#ff825aff", "#f4a460ff",
#white
"#ffffff00", "#fafafaff","#f0f0f0ff","#e6e6e6ff",
#red
"#ff0000ff","#cc0000ff","#dd221eff","#8b0000ff", "#9c1010ff",
#yellow
"#ffff00ff","#ffd700ff","#faf3d4ff", "#f9d537ff","#f5f0c5ff","#e0cf69ff",
#lime/green
"#7cfc00ff","#81c147ff", "#008000ff","#00a000ff","#006600ff","#90ee90ff",
#khaki
"#556b2fff","#4e6455ff",
#teal
"#008080ff",
#aqua/blue
"#00ffffff", "#0000ffff","#87ceebff","#4169e1ff","#585997ff","#97b9bbff",
#navy
"#000080ff","#1e205cff", "#191970ff",
#purple
"#800080ff", "#7b68eeff", "#8a2be2ff", "#9578afff","#b5b0d6ff",
#gray
"#c0c0c0ff", "#a4aaa7ff","#959ea2ff","#616264ff", "#696969ff", "#a9a9a9ff","#d3d3d3ff",
#brown
"#916027ff", "#bd9750ff",
#beige
"#d2b48cff"
),
c("background",
"black","black2","black3", "black4", "black5",
"pink","pink2","pink3","pink4","pink5","pink6",
"orange","orange2","orange3","orange4","oragne5",
"white","white2","white3", "white4",
"red","red2","red3","red4","red5",
"yellow","yellow2", "yellow3","yellow4", "yellow5","yellow6",
"green","green2","green3","green4","green5","green6",
"khaki", "khaki2",
"teal",
"blue","blue2","blue3","blue4","blue5","blue6",
"navy", "navy2", "navy3",
"purple","pruple2","purple3","purple4","purple5",
"gray","gray2", "gray3","gray4","gray5","gray6","gray7",
"brown","brown2",
"beige"
)
)
- color dic : set_names ๋ฅผ ํ์ฉํ์ฌ '#000000' ๋ผ๊ณ ์ ํ์๋ ์์ hex code ์ ์ด๋ฆ์ ๋ถ์ฌ์คฌ๋ค.
- black, black2, black3...?
- ์ฌ์ง ์์ ๊ฒ์ ์ ์ ๋ฐ์ด ์๋ค๊ณ ์น๋ฉด, ๊ทธ ๊ฒ์ ์์ ์งํ๊ฒ์ , ์ฝ๊ฐ ์ฐํ๊ฒ์ ์ ๋์ ๋๋์ด์ง ์ค์ ๋ก '#000000'์ผ๋ก๊ตฌ์ฑ๋๋ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ๋งค์ฐ ๋๋ฌผ๋ค.
- ๋ฐ๋ผ์ ์์ ์๊น๋ง, ์ฐ ๊ฒ์ ์์ background๋ผ๊ณ ๋ช ์นญํด๋๋ค. (์ดํด๊ฐ ์๊ฐ๋ฉด, ๋์ค์ ์คํ์ฝ๋ ๋ณด๋ฉด ์ดํดํ ๊ฒ์ด๋ค.)
- ํ๊ณ์
- rule based ์ด๊ธฐ์ ์ ํด์ง ์์๋ง ๊ตฌ๋ณํ ์ ์๋ค๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์กด์ฌํ๊ธฐ์, ๋ฐ์ ์ด ๋ ํ์ํ๋ค.
3-4. color palette ์์ฑ
๋ง๋ค์ด ๋์ color_dic์ ์ค์ ์์์ผ๋ก ๋ณํ์์ผ์ฃผ๋ ๋จ๊ณ์ด๋ค.
๋ฌธ์์ด ๋ฒกํฐ์ ์๋ hex code ๋ฅผ ๊ธฐ์ค์ผ๋ก magick ์ด๋ฏธ์ง๋ฅผ ์์ฑํด์ค๋ค.
for (i in seq_along(color_dic)) {
fig_name <- paste0(names(color_dic)[i], "_pic")
assign(
fig_name,
image_graph(width = 100, height = 100, res = 300)
)
par(mar = rep(0, 4))
plot.new()
rect(0, 0, 1, 1, col = color_dic[i], border = color_dic[i])
assign(fig_name, magick::image_crop(get(fig_name), "50x50+10+10"))
dev.off()
rm(i, fig_name)
}
color_pal <- paste0(names(color_dic), "_pic")
- rect(0,0,1,1, col = color_dic[i], border = color_dic[i])
- color_dic ์ ์ ์ฅ๋์ด ์๋ ์์๋ค์ ์ฌ๊ฐํ์ผ๋ก ๋ถ๋ฌ์์ ์ญ ์ด์ด์ฃผ๋ฉด์ color_pal ์ ์์ฑํ๋ค.
3-5. color stand (์์ ํ์ค) ์ ์
magick ํํ๋ก ํ์ฑ๋ ์์ ์ด๋ฏธ์ง๋ฅผ ํ๋์ ์ด๋ฏธ์ง๋ก ๋ถ์ฌ์ ์์ ํ์ค (standard) ๋ฅผ ๋ง๋ค์ด์ค๋ค.
magick ํํ๋, ์ถ๋ ฅํ๋ฉด ์์์ ๋ํ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋๊ณ ์ด๋ฏธ์ง๊ฐ ์ค์ง์ ์ผ๋ก ์ถ๋ ฅ๋์ง ์๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ์ค์ ์ฐ๋ฆฌ๊ฐ ๋์ผ๋ก ๋ณผ ์ ์๋ ์ด๋ฏธ์ง๋ก ๋ณํํด์ฃผ๋ ๋จ๊ณ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
#color_stand ์ ์
color_stand <- c()
for (i in 1:length(color_dic)) {
color_stand <- append(color_stand, get(color_pal[i]), after = 0)
}
color_stand <- image_append(color_stand)
color_stand๋ฅผ ์ถ๋ ฅํ๋ฉด ์๋์ ๊ฐ์ ์ด๋ฏธ์ง๊ฐ ๋์จ๋ค. (์ผ๋ถ๋ง ์ถ์ถํด ๋ดค๋ค)
3-6. Image mapping
์์ ์ถ์ถ์ ์ํ๋ ์ด๋ฏธ์ง๋ก๋ถํฐ, ์์ํ์ค์ ์๋ ์์์ ์ถ์ถํด๋ณธ๋ค.
image_map ํจ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ณ , ์ด ํจ์๋ ์ด๋ฏธ์ง์ ์์ํ์ค์ ์กด์ฌํ๋ color๋ฅผ ๋น๊ตํ์ฌ, ๋์ผํ ์์๋ค์ ์ถ๋ ฅํด์ค๋ค.
#image mapping
img_mapped <- image_transparent(image_map(image = img, map = color_stand), color = "white")
img_trans <- image_map(image = img_mapped, map = color_stand)
- img mapping ์ ๋๋ฒํจ์ผ๋ก์จ, ๋ ์ ํํ ์์๋ง์ ๋ฝ์์ค๊ณ ์ ํ๋ค.
- img_transparent ํจ์๋ฅผ ์ฌ์ฉํ์ฌ, ์ฒซ ๋ฒ์งธ ๋งคํ๋ ์ฌ์ง์์ white ๋ฅผ ๋ฐฐ๊ฒฝ์ฒ๋ฆฌํ๋ฉฐ ์๋ ์ ๊ฑฐ ํด์คฌ๋ค.
- ์ด๋ฏธ์ง๊ฐ ๋งคํ์ด ๋๋ฒ ์๋ฃ ๋ img_trans ๋ฅผ ์ถ๋ ฅํ๋ฉด ์ค๋ฅธ ์ชฝ ์ฌ์ง๊ณผ ๊ฐ์ด ์์ ํ๋ ํธ์ ์๋ ์์๋ง ์ถ์ถ๋๋ค.
3-7. ์ถ์ถ๋ ์์์ ๋น๋์์ ๊ตฌ์ฑ ๋น์จ์ ๊ณ์ฐํ๋ ํจ์ ๊ตฌํ
# count color freq
count_colors <- function(image) {
data <- image_data(image) %>%
apply(2:3, paste, collapse = "") %>%
as.vector %>%
table() %>% #count
as.data.frame() %>%
setNames(c("hex", "freq")) #col_name ์ง์
data$hex <- paste("#", data$hex, sep="") #data์ # ๋ถ์ฌ์ค
return(data)
}
# get color rate
get_color_rate <- function(img) {
colors_in_dic <- img_trans %>%
count_colors() %>%
left_join(
enframe(color_dic) %>%
rename(hex = value),
by = "hex"
) %>%
arrange(desc(freq)) %>%
select(
`colorName` = name, hexcode = hex,
`Freq` = freq
)
colors_in_dic$colorName <- gsub("[0-9]","", colors_in_dic$colorName)
colors_in_dic <- colors_in_dic %>%
select(c("colorName","Freq"))
colors_in_dic <- colors_in_dic %>%
group_by(colorName) %>%
summarise(freq = sum(Freq)) %>%
as.data.frame() %>%
arrange(desc(freq)) %>%
filter(colorName != "background", freq > 100)
colors_in_dic <- colors_in_dic %>%
mutate(Percent = 100 * round((freq/sum(freq)), 3)) %>%
filter(Percent > 1.0)
return(colors_in_dic)
}
- ์ด๋ฏธ์ง์ ์์์ ํฌํจ๋ hex code ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ , ์์ ์ด๋ฆ์ ์ฐพ์์ฃผ๊ณ ๋น๋์, ๋น์จ์ ๊ณ์ฐํ๋ ํจ์์ด๋ค.
- blue, blue2, blue3... ์ ๋ค์ ์ซ์๋ฅผ ์์ ๋ฒ๋ฆฌ๊ณ blue ํ๋๋ก ํต์ผ์์ผ count ํ๋ค.
- background ์์์ (์ด๊ธฐ์ ์์ black์ background๋ผ๊ณ ์ง์ ) count์์ ์ ์ธ ์์ผ์ค๋ค.
- Freq ๊ฐ 100 ์ดํ์ธ ๊ฒ๊ณผ Percent ๊ฐ 1.0 ์ดํ์ธ ๊ฒ์ count์์ ์ ์ธ ์์ผ์คฌ๋ค.
color_rate <- get_color_rate(img_trans) ## color_rate ์คํ
# ํจ์ ๋ง์ง๋ง์ ์ถ๋ ฅ๊ฐ์ 'img_trans ์ rate ๋๋ค ๊ฐ์ ธ์ค๊ณ ์ถ์ด์ ํจ์๋ก ๋ง๋ค์ด์คฌ๋ค.
re <- function(x, y) {
val.x <- x
val.y <- y
return(list(rate = val.x, pic = val.y))
}
result <- re(color_rate, img_trans)
# ๋งจ ์ฒ์ extract_colors() ํจ์์ ๋ซํ๋ ๋ถ๋ถ์ด๋ค.
return(result) # ํจ์ ๋งจ ๋ง์ง๋ง return ๊ฐ์ result๋ก ๋ฐ์์จ๋ค.
}
colorName freq Percent 1 black 15482 67.2 2 gray 4405 19.1 3 white 1876 8.1 4 khaki 445 1.9 5 green 417 1.8 |
์ถ๋ ฅ ๊ฒฐ๊ณผ ) ์ด๋ ๊ฒ ์ฌ์ง๊ณผ, color rate๊ฐ ์ถ๋ ฅ๋๋ค.
3.8. ๋ฒกํฐํ
๋ง์ง๋ง์ผ๋ก ์ค๋ฅธ์ชฝ์ ์ถ๋ ฅ๋ rate ๋ฅผ ๋ฒกํฐํ ์ํค๋ฉด, ํด๋น ์ฌ์ง์ ์์ ์ ๋ณด๋ฅผ ์ฌ๋ฌ ๋ฐฉ๋ฉด์์ ํ์ฉ ๊ฐ๋ฅํ๋ค๊ณ ๋ฐํํ๋ค. color stand ์ ์๋ ์์์ ์ ๋งํผ์ ์ฐจ์์ ๊ฐ์ง ๋ฒกํฐ๋ก ์ถ๋ ฅํ๋ค!
ํ๊ณ์ (๊ผญ ๋ค์ ๊ฐ๋ฐํด ๋ณผ ๊ฒ)
1. rule base ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ์๋ก์ด ์์์ด ์ถ๊ฐ๋๋ฉด, ๊ตฌ๋ถํ๊ธฐ ์ด๋ ต๋ค. (์๋์ฒ๋ผ ํ์คํ ์์ ์ ์๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์, ์ฐํ ํ์คํ (์ฐ๋์)์ ์ถ์ถํ์ง ๋ชปํ๋ค.)
2. ํ์ฌ ์ ํด์ ธ ์๋ ์์์ด ์๋๋ฉด ๊ตฌ๋ณ์ด ํ๋ค๋ค. (์๋ ์๋ณธ์ฌ์ง์ ์ฑ ์ฝ์์ด ๋ฐ๋ก ์ง์ ๋์ด์์ง ์์์, ์์คํ
์์ผ๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ๋ณด๋ผ์์ผ๋ก ์ถ๋ ฅํ๋ ๊ฒ. --> color_dic์ ๋ค์ด๊ฐ์๋ ์์์ด ๋ง์์ผ ์ ๋๋ก ๋ ๊ตฌ๋ณ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค..)
3. ๋ฐฐ๊ฒฝ์ ์๋์ผ๋ก ์ ๊ฑฐํ๋ ๊ณผ์ ์์ ์๊ธฐ๋ ๋
ธ์ด์ฆ๋ ์ก๊ธฐ ํ๋ค๋ค. ์ค์ ๋ก ์๋ ์์ ๊ฑฐ ์ฌ์ง์, ๋
ธ์ด์ฆ ๋ฐ์์ผ๋ก ์ธํด ์์์ ๋น์จ์ด white ๊ฐ ๋๊ฒ ์ถ๋ ฅ๋์๋ค. ์ด๋ฐ ๋
ธ์ด์ฆ๋ฅผ ์ก๊ธฐ ์ํด์๋ ๋ ์ ๊ตํ ๋ชจ๋ธ์ด ํ์ํ ๊ฒ์ด๋ค.
4. transparents ํจ์๋ก ๋ฐฐ๊ฒฝ์ white๋ก ์ง์ ํด์ ์ ๊ฑฐํ๋ค. ๋ฐ๋ผ์ ๋ฐฐ๊ฒฝ์์ด ์์ ํ ํ์์์ด ์๋ ๊ฒฝ์ฐ๋ ์ํ์ ์์์ ํน์ ์ง๊ธฐ ํ๋ค๋ค. (๊ทธ๋ฆผ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐฐ๊ฒฝ์ด ์ ๊ฑฐ๋์ง ๋ชปํ๋ค. ๋ฐ๋ผ์ ๊ฒ์ ์์ด ๋๋ถ๋ถ์ธ ์ด์ดํฐ์ด, white ๋น์จ์ด ๋๊ฒ ๋ํ๋ฌ๋ค.)
๋ง์น๋ฉฐ
๊ฐ๋ฐ์ด๊ธฐ, ๋ฏธ์ํ ๋จ๊ณ์ผ ๋ ์ฝ๋๋ฅผ ์์ฑํด์ ์ ๋๋ก ์ฃผ์์ด ๋ฌ๋ ค์์ง๋, ๋ณ์๋ช ์ด ์ ํํ๊ณ ๊น๋ํ์ง๋ ๋ชปํ๋ค. ์์ผ๋ก ๋ ๋์ ์ฝ๋ฉ์ ํ ์ ์๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค. ์ญ์ ๋จ๋ค์ด ์์๋ณด๊ฒ๋ ์ฝ๋ฉ์ ํ๊ธฐ๋ ์ ๋ง ์ฝ์ง ์๋ค. ์ง๊ธ ๋์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋๊ฒ๋ ๋๊ฒ ์ฐ์์ข์ ํ๋ค... ๋๋ฆ ํ์ฌ์์ ์ผ์ ๋ฐฐ์ฐ๋ฉด์ ์ด์ฌํ ๋ฌธ์ํ๋ฅผ ํด๋์ ์ด์ ๋ ์ธ๊ฒ ๊ฐ์ง๋ง, ๋ ๋ ธ๋ ฅํด์ ์ปค๋ฎค๋์ผ์ด์ ์คํฌ๊น์ง ์ ๊ทธ๋ ์ด๋ ํ๋ ๊ทธ๋ ๊น์ง,,,, .. ๋ธ๋ก๊ทธ ์ ๋ก๋ ํด๋ด์ผ์ง...
์ ๊ทธ๋ฆฌ๊ณ , ํด๋น ์ฝ๋๋ฅผ ๊ตฌํํ๊ณ ์ ๋ง... ๋ง์ด ์นญ์ฐฌ๋ฐ์๋ค. ๋ฐฉ๋ฒ์ด ์ ๋ฐํ๊ณ , ๋ฐ์ดํฐ ํ์ฉ๊ฐ๋ฅ์ฑ์ด ๋์๊ธฐ ๋๋ฌธ์ด์๋ค.
์ธํด์ ํ๋ฉด์ ํ ๊ฒฝํ์ด ์ ๋ง ๋ง๊ณ , ๊ฐ์ง๊ณ ๋๋ฌด ์ป์๊ฒ ๋ง๊ธฐ์ ๋ฐ๋ก ํ๊ธฐ๋ฅผ ์์ฑํ๋ ค๊ณ ํ๋ค:)