๐ป ํจํด
Week 1
ํ์ดํผ๋งํฌ์ ํ ๋๋ถ์ ์ฐ์ฐํ VACํจํด์ ์๊ฐํ๋ ๊ธ์ ๋ง๋ฌ๋ค. UI์ ๋ก์ง์ ์ด์ง์ฟต ๋ถ๋ฆฌํ๋ ๋ฐฉ์์ด๋ค.
๊ทธ๋์ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ก์ง์ด 50์ค~100์ค ๋์ด๊ฐ๋ฉด ํ ์ ์์๋๋ก ๋ด๋ฆฌ๋ค๊ฐ '๋๋ฌด ๊ธด๋ฐ?'ํ๊ณ ๋ณ ๊ณ ๋ฏผ ์์ด ์ปค์คํ
ํ
์ ๋ง๋ค์ด์ ๋นผ๊ณคํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ณดํต ์ปค์คํ
ํ
์ hooks ๋๋ ํ ๋ฆฌ์ ๋ชจ์๋๊ธฐ ๋๋ฌธ์ ์ ๊ทผ์ฑ์ด ์ข์ง๋ ์์๋ค. VACํจํด ๋๋ก ์์ฑํ๋ฉด ์ด ๋ฐฉ์๋๋ก ํ๋ฉด ๋ถ๋ฆฌ๋ง์ ์ํ ๋ถ๋ฆฌ ์ฉ๋์ ์ปค์คํ
ํ
์ ์ง๊ธ๋ณด๋ค ๋ง์ด ์ ๋ง๋ค์ด๋ ๋ ๊ฒ ๊ฐ๋ค.
๋จ์ ์ ๋ฏธ๋ฆฌ ์์ํด๋ณด์๋ฉด ์์ฒญ ๊ฐ๋จํ ๋ก์ง์ด ์งค๋งํ๊ฒ ๋ค์ด๊ฐ ์ปดํฌ๋ํธ์ด๋๋ผ๋ ํ์ผ์ 2๊ฐ์ฉ ์์ฑํด์ผ ํ๋ ์ ์ด ๋ฒ๊ฑฐ๋ก์ธ ์ ์๊ฒ ๋ค. ๊ทธ๋ผ jsx๋ฅผ ์คํ์ผ๋ ์ปดํฌ๋ํธ ์ ์ํด ๋๋ style.js๋ ํตํฉํด์ ์ต์๋จ์๋ view ๋จผ์ ์ ์ํ๊ณ ํ๋จ์๋ ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ฅผ function ํค์๋๋ก ํธ์ด์คํ ์์ผ์ ์ฐ๋ฉด ์ด๋จ๊น ์ถ๋ค.
Week 2
JSX ๊ตฌ์กฐ๋ฅผ view์ ์ฎ๊ฒจ๋์ผ๋, ์คํ์ผ ๋๋ฏธ์ ๊ฐ๋ ค์ง๋ ๋ฌธ์ ๊ฐ ์์๋ค. ์คํ์ผ๊ณผ JSX๋ ๋ ๊ฐ์ ์ฐฝ์ผ๋ก ๋ณ๋ ฌ์ ์ผ๋ก ๋ณด๋๊ฒ ๋ ํธํด์ ์๋ ๊ตฌ์กฐ๋๋ก ๋์๊ฐ๋ค...
Week 4
์ง๊ธ๊น์ง ๋ชจ๋ ์์๋ฅผ constants/ ๋๋ ํ ๋ฆฌ์์ ๊ด๋ฆฌํด ์๋๋ฐ, ์๋ค๊ฐ๋ค ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ๋๊ปด์ ธ์ ์คํ์ผ ๊ด๋ จ ์์๋ styels/ ๋๋ ํ ๋ฆฌ์ api ๊ด๋ จ ์์๋ service/ ๋๋ ํ ๋ฆฌ์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํด๋ณด์๋ค. ์ด ๋ฐฉ๋ฒ์ด ๋ ํธ์์ฑ์ด ์ข์์ง๋ ์์ผ๋ก ๋ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.
๐ป TypeScript
Week 1
๋์ ์ต๋ ๊ธฐ์ ๋ถ์ฑ TypeScript๋ฅผ ์ฒญ์ฐํ์. ๋ง์ฐ์ค ํธ๋ฒ๋ง์ผ๋ก ์ด๋ค prop์ธ์ง ์ ์ ์๋ ํํ๋ ๋๋ ค๋ณด์. ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ํํ์ด ๋ณด์.
Week 2
๊ฐ์ธ ํ๋ก์ ํธ์์ JS to TS ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ์๋ค. ์ฝ๋ ์์ฑํ๋ ์ค์ ๋ฐ๋ก ์๋ํฐ ์์์ ์๋ฌ๋ฅผ ํ์ํด์ฃผ๋๊น ๋๊ฐ ๋ง์์ง๋ ๋๋์ด ๋ ๋ค. '์ฐธ์กฐํ๋ ค๋ ๊ฐ์ฒด๊ฐ undefined' ๋ผ๋ ์๋ฌ์ ์ด์ ํค์ด์ง ์ ์๋๊ฑธ๊น? ์์ฐ์ฑ์ด ๋ฌด์ง์ฅ ํฅ์๋ ๊ฒ ๊ฐ๋ค.
Week 3
props๋ฅผ destructuring ํด์ ์ฌ์ฉํ๋ค๋ฉด ์๋์ ๊ฐ์ด ์ถ๊ฐํ readonly ๋ ํจ๊ณผ๊ฐ ์๋ค. destructuring ์ค let color = 'primary' ์ ๊ฐ์ด ์๋ณ์๋ฅผ ์๋ก ์ ์ธํ๋ ๊ณผ์ ์ด ์ผ์ด๋๊ณ , ์ด๋๋ถํฐ ๋ ์ด์ Prop.color๊ฐ ์๋๊ณ ๊ทธ๋ฅ color๊ฐ ๋์ด ์ง์ ํ ํ์ ๊ณผ์ ๋งํฌ๊ฐ ๋๊ธฐ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
interface Props extends ButtonHTMLAttributes<HTMLButtonElement> {
readonly color?: 'primary' | 'secondary' | 'gradient';
}
const Button = ({
color = 'primary',
...rest
}: Props) => {
color = 'secondary'; // can be assigned
...
}
interface Props extends ButtonHTMLAttributes<HTMLButtonElement> {
color?: 'primary' | 'secondary' | 'gradient';
}
const Button = ({
color = 'primary',
...rest
}: Readonly<Props>) => {
color = 'secondary'; // can be assigned
...
}
Week4
๋ฆฌ์กํธ Portal ์ ์ด์ฉํด Modal ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์๋ค. ๋ง๋ค๋ฉด์ ์ฑ ํฌ๋ผ, ์ํธ๋ ๋ฑ UI ์คํ์์ค๋ฅผ ์ฐธ๊ณ ํ๋๋ฐ ์ฌ๋ฌ๊ฐ์ง ์ ์ฉํ prop ์ ์ง์ํ๊ณ ์์ด์ ์ข์ ์ฐธ๊ณ ๊ฐ ๋์๋ค. ์ด๋ฅผ ์ฐธ๊ณ ํด์ slideDirection์ ์ฃผ๋ฉด Modal ์ด ๋ํ๋๊ณ ์ฌ๋ผ์ง ๋ ์ฌ๋ผ์ด๋ ์ ๋๋ฉ์ด์ ์ ์ค ์ ์๋ ๋ฑ์ prop์ ์ถ๊ฐ๋ก ๋ฃ์ด์ฃผ์๋ค. transtion ํจ๊ณผ ๋ฃ๋๊ฒ ์ฌ๋ฐ์๋ค.
useModal ํ ๊ณผ Modal UI๋ฅผ ์ด๋ป๊ฒ ์ฎ์์ง ๊ณ ๋ฏผํ๋ค useModal ์ด Modal UI๋ ๋ฆฌํดํด์ฃผ๋๋ก ํ๋ค. ๊ณ์ ์ฌ์ฉํด๋ณด๋ฉด์ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์์ง ๊ณ ๋ฏผํด๋ณด์. useModal์ hooks/ ๋๋ ํ ๋ฆฌ์ ๋ณ๋๋ก ๋นผ์ง ์๊ณ components/Modal/ ํ์์ ๊ทธ๋๋ก ๋์๋ค.
๐ป ์ปดํฌ๋ํธ ์ ๋ง๋ค๊ธฐ
Week 1
์ปดํฌ๋ํธ๋ฅผ ์ ๋ง๋ค๊ณ ์ถ๋ค. ์์ฃผ ์ ๋ง๋ค๊ณ ์ถ๋ค. ์ต๊ทผ FE Conf 2021 ์์ด์๋ง ์์
์ ์ฐธ์ฌํ๋ฉด์ ์ด๋ณ์ฒ UX Engineer๋์ ๋ฐํ ์์์ ๋ฐ๋ณตํด์ ๋ดค๋ค. (100๋ฒ์ ๋๊ฒ ๋ดค๋ค.) ์ข์ ๋์์ธ ์์ ์ฌํญ์ด ์๊ฒจ๋ ํฐ ์์ ์์ด ๋ฐ๋ก๋ฐ๋ก ๋์์ด ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ ์์ฌ์ด ์ปค์ก๋ค.
์์ ์ค์ ํ ์์๋ก, ์นด๋ ์์ 2๊ฐ์ ๋ฒํผ์ด ๊ฐ๋ก๋ก ์ ๋ ฌ๋์ด ์๋ค๊ฐ, ํ ๋ฒํผ์ ํ ์คํธ prop์ด ๊ธธ์ด์ ธ์ ์ ์ฒด ๋๋น์ 50%๊ฐ ๋์ด๊ฐ๋ฉด "์์์" ์ธ๋ก ์ ๋ ฌ๋ก ๋ฐ๋๊ฒ ๊ตฌํ๋ ์ปดํฌ๋ํธ๊ฐ ์๊ฐ๋์๋ค. ์ ๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ์ค๋ช ํด์ฃผ์๊ธฐ ์ํ ์์๋ ์๋์๋๋ฐ, ์ด ์ปดํฌ๋ํธ์ ๊ตฌํ ์์ฒด์ ๊ฝํ๋ค. ์ฃผ๋ณ ๋๋ฃ๋ค์ด๋ ์๊ธฐํ๋ฉด์ getComputedStyle ๋ฑ์ผ๋ก width๋ฅผ ์ฝ์ด์์ ์นด๋์ 50% ๋ณด๋ค ๋ฒํผ์ด ํฌ๋ฉด ๋์ ์ผ๋ก ์คํ์ผ์ ๋ณ๊ฒฝํด์ฃผ๋ ๊ตฌํ๋ฐฉ์์ ์๊ฐํ์๋ค.
๊ทธ๋ฐ๋ฐ ์ ๋ต์ ๊ฐ๋จํ๊ฒ flex-wrap์ ๊ฑธ์ด์ฃผ๋ ๊ฒ์ด์๋ค... ์ผ๋จ ์คํ์์ค๋ฅผ ๋ ์ ๊ทน์ ์ผ๋ก ์ดํด๋ณด๋ฉด์ ์ข์ ์ฌ๋ก๋ค์ ๋ง์ด ์ตํ์ผ๊ฒ ๋ค.
์คํ์์ค๋ฅผ ๋ณด๋ฉด์ ๊ฐ UI๋ณ๋ก ์ด๋ค props๋ฅผ ์ง์ํ๋์ง๋ ์ ๊ธฐ๋กํด๋์ผํ ๊ฒ ๊ฐ๋ค. ์๋ฅผ ๋ค์ด Input์ด๋ Button ๊ฐ์ ๊ฒฝ์ฐ์ ์ค๋ฅธ์ชฝ์ icon์ ๋ฃ์ ์ ์๊ฒ ํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ๋๋ฉด, ์ธ์ ๊ฐ ๋ ์ผ์ชฝ์ icon์ ๋ฃ๊ณ ์ถ์ ์๋ ์๋ค. ํน์ ์์ชฝ ๋ค ๋ฃ๊ณ ์ถ์ ์ ์๋ค. ์ฃผ์๋ฅผ ๊ฒ์ํ๋ ๊ฒ์์ฐฝ์ด๋ผ๋ฉด, ์ผ์ชฝ์๋ ์ง๋ชจ์ ์์ด์ฝ์ ์ค๋ฅธ์ชฝ์๋ ๋๋ณด๊ธฐ ์์ด์ฝ์ ๋ฃ๊ณ ์ถ์ ์ ์๋ค.
์ด๋ฐ ์ผ์ด์ค๋ค์ ๋ด ๊ฒฝํ์์ค์์ ๋ฏธ๋ฆฌ ๋ค ์ ์๋ ์์ผ๋, ์์ค๋ฅผ ๊ด์ฐฐํ ๋ ๋์ฌ๊ฒจ ๋ณด๋ ๊ฒ์ด ๋์์ด ๋ ๊ฒ ๊ฐ๋ค.
Week 2
variant๊ฐ ๋ง๊ณ ์ฐ์ต์ด ๋ ๋งํ Button, Input ๋ค์ ๋ง๋ค์ด๋ณด์๋ค. ์ด๋ค์ ์กฐํฉํ๋ ButtonGroup๊ณผ Form์ ๋ค์์ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋ค.
Week 3
๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ๋ฐ๋ผ ํ์ํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ก, Source ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํด์ Picture ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์๋ค.
๐ป CSS
Week 1
์ธํฐ๋ํฐ๋ธ ๋์์ธ์ ๋-๋ฑ ๋ง๋ค ์ ์๋ ๋ฅ๋ ฅ์ด ๊ฐ๊ณ ์ถ๋ค.
ํผํฐ์๊ฒ ๋ฌผ์ด๋ณด๋ canvas๋ฅผ ํ์ฉํด์ ๊ณต์ด ํ๊ธฐ๋ ํจ๊ณผ๋ฅผ ๊ตฌํํ๋ 10๋ถ์ง๋ฆฌ ์ ํ๋ธ ์์์ ์ถ์ฒํด์ฃผ์๋ค. ๊น์ข
๋ฏผ ์์ง๋์ด๋์ ์ฑ๋์ด์ด์ ๋ฐ๋ก ๊ตฌ๋
ํ๋ค. ๊น์ข
๋ฏผ ๋์ด ์ฐ์ '์ผ์ ๋ฐฐ์ ํ์ง ์๋๋ค' ์ฑ
๋ ์ฌํด๊ฐ ๊ฐ๊ธฐ ์ ์ ๊ผญ ์ฝ์ด๋ด์ผ๊ฒ ๋ค.
์ธํ๋ฐ์ ์ ํ ๋๋ฉํ์ด์ง ์ธํฐ๋์
์ ์ฌํํด๋ณด๋ ๊ฐ์๋ ์๋๋ฐ ๊ทธ๊ฒ๋ ๋นจ๋ฆฌ ๊ตฌํ๋ฅ๋ ฅ์ ํ์ฌํ๋ ์ง๋ฆ๊ธธ ๊ฐ์ ๋ณด์ธ๋ค.
Week 3
styled-components์ ์ฐ๋ค๊ฐ ๊ฐ๋ฒผ์ด emotion์ผ๋ก ๋์ด์ค๊ธด ํ๋๋ฐ, pure css๊ฐ ์๋๋ผ CSS-in-JS๋ฅผ ๊ผญ ์จ์ผํ๋ ์ด์ ๊ฐ ์์๊น? ๋์ ์ด๋ฐ ๊ณ ๋ฏผ์ ๋ํด ์ ๋ฐฐ ๊ฐ๋ฐ์๋(?)๊ป์๋ ๋ค์๊ณผ ๊ฐ์ ํํธ๋ฅผ ์ฃผ์ จ๋ค.
'๋ชจ๋ ์ผ์๋ ์ฐ์ ์์๊ฐ ์๋ค. ์ฑ๋ฅ์ด ์ฐ์ ์ธ์ง, ๊ฐ๋ฐ์๋์ ํธ์์ฑ์ด ์ฐ์ ์ธ์ง์ ๋ฐ๋ผ ๊ฒฐ์ ํ๋ฉด ๋๋ค.'
๊ทธ๋ฆฌ๊ณ zero-runtime ์ด๋ผ๋ ํค์๋๋ฅผ ์ ํ๋ค. CSS-in-JS๋ก ์ธํ ์ฑ๋ฅ ์ด์๋ฅผ ๊ฒช๊ฒ๋๋ฉด stitches ๋๋ linaria ๋ฅผ ์ผ๋ถ ๋์ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. (์ฐธ๊ณ : CSS-in-JS ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์?)
Week 4
์ข์ ์ ํ๋ธ ์ฑ๋์ ์ฐพ์๋ค. Kevin Powell ์ด๋ผ๋ ์ฑ๋๊ณผ DesignCourse ๋ผ๋ ์ฑ๋์ด๋ค. ๊ตฌ๋ ํ ์ถ์ฒ ๋ชฉ๋ก์ ๋จ๋ ์์์ ํ๋์ฉ ๋ณด๊ณ ์๋๋ฐ ์์ ํ๋ฆฌํฐ๋ ์ข๊ณ ๋ด์ฉ๋ ๋ง์ด ์ด๋ ต์ง ์์ผ๋ฉด์๋ ๋ฌด์๋ณด๋ค ์ฌ๋ฏธ์๋ค.
๐ป ํ์ต ๋ฃจํด ๋ง๋ค๊ธฐ
Week 1
JavaScript Weekly, FrontEnd Weekly, Kent ํ๋์ด ๋ณด๋ด์ฃผ์๋ ๋ด์ค๋ ํฐ๋ฅผ ํ์ฉํด์ ๊พธ์คํ ํธ๋ ๋๋ฅผ ๋ฐ๋ผ๊ฐ๋ ํ๊ฒฝ์ด ์์ผ๋ฉด ์ข๊ฒ ๋ค. ๊ทธ๋ฐ ์คํฐ๋๊ฐ ์์ผ๋ฉด ์์ด๊ณต๋ถ๋ ๋๊ณ 1์ 2์กฐ ์๋๊น.
์คํฐ๋๋ฅผ ๋น์ฅ ๋ง๋ค๊ธฐ๋ ์กฐ๊ธ ๋ถ๋ด๋๋ ์ฐ์ ์ ์ ์ ์๊ณ ์๋ Feedly๋ฅผ ์ ์ด์ฉํ์. ์คํฐ๋๋ 12์์ ๊ตฌํด๋ด์ผ๊ฒ ๋ค.
Week 3
์นด์นด์คํ๋ก์ ํธ100 ์ด ์ ์บ๋๋ก ๋ฐ๋์๋ค. 11์ 29์ผ๊น์ง ๊ฐ์ค์ด ๊ฐ๋ฅํ๋ค. ์ง๊ธ ๋น์ฅ ์ฝ๊ณ ์ถ์ ์ฑ ์ ์ฃผ์ ๋ก ์ ํด์ ํด๋น ์ฑ ์ ๊ฐ์ด ์ฝ๋ ์คํฐ๋๋ฅผ ์ด์ง ์๋๋ฉด ์ข ๋ ๋ฒ์ฉ์ ์ธ ์ฑ๋ฆฐ์ง๋ฅผ ์ด์ง ๊ณ ๋ฏผ์ด๋ค. ์ฑ๋ฆฐ์ ์ค์ ๋ฐฉ์์ด ๋ ์ข์ ๊ฒ ๊ฐ์๋ฐ UI๊ฐ ์ฃ ํผ ์์ฝ๋ค...
Week 4
๊ณ ๋ฏผ ๋์ ์ ์บ๋๋ ํ๊ณ , ์ฑ๋ฆฐ์ ์ค๋ ํ๊ธฐ๋ก ํ๋ค. ๊ฐ์ค์ ๊ณ ๋ง๊ฒ๋ ํ์ ์ถ์ง๋ ฅ์ ๊ฐ์ถ ์จ์ง๊ฐ ๋งก์ ์ฃผ์๋ค. ์ฝ์น๋๋ค๊ณผ 1,2,3๊ธฐ ๋ถ๋ค๋ ํจ๊ปํด์ ์ฌ๋ฐ๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋งค์ผ ๊พธ์คํ ์ปจํ ์ธ ๋ฅผ ํ์ตํ๊ณ ํก์ํ๋ ์ฉ๋๋ก ํ์ฉํ๋ ค๊ณ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋งค์ผ ์ธ์ฆํ ํ์๋ ์๊ฑฐ๋ ๋ถ๋ด๋์ง๋ง ๊พธ์คํ ํ๊ณ ์ถ์ ํ๋์ ์ฑ๋ฆฐ์ ์ค์ ๊ฐ์คํ๋ค. '์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ ์ ์ฃผํ', '์ ํธ์ ์ฑ๋ฆฐ์ง' ๋ ๊ฐ์ง ์์ดํ ์ผ๋ก ๊ฐ์คํ๋ค. ์ธํ๋ฐ์ด๋ ์คํ์นดํก๋ฐฉ์ ํ๋ณด ๊ธ์ ํ๋ฒ์ฉ ์ฌ๋ ธ๋๋ฐ ๋ ์ฑ๋ฆฐ์ง ๋ชจ๋ ์์๋ณด๋ค ๋ง์ ๋ถ๋ค์ด ํจ๊ปํด์ฃผ์ ์ ๊ฐ์ฌํ๋ค.
'์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ ์ ์ฃผํ' ์ด ๋๋๋ฉด, ๋ฆฌํฉํฐ๋ง2ํ์ด๋ ๋คํธ์ํฌ ๊ด๋ จ ๋์ ์ ์ฃผํ์ ์ด์ด์ ํ๊ณ ์ถ๋ค. '์ ํธ์ ์ฑ๋ฆฐ์ง'๋ ์ด๋ฆ์ 1๊ธฐ๋ก ์ ํ ๊ฒ๊ณผ ๊ฐ์ด ๋งค๋ฌ ๊ธฐ์๋ฅผ ๋๋ ค๊ฐ๋ฉด์ ์ฅ๊ธฐ์ ์ธ ์ฑ๋ฆฐ์ง๋ก ์ด์ด๋๊ฐ๊ณ ์ถ๋ค.
'Retrospect' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2022 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ๊ณต์ฑ ์ต์ข ํฉ๊ฒฉ ํ๊ธฐ (2) | 2021.12.18 |
---|---|
์ฐ์ํํ ํฌ์ฝ์ค 3๊ธฐ ์ด๋ชจ์ ๋ชจ (a.k.a ํ๊ณ ) (11) | 2021.12.03 |
์ต๊ดํ์ฑ ์ฑ๋ฆฐ์ง๋ฅผ ์๊ฐํฉ๋๋ค (0) | 2021.06.18 |
ํ๋ธ๋ฃจํ ํ๋ก ํธ์๋ ์คํฐ๋๋ฅผ ์๊ฐํฉ๋๋ค (0) | 2021.05.16 |
์ฐ์ํํ ํฌ์ฝ์ค - '์ฑ์ฅ'์ ์ํ ์ ๋ฐฐ ๊ฐ๋ฐ์๋๋ค์ ์กฐ์ธ (2) | 2021.04.30 |