๐ช Programming
[Git] git revert, git reset ์ฐจ์ด์ ๋ฐ HEAD ๋ถ๋ฆฌ
[Git] git revert, git reset ์ฐจ์ด์ ๋ฐ HEAD ๋ถ๋ฆฌ
2024.05.01TL;DRreset : ํ์ฌ ๋ธ๋์น๋ฅผ ์ง์ ํ ์ปค๋ฐ์ผ๋ก ์ด๋. ๊ทธ ์ดํ์ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ ์ญ์ revert : ์ปค๋ฐ ๋ณ๊ฒฝ์ฌํญ์ ์ทจ์ํ๋ ์๋ก์ด ์ปค๋ฐ ์์ฑ. ๊ธฐ์กด ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ ์ ์ง HEAD ๋ฐฐ๊ฒฝ์ง์Git Branch ํ์ต/์ฐ์ตํ๊ธฐ ์ข์ ์ฌ์ดํธ โผ Learn Git BranchingAn interactive Git visualization tool to educate and challenge!learngitbranching.js.org HEAD๋ ํ์ฌ ๋ธ๋์น ์์
ํธ๋ฆฌ์ ๊ฐ์ฅ ์ต๊ทผ ์ปค๋ฐ์ ๊ฐ๋ฆฌํจ๋ค(ํ์ฌ ์์
์ค์ธ ์ปค๋ฐ).HEAD๋ฅผ ๋ธ๋์น ๋์ ์ปค๋ฐ์ ๋ถ์ด๋ ๊ฒ์ HEAD ๋ถ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค.^(์บ๋ฟ) ์ฐ์ฐ์๋ ์๋์ฐธ์กฐ ๊ธฐ๋ฅ์ผ๋ก, ํ ๋จ๊ณ ์(๋ถ๋ชจ) ์ปค๋ฐ์ผ๋ก ์ด๋ํ ๋ ์ฌ์ฉํ๋ค.git checkout bugFix^..
[HTML/CSS] ์ค๋ฐ๊ฟ ์ ์ด ์์ฑ word-break / word-wrap(overflow-wrap)
[HTML/CSS] ์ค๋ฐ๊ฟ ์ ์ด ์์ฑ word-break / word-wrap(overflow-wrap)
2024.05.01TL;DR๋ฐ์ค ์์ญ์ ๋ฒ์ด๋๊ฑฐ๋, ๋ถํ์ํ ๊ณต๋ฐฑ์ด ์๊ธฐ๋ ๋ฑ ๋๋ถ๋ถ์ ์ค๋ฐ๊ฟ ๋ฌธ์ ๋ ์๋ ๋ ์์ฑ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.word-break: break-all; /* ์์ (๊ธ์)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฐ๊ฟ */word-wrap: break-word; /* ์์ญ์ ๋์น ๋จ์ด ๋ถ๋ฆฌ(์ค๋ฐ๊ฟ) */ word-break๐ก ์ค๋ฐ๊ฟํ ์ค๋จ์ ์ ๊ธฐ์ค์ ๋ฐ๊ฟ ์ ์๋ ์์ฑ word-break ์์ฑ์ ๊ธ์๋ฅผ ์ด๋ป๊ฒ ๋ถ๋ฆฌํด์ ์ค๋ฐ๊ฟํ ์ง ๊ฒฐ์ ํ๋ ์์ฑ์ด๋ค. CJK๋ ์์ (๊ธ์), non-CJK๋ ๊ณต๋ฐฑ๊ณผ - ํ์ดํ์ด ๊ธฐ๋ณธ ์ค๋จ์ ์ด๋ค. word-break ์์ฑ์ผ๋ก ์ค๋ฐ๊ฟํ ์ค๋จ์ ์ ๊ธฐ์ค์ ๋ฐ๊ฟ ์ ์๋ค. ์๋๋ ์ธ์ด๋ณ ์์ฑ ๊ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์ค๋จ์ ์ ์ ๋ฆฌํ ํ — WIT ๋ธ๋ก๊ทธ ์ฐธ๊ณ normal (๊ธฐ๋ณธ๊ฐ)break-allkeep-a..
[DevTools] direnv๋ก ํด๋๋ง๋ค ๋ค๋ฅธ node ๋ฒ์ ์ ์ฉํ๊ธฐ / ์ ์ญ gitignore
[DevTools] direnv๋ก ํด๋๋ง๋ค ๋ค๋ฅธ node ๋ฒ์ ์ ์ฉํ๊ธฐ / ์ ์ญ gitignore
2024.05.01ํ๋ก์ ํธ๋ง๋ค ์ฌ์ฉํ๋ Node ๋ฒ์ ์ด ๋ค๋ฅด๋ค๋ฉด nvm์ ์ด์ฉํด์ ๋ฒ์ ์ ๋ณ๊ฒฝํ ์ ์๋ค. ํ์ง๋ง ๋งค๋ฒ ์๋์ผ๋ก ๋
ธ๋ ๋ฒ์ ์ ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด๋ค. direnv๋ฅผ ํ์ฉํ๋ฉด ํ๋ก์ ํธ ํด๋๋ฅผ ๋ฐ๊ฟ ๋๋ง๋ค ๋
ธ๋ ๋ฒ์ ์ด ์๋์ผ๋ก ๋ฐ๋๋๋ก ์ค์ ํ ์ ์๋ค. direnv๋ ํด๋๋ณ๋ก ํ๊ฒฝ์ ๊ด๋ฆฌํด์ฃผ๋ ๋๊ตฌ๋ค. ์ค์นโถ direnv ์ค์นbrew install direnv # homebrew๋ก direnv ์ค์น โท direnv hook ์ค์ (ํด๋ ์ด๋์ ํด๋น ํด๋์ .envrc ํ์ผ ์๋ ์คํ). oh-my-zsh๋ฅผ ์ฌ์ฉํ๋ค๋ฉด `.zshrc` ํ์ผ `plugins` ๋ฐฐ์ด์ `direnv`๋ฅผ ์ถ๊ฐํ๋ฉด ์๋์ผ๋ก ์ค์ ๋๋ค.# ~/.zshrcplugins=(... direnv) oh-my-zsh๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์๋ ..
[HTML/CSS] ์์๋๋ฉด ์ ์ฉํ CSS ์ต์ ๊ธฐ๋ฅ 6๊ฐ์ง
[HTML/CSS] ์์๋๋ฉด ์ ์ฉํ CSS ์ต์ ๊ธฐ๋ฅ 6๊ฐ์ง
2024.05.01@supports@supports๋ฅผ ์ด์ฉํด ๋ธ๋ผ์ฐ์ ๊ฐ ํน์ CSS ์์ฑ์ ์ง์ํ ๋์, ์ง์ํ์ง ์์ ๋์ ์คํ์ผ์ ๊ฐ๊ฐ ์ง์ ํ ์ ์๋ค. @supports (์์ฑ๋ช
: ๊ฐ) {...} ํํ๋ก ์ฌ์ฉํ๋ค. ์ง์ํ์ง ์์ ๋ not ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํ๋ค./* ๋ธ๋ผ์ฐ์ ๊ฐ display: grid๋ฅผ ์ง์ํ๋ฉด ์ ์ฉ */@supports (display: grid) { div { display: grid; }}/* ๋ธ๋ผ์ฐ์ ๊ฐ display: grid๋ฅผ ์ง์ํ์ง ์์ผ๋ฉด float ์ ์ฉ */@supports not (display: grid) { div { float: right; }} CSS ์คํ์ผ ์์ฑ๋ฟ๋ง ์๋๋ผ CSS ์ ํ์(์
๋ ํฐ)๋ฅผ ์ง์ํ๋์ง๋ ํ๋ณํ ์ ์๋ค./* ๋ธ๋ผ์ฐ์ ๊ฐ > ์์ ์
๋ ํฐ๋ฅผ ์ง..
[CS] RISC / CISC ์ํคํ
์ฒ ์ฐจ์ด์
[CS] RISC / CISC ์ํคํ ์ฒ ์ฐจ์ด์
2024.05.01์ ํ์ 2020๋
x86 ์ํคํ
์ฒ์์ ARM์ผ๋ก ์ ํํ๋ค. M1 ๋งฅ๋ถ๋ถํฐ ARM ์ํคํ
์ฒ๋ฅผ ์ฌ์ฉํ๋ค. ์ธํฐ๋ท, ์ ๋ฌธ์์ ์์์ด ๋ค์๋ ๋ง์ด๋ค. ํ์ง๋ง ์ ์ ์ ARM ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ ๋งฅ๋ถ์ด ๋ ๋น ๋ฅธ์ง, ์ ๋ฐ์คํฌํฑ ๊ธฐ๊ธฐ๋ ์ธํ
/AMD์ ์ฌ์ฉํ๊ณ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ ARM์ ์ฌ์ฉํ๋์ง ๋ฑ์ ๋ชฐ๋๋ค. ๊ทธ๋์ ์ค๋์ ์ธํ
๊ณผ ARM ์ํคํ
์ฒ์ ์ฐจ์ด์ ์ ๋ํด์ ์์๋ณธ๋ค(์์ฆ์ ๋
ธํธ๋ถ, ์๋ฒ, ์ํผ ์ปดํจํฐ์์๋ ARM์ ์ฌ์ฉํ๋ค). ์ด์
๋ธ๋ฆฌ ์ธ์ด๐ก ์ด์
๋ธ๋ฆฌ ์ธ์ด๋ ๊ธฐ๊ณ์ด์ ํ ๋จ๊ณ ์ ์ธ์ด๋ค. ํน์ ํ๋ก์ธ์์ ๋ฐ์ธ๋ฉ๋ ๊ธฐ๋ณธ ๋ช
๋ น ์งํฉ์ผ๋ก ์์ฝ์ด๊ฐ ๋งค์ฐ ์ ๋ค. ์ด์
๋ธ๋ฆฌ ์ธ์ด ์ฝ๋๋ ์ปดํจํฐ๊ฐ ์ฒ๋ฆฌํ๊ธฐ ์ ์ ๊ธฐ๊ณ์ด(0๊ณผ 1)๋ก ๋ณํํด์ผ ํ๋ค. ์ด ๋ณํ์ ์ด์
๋ธ๋ฌ๋ฅผ ํตํด ์ด๋ค์ง๋ค. ๊ธฐ๊ณ์ด์ ์ด์
๋ธ๋ฆฌ์ด ๋ชจ๋ Low Level..
[JS] ์๋ฐ์คํฌ๋ฆฝํธ RORO ๋์์ธ ํจํด / ์คํ ํธ๋ ์ด์ค / ์๋ฌ ์ ํ
[JS] ์๋ฐ์คํฌ๋ฆฝํธ RORO ๋์์ธ ํจํด / ์คํ ํธ๋ ์ด์ค / ์๋ฌ ์ ํ
2024.05.01TL;DRRORO ํจํด์ Receive an Object, Return and Object์ ์ฝ์๋ค. ํจ์์ ํ๋ผ๋ฏธํฐ์ ๋ฆฌํด๊ฐ ๋ชจ๋ ๊ฐ์ฒด์ธ๊ฑธ ๋งํ๋ค. ES6๋ถํฐ ์ง์ํ๋ ๊ตฌ์กฐ๋ถํดํ ๋น ๋๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ RORO ํจํด์ ์ฌ์ฉํ ์ ์๋ค. ํ๋ผ๋ฏธํฐ ์ ์ ๋ฐฉ์(RORO ํจํด)๋ง ์ด์ง ๋ฐ๊ฟจ์ง๋ง ๊ฐ๋
์ฑ์ ๋งค์ฐ ์ข์์ง๋ค. RORO ํจํด์ ์ฅ์ ์ ์๋์ ๊ฐ๋ค. ์ด๋ฆ์ด ์ง์ ๋ ํ๋ผ๋ฏธํฐ (Named parameters)๋ช
์์ ์ธ ํ๋ผ๋ฏธํฐ ๊ธฐ๋ณธ๊ฐ (Cleaner default parameters)๋ ๋ง์ ์ ๋ณด ๋ฐํ (Richer return values)ํจ์ ํฉ์ฑ ์ฉ์ด (Easy function composition) ์ด๋ฆ์ด ์ง์ ๋ ํ๋ผ๋ฏธํฐํ๋ผ๋ฏธํฐ์ {} ์ค๊ดํธ๋ง ์ถ๊ฐํด์ฃผ๋ฉด ๊ฐ๋จํ๊ฒ RORO ํจํด์ ์ ์ฉํ ์ ์๋ค. ..
[React] ๋ฆฌ์กํธ ๋ผ์ฐํฐ React Router v6 ๋ฐ๋์ ํบ์๋ณด๊ธฐ
[React] ๋ฆฌ์กํธ ๋ผ์ฐํฐ React Router v6 ๋ฐ๋์ ํบ์๋ณด๊ธฐ
2024.04.30React Router๊ฐ v6์ผ๋ก ์
๋ฐ์ดํธ ๋๋ฉด์ ๊ฝค ๋ง์ ๋ถ๋ถ์ด ๋ฐ๋์๋ค. ๊ณต์ ๋ฌธ์์์ ์์ธํ ๋ง์ด๊ทธ๋ ์ด์
๊ฐ์ด๋๋ ์ ๊ณตํ๊ณ ์๋ค. v6์ ์ฌ์ฉํ๋ ค๋ฉด React 16.8 ๋ฒ์ ์ด์ ์ฌ์ฉํด์ผ ํ๋ค. v6์ ์ด์ ๋ฒ์ ๋๋น ๋ฒ๋ค ์ฌ์ด์ฆ๋ 70% ์ด์ ์ค์๋ค๊ณ ํ๋ค(ํจํค์ง ์
๋ฐ์ดํธ๋ง์ผ๋ก ๋ฒ๋ค ํฌ๊ธฐ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ๋ค๋ ๋ป). Switch → Routes ์ปดํฌ๋ํธ๊ฐ ๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝ๋๋ค. ๋ฐ๋ ์ด๋ฆ์ด ๋ ์ง๊ด์ ์ธ ๊ฒ ๊ฐ๋ค. ๋ง ๋จ๋
์ผ๋ก ์ฌ์ฉํ ์๋ ์๊ฒ ๋๋ค. ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํญ์ ๋ก ๊ฐ์ธ์ค์ผ ํ๋ค.// v5 // v6 exact ์ต์
์ญ์ v6๋ถํฐ ๊ฒฝ๋ก๊ฐ ์ ํํ ์ผ์นํ๋๋ก ๋งค์นญ ๊ท์น์ด ๋ฐ๊ผ๋ค. ๋์ด์ exact ์ต์
์ ๋ช
์ํ์ง ์์๋ ๋๋ค. ๋ชจ๋ ๋ผ์ฐํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก exact ์ต์
์ด ๋ถ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค...
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค ๋น๋ฐ์ง๋ ๋ฌธ์ ํ์ด
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค ๋น๋ฐ์ง๋ ๋ฌธ์ ํ์ด
2024.04.30๊ธ ์์ ์ฌํญ์ ๋
ธ์
ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์ 2018๋
์นด์นด์ค ๋ธ๋ผ์ธ๋ ํ
์คํธ 1์ฐจ ๋น๋ฐ์ง๋ ๋ฌธ์ (๋ฌธ์ ๋ฒํธ 17681). ํ๋ผ๋ฏธํฐ๋ arr1 arr2 n ์ด๋ ๊ฒ 3๊ฐ๋ฅผ ๋ฐ์ผ๋ฉฐ, n์ ํ ๋ณ์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค(๋ฐฐ์ด ๊ฐ ์์๋ฅผ ์ด์ง์๋ก ๋ณํํ ํ์ length). โถ 2๊ฐ์ ๋ฐฐ์ด์ ๋ฐ์[9, 20, 28, 18, 11]; // arr1[30, 1, 21, 17, 28]; // arr2 โท ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ 2์ง์๋ก ๋ณํํ ๋ค (10์ง์ → 2์ง์ ๋ณํ์ ๋
ธํธ ์ฐธ๊ณ )['01001', '10100', '11100', '10010', '01011']; // arr1['11110', '00001', '10101', '10001', '11100']; // arr2 โธ 0 → ' ' ๊ณต..
[AWS] EC2 ๋์คํฌ ๊ณต๊ฐ ๋๋ฆฌ๊ธฐ / ์ฌ์ ๊ณต๊ฐ ํ๋ณดํ๊ธฐ
[AWS] EC2 ๋์คํฌ ๊ณต๊ฐ ๋๋ฆฌ๊ธฐ / ์ฌ์ ๊ณต๊ฐ ํ๋ณดํ๊ธฐ
2024.04.30EC2 ํฐ๋ฏธ๋์์ ํจํค์ง๋ฅผ ์
๋ฐ์ดํธ ํ๋ ค๊ณ ํ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. VSCode๋ฅผ ์ด์ฉํด ์๊ฒฉ์ผ๋ก EC2์ ์ ์ํ ๋๋ ์์ธ์ ๋ชจ๋ฅผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๋์คํฌ ์ฉ๋์ด ๋ถ์กฑํด์ ๋์ค๋ ์๋ฌ๋ค.no space left on device df -h ๋ช
๋ น์ด๋ก xvda1 ๋๋ฐ์ด์ค ๋ณผ๋ฅจ ๊ณต๊ฐ์ ํ์ธํด๋ณด๋ ์ฌ์ฉ๋์ด 99%๋ค. ์ฉ๋ ์ถ๊ฐ๊ฐ ํ์ํ๋ค. ํ๋ฆฌํฐ์ด ์๊ธ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ์ด์ง๋ ์ฉ๋์ 8GB์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ์ค์ ๋ฑ์ ํ๊ณ ๋๋ฉด ํฑ์์ด ๋ถ์กฑํ๋ค. ๋คํํ ํ๋ฆฌํฐ์ด๋ 30GB๊น์ง ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ค.df -h Filesystem Size Used Avail Use% Mounted onudev 462M 0 462M 0% /de..
[JS] ์ ๊ท์์ผ๋ก ๊ฒ์์ด ํ์ด๋ผ์ดํธ / ๋ฌธ์์ด ๋งํฌ ๊ฑธ๊ธฐ(Linkify)
[JS] ์ ๊ท์์ผ๋ก ๊ฒ์์ด ํ์ด๋ผ์ดํธ / ๋ฌธ์์ด ๋งํฌ ๊ฑธ๊ธฐ(Linkify)
2024.04.30๊ฒ์์ฐฝ์ ์
๋ ฅํ ํค์๋์ ์ผ์นํ๋ ๋จ์ด๋ฅผ ํ์ด๋ผ์ดํธ(๊ฐ์กฐ) ํ๊ธฐ ์ํด split, join ๋ฑ์ ์ฌ์ฉํ ์ ์์ง๋ง ์ฝ๋๊ฐ ๋ค์ ๋ณต์กํด์ง๋ค. ์ ๊ท์์ ์ฌ์ฉํ๋ฉด ๊น๋ํ๊ฒ ๊ตฌํํ ์ ์๋ค. ํ์ด๋ผ์ดํฐ ํจ์ ์ ์ โผconst getHighlightedText = (text, query) => { const re = new RegExp(`(${query})`, 'gi'); if (query !== '' && text.match(re)) { const parts = text.split(re); return ( {parts.map((part) => part.toLowerCase() === query.toLowerCase() ? ( {part} ..
[JS] Lodash _.memoize ์์ค ์ฝ๋ ํบ์๋ณด๊ธฐ
[JS] Lodash _.memoize ์์ค ์ฝ๋ ํบ์๋ณด๊ธฐ
2024.04.30_.memoize ์์ค์ฝ๋Lodash ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Memoize ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ์ ์งํํ๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค. ์ค์๊ฐ ๊ฒ์์ฐฝ์ ๊ตฌํํ ๋ ์
๋ ฅํ ํค์๋์ ๋ํ API ํธ์ถ์ ์๋ํ๋๋ฐ, ์ด๋ฏธ ๊ฒ์ํ๋ ํค์๋๋ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํด๋๊ณ ์ฌ์ฌ์ฉํ๋ฉด API ์ค๋ณต ํธ์ถ์ ๋ฐฉ์งํ ์ ์๋ค. ์ด๋ Lodash์ Memoize๋ฅผ ํ์ฉํ ์ ์๋ค(๋ฌผ๋ก ํค์๋์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ด ์์ฃผ ๋ณํ๋ค๋ฉด ์บ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ํ์ ์๋ค) ์ค์๊ฐ ๊ฒ์์ฐฝ์ ํ์ฉํ Memoizeimport _ from 'lodash';export const requestQuotes = _.memoize(async (title) => { const res = await fetch( `https://animechan.vercel.app/ap..
[React] ๋ฆฌ์กํธ๋ก ์ค์๊ฐ ๊ฒ์์ฐฝ ๊ตฌํํ๊ธฐ
[React] ๋ฆฌ์กํธ๋ก ์ค์๊ฐ ๊ฒ์์ฐฝ ๊ตฌํํ๊ธฐ
2024.04.30๊ธ ์์ ์ฌํญ์ ๋
ธ์
ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์ Debounce๋ ์ด๋ฒคํธ๊ฐ ์ฐ์์ ์ผ๋ก ๋ฐ์ํด๋ ํญ์ ๋ง์ง๋ง ์ด๋ฒคํธ๋ง ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋งํ๋ฉฐ, Memoize๋ ์ด์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ๋งํ๋ค. Debounce์ Memoize๋ฅผ ํ์ฉํด ๋ถํ์ํ API ์์ฒญ์ ๋ฐฉ์งํ ์ ์๋ค. Animichan์ ์ผ๋ณธ ์ ๋๋ฉ์ด์
์ ๋ฑ์ฅํ ์ธ์ฉ๋ฌธ(Quotes)์ ์ ๊ณตํ๋ OpenAPI๋ค. title ๋งค๊ฐ๋ณ์์ ์ ๋๋ฉ์ด์
์ ๋ชฉ์ ์ฟผ๋ฆฌ์คํธ๋ง ๋ณด๋ด์ ์์ฒญํ๋ฉด, ํด๋น ์ ๋๋ฉ์ด์
์ ์ธ์ฉ๋ฌธ ์ธํธ๋ฅผ ๋ฐ์์ฌ ์ ์๋ค. ์ด API๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ๊ฒ์ ์ดํ๋ฆฌ์ผ์ด์
์ ๊ตฌํํ ์ ์๋ค. // Request'https://animechan.vercel.app/api/quotes/anime?title=naruto'..