https://www.youtube.com/watch?v=gmP8cwH3PW0
- ์ฃผ์ : ๊ตญ๋ด ์ด์ปค๋จธ์ค ์๋น์ค๋ฅผ ๋ฒค์น๋งํนํ์ฌ, ์ํ ๊ฒ์๋ถํฐ ์ฃผ๋ฌธยท๊ฒฐ์ ๊น์ง ํต์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ฑ๋ฅ์ ๊ฐ์ ํ ํ๋ก์ ํธ
- ๊ฐ๋ฐ ํ๋ก์ธ์ค : ๊ธฐํ ๋ฐ MVP ๊ตฌ์ถ โ ๋จ์/ํตํฉ/๋ถํ ํ ์คํธ ๊ธฐ๋ฐ ๋ก์ง ์ ํฉ์ฑ ์ ๊ฒ ๋ฐ ์ฑ๋ฅ ๊ฐ์ ๋ฐ๋ณต
- ํค์๋ ๊ธฐ๋ฐ ๊ฒ์ : ์ํ๋ช , ๋ธ๋๋๋ช , ์นดํ ๊ณ ๋ฆฌ๋ช ์ ๊ธฐ์ค์ผ๋ก ํค์๋๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
- ํํฐ ๊ธฐ๋ฅ ์ง์ : ๋ธ๋๋, ์นดํ ๊ณ ๋ฆฌ, ์ต์/์ต๋ ๊ฐ๊ฒฉ ์กฐ๊ฑด์ ํ์ฉํด ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค.
- ์ ๋ ฌ ๊ธฐ๋ฅ ์ ๊ณต : ์ต์ ์, ๋์/๋ฎ์ ๊ฐ๊ฒฉ์ ์ ๋ ฌ ์ต์ ์ ํตํด ์ฌ์ฉ์ ๋ง์ถค ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค.
- ํ์/๋นํ์ ๊ตฌ๋ถ ๋ก๊ทธ ๊ธฐ๋ก : ๊ฒ์ ์ ์ฌ์ฉ์(ํ์/๋นํ์)๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ฒ์ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๊ณ ,
ํด๋น ๋ก๊ทธ๋ฅผ ํตํด ์ธ๊ธฐ ๊ฒ์์ด๋ฅผ ์ถ์ถํ๊ณ ์๋์์ฑ ๊ธฐ๋ฅ์ ํ์ฉ๋ฉ๋๋ค.
- ๋จ์ผ ๋๋ ์ฌ๋ฌ ์ํ์ ๋์์ ์ฃผ๋ฌธ ๊ฐ๋ฅ : ์ฌ์ฉ์๋ ๋จ์ผ ์ฃผ๋ฌธ ํน์ ์ฅ๋ฐ๊ตฌ๋์ ๋ด์ ์ฌ๋ฌ ์ํ๋ค์ ํ ๋ฒ์ ์ฃผ๋ฌธ๋ ๊ฐ๋ฅํฉ๋๋ค.
- ์ํ ์๋ ์ ํ ๊ธฐ๋ฅ ์ ๊ณต : ๊ฐ ์ํ๋ณ๋ก ์ํ๋ ์๋์ ์์ ๋กญ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
- ์นด์นด์คํ์ด ๊ฒฐ์ ์ง์ : ๊ฐํธ๊ฒฐ์ ์๋น์ค์ธ ์นด์นด์คํ์ด๋ฅผ ํตํด ์์ฝ๊ฒ ๊ฒฐ์ ๋ฅผ ์งํํ ์ ์์ต๋๋ค.
- ๊ฒฐ์ ํ๋ก์ธ์ค ํ๋ฆ : ์ฃผ๋ฌธ ์์ฑ โ ๊ฒฐ์ ์ค๋น โ ๊ฒฐ์ ์น์ธ์ผ๋ก ์ด์ด์ง๋ ๋จ๊ณ์ ๊ฒฐ์ ํ๋ฆ์ ๋ฐ๋ฆ ๋๋ค.
- ์ค์๊ฐ ์ฌ๊ณ ํ์ธ ๋ฐ ๋ฐ์ : ๊ฒฐ์ ์น์ธ ์์ ์ ์ํ์ ์ฌ๊ณ ๋ฅผ ํ์ธํ์ฌ ํ์ ์ด๋ ์ด๊ณผ ์ฃผ๋ฌธ์ ๋ฐฉ์งํฉ๋๋ค.
๋ฌธ์ ์ํฉ
- ๊ฒฐ์ ์น์ธ ๊ณผ์ ์ด ๋ชจ๋ ํ๋์ ๋๊ธฐ ํธ๋์ญ์
๋ด์์ ์ฒ๋ฆฌ๋จ
- ์ฌ๊ณ ์ฐจ๊ฐ, ์ฃผ๋ฌธ ์ํ ๋ณ๊ฒฝ, ์นด์นด์คํ์ด ๊ฒฐ์ ์น์ธ ์์ฒญ์ด ์์ฐจ์ ์ผ๋ก ๋๊ธฐ ์คํ๋จ
- ์ธ๋ถ API ํธ์ถ ์ง์ฐ ์ ์ ์ฒด ์๋ต ํ๋ฆ์ด ์ง์ฐ๋์ด, ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ์๋ฃ ํ ๊ฒฐ๊ณผ ํ๋ฉด๊น์ง ์ค๋ ๋๊ธฐ ์๊ฐ์ ๊ฒช๊ฒ ๋จ
- ์ฌ๊ณ ์ฐจ๊ฐ ์ Pessimistic Read ๋ฝ ์ฌ์ฉ์ผ๋ก ์ฆ์ ๋ฐ๋๋ฝ ๋ฐ์
- ๋ค์ ์ฌ์ฉ์๊ฐ ๋์์ ๋์ผ ์ํ์ ์ฃผ๋ฌธํ๋ ์ํฉ์์,
Pessimistic_Read๋ฝ์ผ๋ก ์กฐํํ ํ UPDATE ์ ๋ฐฐํ์ ๋ฝ(X Lock) ์์ฒญ์ด ๋ฐ์ - ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๋์ผ ๋ ์ฝ๋์ ๋ํด ๊ณต์ ๋ฝ(S Lock)์ ๋ณด์ ์ค์ธ ๊ฒฝ์ฐ, X ๋ฝ์ ํ๋ํ์ง ๋ชปํ๊ณ ์ํ ๋๊ธฐ๋ก ์ธํด ๋ฐ๋๋ฝ ๋ฐ์
- ๋ค์ ์ฌ์ฉ์๊ฐ ๋์์ ๋์ผ ์ํ์ ์ฃผ๋ฌธํ๋ ์ํฉ์์,
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํธ๋์ญ์
๋ฒ์ ๋ถ๋ฆฌ ๋ฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋์
- ๋ด๋ถ ์ฒ๋ฆฌ ๋ก์ง(์ฌ๊ณ ์ฐจ๊ฐ, ์ฃผ๋ฌธ ์ํ ๋ณ๊ฒฝ)์ ํธ๋์ญ์ ๋ด์์ ์ฐ์ ์ํ
- ์ธ๋ถ API ํธ์ถ(์นด์นด์คํ์ด ๊ฒฐ์ ์น์ธ)์ ์ปค๋ฐ ์ดํ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ํตํด ๋น๋๊ธฐ ์ฒ๋ฆฌ, ๋ณ๋ชฉ ์ํ ๋ฐ ์๋ต ์๋ ๊ฐ์
- Pessimistic Write ๋ฝ์ผ๋ก ๋ณ๊ฒฝ
- ์ฌ๊ณ ์กฐํ ์์ ์ ๋ช ์์ ์ผ๋ก ๋ฐฐํ์ ๋ฝ(X Lock)์ ๊ฑธ์ด, ์ดํ UPDATE ์์ ์ ๋ฝ ์ ํ ์ถฉ๋ ์์ด ์ฒ๋ฆฌ
- ๋ฝ ํ๋ ์ถฉ๋๋ก ์ธํ ๋ฐ๋๋ฝ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์ ๊ฑฐ
- PlatformTransactionManager๋ฅผ ํ์ฉํ ์๋ ํธ๋์ญ์
์ ์ด
- ํธ๋์ญ์ ์ปค๋ฐ ์ดํ์๋ง ์ธ๋ถ API ํธ์ถ ์ด๋ฒคํธ๋ฅผ ๋ฐํํจ์ผ๋ก์จ, ํธ๋์ญ์ ์ ํฉ์ฑ๊ณผ ์ธ๋ถ ์์คํ ๊ณผ์ ์์ ์ฑ ํ๋ณด
- ๋ณด์ ํธ๋์ญ์
๊ตฌ์กฐ ๋์
- ์ธ๋ถ API ํธ์ถ ์คํจ ์, ์ฃผ๋ฌธ ์ํ ๋ณต๊ตฌ ๋ฐ ์ฌ๊ณ ๋ณต์ ๋ฑ ์ ํฉ์ฑ ์ ์ง ๋ก์ง์ ๋ณ๋ ๋ณด์ ํ๋ฆ์ผ๋ก ์ฒ๋ฆฌ
๊ฒฐ๊ณผ
๋ฌธ์ ์ํฉ
- ์ฌ๊ณ ์ฐจ๊ฐ ์ ๋ฐ์ํ๋ ๋น๋ฒํ ๋ฐ๋๋ฝ ๋ฌธ์
- ๋ค๊ฑด ์ฃผ๋ฌธ ์ํฉ์์ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์๋ก ๋ค๋ฅธ ์ํ์ ๋ํด ๋ฝ์ ํ๋ ํ ๊ต์ฐจ ์ ๊ทผํ๋ฉด์ ๋ฐ๋๋ฝ์ด ๋น๋ฒํ ๋ฐ์
- ์ด์ ๋ํ ๋ณ๋์ ์ฒ๋ฆฌ ๋ก์ง์ด ์์ด์ ์๋ต ์คํจ๋ก ์ด์ด์ง
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋ฝ ํ๋ ์์ ํต์ผ ์ ๋ต(productId ์ ๋ ฌ) ์คํ
- ๋์ผํ ์์๋ก ๋ฝ์ ํ๋ํ๋๋ก ์ ๋ ฌํ์ฌ ๋ฐ๋๋ฝ์ ํํผํ์ผ๋, ํน์ ์ํ์ ๋ฝ์ด ๋ชฐ๋ฆฌ๋ฉฐ ๋ณ๋ชฉ ๋ฐ ํ์์์ ๋ฌธ์ ๋ฐ์
- SERIALIZABLE ๊ฒฉ๋ฆฌ ์์ค ์คํ (์คํจ)
SERIALIZABLE๊ฒฉ๋ฆฌ ์์ค์ ์ง๋ ฌํ ๋ณด์ฅ์ ์ํ ์๋จ์ผ ๋ฟ, ๋ฐ๋๋ฝ ํํผ๋ฅผ ์ํ ๋์์ด ์๋
- โ
์ฌ์๋ ๊ธฐ๋ฐ ํ๋ณต ์ ๋ต ์ต์ข
์ฑํ
- ๋ฐ๋๋ฝ ๋ฐ์ ์ ์๋ ์ฌ์๋๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ๋ณต๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ์ ํ
- ๋จ์ ์ฝ๋ ์ถ๊ฐ๋ก๋ ์๋ต ์์ ์ฑ๊ณผ ์ฑ๋ฅ ๋ชจ๋ ํ๋ณด, ์ค์ ํ ์คํธ์์ ์๋ฌ ์๋ต๋ฅ 0% ๋ฌ์ฑ
๋ฌธ์ ์ํฉ
- DB ๋ฝ ๊ธฐ๋ฐ ์ฌ๊ณ ์ฐจ๊ฐ ๋ฐฉ์์ ๋์ ์์ ์ฑ์ ๋ณด์ฅํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ค์ด ๋ฐ์
- ๋ฝ ๊ฒฝํฉ์ผ๋ก ์ธํ ๋ณ๋ชฉ ๋ฐ์
- ํนํ ์ธ๊ธฐ ์ํ์ ๋ํ ๋์ ์ฃผ๋ฌธ ์ ์๋ต ์ง์ฐ ๋ฐ ๊ฒฐ์ ์คํจ์จ ์ฆ๊ฐ
- ์ฌ์๋ ๋ก์ง ๋์ ํ์๋ DB ์์ ๋ญ๋น์ ๋ฎ์ ์ฒ๋ฆฌ๋ ๋ฌธ์ ์ง์
ํด๊ฒฐ ๋ฐฉ๋ฒ
- Redis ๊ธฐ๋ฐ ์ฌ๊ณ ์ฐจ๊ฐ ๊ตฌ์กฐ๋ก ์ ํ
- ์ฌ๊ณ ์ํ๋ฅผ Redis๋ก ์ด์ ํ๊ณ , Lua ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์์์ ์ฌ๊ณ ์ฐจ๊ฐ ์ฒ๋ฆฌ
- ๊ธฐ์กด
Pessimistic Write์ ๊ฑฐ, ์ฌ๊ณ ์ฐจ๊ฐ ์ ๋ฐ์ํ๋ ๋ฝ ๊ฒฝํฉ ๊ตฌ์กฐ ์์ฒด ์ ๊ฑฐ
- Redis TTL ๋ฝ์ผ๋ก ์ค๋ณต ๊ฒฐ์ ๋ฐฉ์ง
SETNX + TTL๋ฐฉ์์ผ๋ก ๊ฒฐ์ (pid) ๋จ์ ๋ฝ์ ์ค์ ํด ์ค๋ณต ์น์ธ ์ฐจ๋จ
- ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก MySQL ์ฌ๊ณ ์ด๋ ฅ ๋น๋๊ธฐ ์ ์ฅ
- ์ค์๊ฐ ์ฌ๊ณ ์ฒ๋ฆฌ๋ Redis์์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ
- StockHistory ๋ฑ์ DB ์ด๋ ฅ ์ ๋ณด๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋์์ ๋น๋๊ธฐ ์ ์ฅํ์ฌ ์์ ์ฑ๊ณผ ๋ฐ์ดํฐ ์ ํฉ์ฑ ํ๋ณด
๋ฌธ์ ์ํฉ
- 43๋ง ๊ฑด์ ์ํ ๋ฐ์ดํฐ์ 160๋ง ๊ฑด ์ด์์ ์ฐ๊ด ํ
์ด๋ธ(๋ธ๋๋, ์นดํ
๊ณ ๋ฆฌ, ์ํ ์ด๋ฏธ์ง)์ ๋์์ผ๋ก ํ ๊ฒ์์์ ๋ค์๊ณผ ๊ฐ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฐ์
LIKE '%keyword%'์กฐ๊ฑด์ผ๋ก B-Tree ์ธ๋ฑ์ค ๋ฏธ์ฌ์ฉ, ํ ์ค์บ ๋ฐ์- OR ์กฐ๊ฑด์ผ๋ก ์ธํ ์ธ๋ฑ์ค ํธ์๋ค์ด ๋ฏธ์ ์ฉ โ
productํ ์ด๋ธ ์ ์ฒด ์ค์บ - ์ํ ์ด๋ฏธ์ง ์กฐํ ์ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ ๋ฐ๋ณต ์คํ
LEFT JOIN์ฌ์ฉ์ผ๋ก ๋ถํ์ํ ํ ๋ก๋ฉ ๋ฐ ์กฐ์ธ ๋น์ฉ ์ฆ๊ฐ
ํด๊ฒฐ ๋ฐฉ๋ฒ
- Full-Text Index ๋์
- ์ํ๋ช
, ๋ธ๋๋๋ช
, ์นดํ
๊ณ ๋ฆฌ๋ช
์ ๋ํด Full-Text ์ธ๋ฑ์ค๋ฅผ ์ ์ฉํ๊ณ
MATCH ... AGAINST์ฌ์ฉ
- ์ํ๋ช
, ๋ธ๋๋๋ช
, ์นดํ
๊ณ ๋ฆฌ๋ช
์ ๋ํด Full-Text ์ธ๋ฑ์ค๋ฅผ ์ ์ฉํ๊ณ
- OR ์กฐ๊ฑด ๋ถ๋ฆฌ โ UNION ์ฒ๋ฆฌ
- ๊ฒ์ ํค์๋ ์กฐ๊ฑด์
OR๊ฐ ์๋ 3๊ฐ์UNION์ฟผ๋ฆฌ ๋ธ๋ก์ผ๋ก ๋ถ๋ฆฌํด ์ธ๋ฑ์ค ํธ์๋ค์ด ์ ๋
- ๊ฒ์ ํค์๋ ์กฐ๊ฑด์
- ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ ์ ๊ฑฐ ๋ฐ JOIN ์ ํ
- ์ด๋ฏธ์ง ์กฐํ ์๋ธ์ฟผ๋ฆฌ๋ฅผ
JOIN์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๋ฃจํ ๋ฐ๋ณต ์ต์ํ
- ์ด๋ฏธ์ง ์กฐํ ์๋ธ์ฟผ๋ฆฌ๋ฅผ
- JOIN ์ต์ ํ
- ๋ถํ์ํ LEFT JOIN โ INNER JOIN์ผ๋ก ์ ํํ์ฌ ์ฝ๊ธฐ ๋ฒ์ ์ถ์
๋ฌธ์ ์ํฉ
- ์ธ๋ถ ์๋ฒ์ 1๋ง ๋ช ๋ถํ ํ ์คํธ ์ค ์์ฒญ์ 80% ์ด์์ด ์คํจ
- ๋ก์ปฌ์์๋ ๋ฌธ์ ์์ โ ์ธ๋ถ ์๋ฒ์์๋ง ์ฐ๊ฒฐ ์ ์ค ๋ฐ์
- Spring Actuator, Wireshark ๋ฑ์ ํ์ฉํ ๋ถ์ ๊ฒฐ๊ณผ:
- ์๋ฒ๊ฐ ์์ฒญ ์์ฒด๋ฅผ ์์ ํ์ง ๋ชปํจ
- Tomcat์
accept()ํธ์ถ ์ด์ , OS ๋ ๋ฒจ TCP Backlog Queue๊ฐ ํฌํ ์ํ
์์ธ ์์ธ ๋ถ์
- Tomcat์ ํด๋ผ์ด์ธํธ ์์ฒญ์ OS์ TCP ๋๊ธฐ์ด(backlog)์ ์ ์ฅํ ๋ค
accept()๋ฅผ ํตํด ์๋ฝ - ์ด ๋
accept-count๊ฐ์ด ๋ฎ์ผ๋ฉด ์๋ฝ ๋๊ธฐ์ด ๊ณต๊ฐ์ด ๋ถ์กฑํด ์ฐ๊ฒฐ ๋๋ฝ ๋ฐ์ - ๋ํ, OS์
somaxconn๊ฐ์ด ์ ํ๋์ด ์์ผ๋ฉด Tomcataccept-count์ค์ ๋ ๋ฌด์๋ฏธํด์ง
ํด๊ฒฐ ๋ฐฉ๋ฒ
- Tomcat ์ค์ ์กฐ์ :
accept-count๋ฅผ 10000์ผ๋ก ํ์ฅ - OS ํ๋:
somaxconn๊ฐ์ 10000์ผ๋ก ๋ณ๊ฒฝ โsysctl -w net.core.somaxconn=10000
๊ฒฐ๊ณผ ๋ฐ ์ธ์ฌ์ดํธ
- ์ธ๋ถ ๋ถํ ํ ์คํธ์์ 1๋ง ๊ฐ ์์ฒญ ์ ์ ์์
- TCP Backlog์ Tomcat accept-count ๊ด๊ณ๋ฅผ ์ค์ ํ๊ฒฝ์์ ๋ช ํํ ์ดํดํ๊ณ ์ ์ฉ
๋ฌธ์ ์ํฉ
- ์ด๊ธฐ MVP ๊ฐ๋ฐ ์์๋ ๋จ์ผ ์ธ์คํด์ค ํ๊ฒฝ์ ์ ์ ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ฝ์ผ๋ก ์ฟ ํฐ ๋ฐ๊ธ ๋์์ฑ ์ ์ด
- ๋ถํ ํ
์คํธ ๊ฒฐ๊ณผ, ๋ฝ์ด DB ํธ๋์ญ์
์ปค๋ฐ๋ณด๋ค ๋จผ์ ํด์ ๋๋ฉฐ ์ค๋ณต ๋ฐ๊ธ ๋ฐ์
- ์ปค๋ฐ ์ด์ ๋ฝ ํด์ โ ๋ค๋ฅธ ์์ฒญ์ด ๋์ผ ์ฟ ํฐ์ ๋์ ๋ฐ๊ธ ์๋ โ ๋ฐ์ดํฐ ์ ํฉ์ฑ ๊นจ์ง
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํธ๋์ญ์
์ปค๋ฐ ์ดํ์ ๋ฝ์ ํด์ ํ๋๋ก ๋ก์ง ๊ตฌ์กฐ ์์
- ์ปค๋ฐ ์๋ฃ๊น์ง ๋ฝ์ ์ ์งํจ์ผ๋ก์จ ๋์์ฑ ์ถฉ๋ ์์ ๋ฐฉ์ง
- DB ๋ฐ์ ์ดํ๋ง ๋ค์ ์์ฒญ ํ์ฉ โ ์ ํฉ์ฑ ๋ณด์ฅ
๋ฌธ์ ์ํฉ
- ์ค์ KakaoPay API๋ ์ฑ๋ฅ ํ ์คํธ ๋ฐ ๋ฐ๋ณต ํธ์ถ์ ์ ์ฝ์ด ์กด์ฌ
- ๋ถํ ํ ์คํธ ์ ์ธ๋ถ API ํธ์ถ์ ํ์ค์ ์ผ๋ก ์ด๋ ค์
ํด๊ฒฐ ๋ฐฉ๋ฒ
- KakaoPay ํ๋ฆ์ ๋ชจ์ฌํ Fake ๊ฒฐ์ API ์๋ฒ ์์ฒด ๊ตฌ์ถ
- ์ค์ API ์๋๋ฆฌ์ค๋ฅผ ์ ์ฌํ๊ฒ ๊ตฌํํ์ฌ ์ฑ๋ฅ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ ์ ์ฌ ์ด์ ํ๊ฒฝ ๊ตฌ์ฑ
- ํ ์คํธ ์ ์ธ๋ถ API ํธ์ถ ์์ด๋ ์ฑ๋ฅ ์ธก์ ๋ฐ ๋ณ๋ชฉ ๊ตฌ๊ฐ ์ ํํ ์ง๋จ ๊ฐ๋ฅ
ํ๋ก์ ํธ ์งํ ์ค ๊ฒช์๋ ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ๊ณผ ๊ธฐ์ ์ ๊ฒฐ์ ์ ๋ํ ๋ ์์ธํ ๋ด์ฉ์ ์๋ Wiki ํ์ด์ง์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
Wiki๋ก ์ด๋ํ๊ธฐ!






