https://velog.io/@goblin820/Node.js-EADDRINUSE-%EC%97%90%EB%9F%ACapi key ์ค์ ๋ env ํ์ผ์ ์ ๋์ด์๋๋ฐ ์๋ฌ๊ฐ ๋ธ\_document.tsx ํ์ผ์๋ ์ ๋ค์ด๊ฐ์์์๋ก์ด ๋๋ฉ์ธ์ kakao-devel
1. ์ด๋ป๊ฒ ์ฐ์ด๋? > ํํ์ด์ง ๋ฉ๋ด ํน์ ์ฐ์๋๋ ์ฝํ ์ธ ๋ค์ ์์ฑ ๋ฐ ๋์ดํ ๋ ์์ฃผ ์ฌ์ฉ๋๋ HTML ํ๊ทธ์ด๋ค. ul, li ์ธ์๋ ๋ชฉ๋ก์ ๋ํ๋ผ ๋ ์ฌ์ฉํ๋ HTML ํ๊ทธ๋ก dd, dl, dt ํ๊ทธ๊ฐ ์๋ค. 2. ์ด๋ค ์ฐจ์ด๊ฐ ์๋? ` ํ๊ทธ๋ ์์๊ฐ ์๋ ๋ชฉ๋ก(
ํ๋์ ํ๊ทธ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ข์ฐ๊ณต๊ฐ์ ๋ค ์ฐจ์งํ๋ฉด์ ๋ ๋ฆฝ์ ์ธ ๋ฉ์ด๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๋ ์์๋ค์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ธ๋ก ์์๋ ์๋ก์ด ์ค์์ ์์ํ๋ฉฐ ๋ถ๋ชจ ์์์ ์ ์ฒด ๋๋น๋ฅผ ์ฐจ์งํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ์ด์์์ ์ ์ํ๊ณ ์ฝํ ์ธ ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉํ๋ค.๋๋ถ๋ถ์ ๋ธ๋ก ์์๋ ๋ด๋ถ์ ๋ธ๋ก
React ํ๋ก์ ํธ์์ state๋ ์ปดํฌ๋ํธ ์์์๋ง ๊ด๋ฆฌ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ ์ ์๋ค.์์ ์ปดํฌ๋ํธ ๊ฐ ์ง์ ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ์ด ๋ถ๊ฐ๋ฅ์์ ์ปดํฌ๋ํธ๊ฐ ๋ง์์ง๊ณ ์ด๋ค ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ด ํ์ํ๋ค๋ฉด ๋ถ๋ชจ๋ก๋ถํฐ props ์ ๋ฌ์ด ํ์ํ๋ก์ ํธ๊ฐ ์ปค์ง
React ํ๋ก์ ํธ์์ state๋ ์ปดํฌ๋ํธ ์์์๋ง ๊ด๋ฆฌ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ ์ ์๋ค.์์ ์ปดํฌ๋ํธ ๊ฐ ์ง์ ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ์ด ๋ถ๊ฐ๋ฅ์์ ์ปดํฌ๋ํธ๊ฐ ๋ง์์ง๊ณ ์ด๋ค ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ด ํ์ํ๋ค๋ฉด ๋ถ๋ชจ๋ก๋ถํฐ props ์ ๋ฌ์ด ํ์ํ๋ก์ ํธ๊ฐ ์ปค์ง
'์๋ฏธ์', '์๋ฏธ๋ก ์'๋ผ๋ ํ๊ตญ์ด ๋ป์ด ์๋ค. ์ฆ, semanticํ๊ฒ HTML์ ์์ฑํ๋ค๋ ๋ป์ ๋ฌธ์์ ์๋ฏธ์ ๋ง๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ๋งํฌ์ ํ๋ค๋ ๋ป์ด๋ค.HTML์ ์์ฑํ ๋, div์ spanํ๊ทธ ๋ง์ผ๋ก๋ ๋๋ถ๋ถ์ ๋งํฌ์ ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ ๊ฒ ๋ฌธ์๋ฅผ ๊ตฌ์ฑ
์ด๋ค ํจ์์ ๋์ผํ ์ธ์๋ฅผ ์ฃผ์์ ๋, ํญ์ ๊ฐ์ ๊ฐ์ ๋ฐํํ๋ ํจ์์ด๋ค. ๋ ์ธ๋ถ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋(No Side Effect) ํจ์๋ผ๊ณ ๋งํ ์ ์๋ค.์์ ํจ์์ ์์ ์ฝ๋)์ ์ฝ๋์์ add๋ ์ธ์๋ก 10, 5๋ฅผ ๋ฐ์์ ๋, ํญ์ 15๋ฅผ ๋ฆฌํดํ๋ค.์ ์ฝ๋์์
์ฟ ํค๋ ์น ์ฌ์ดํธ(์๋ฒ)์ ์ํด ํด๋ผ์ด์ธํธ ์ธก(์ฆ, ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ )์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ด๋ค. Session ์ฟ ํค์ Permanent ์ฟ ํค๊ฐ ์๋ค.Session ์ฟ ํค๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ผ์ ธ ์๋ ๋์ ์ ํจํ๊ณ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ๋ฉด ์ฌ๋ผ์ง๋ค.Permanent ์ฟ ํค
React์ ํ ์ผ๋ก current ์์ฑ์ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ์ด๋ค ๊ฐ์ ์ ์ฅํ๋ ๊ณต๊ฐ์ผ๋ก ํ์ฉํ๊ฑฐ๋ DOM ์์์ ์ ๊ทผํ์ฌ ๋ค์ํ ์ผ์ ํ๋ ๋ฐ ๋์์ ์ค๋ค.useRef๋ state์ ๋์ผํ๊ฒ ์ ์ฅ ๊ณต๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋ค๋ง, state์ ๊ฐ์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ
์ธ๋ถ ํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋, ๋ชจ๋ ๋ฑ์ ๋ถ๋ฌ์ค๊ฑฐ๋ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํ ๋ node.js์์ ์ฌ์ฉ๋๊ณ ์๋ CommonJS ํค์๋์ด๋ค.์๋์ ๊ฐ์ ๋ฌธ๋ฒ์ผ๋ก ์ฌ์ฉ๋๋ค.exports๋ ๊ฐ์ฒด์ด๋ค. exports์๋ ๋ชจ๋๋ก๋ถํฐ ๋ด๋ณด๋ด์ง๋ ๋ฐ์ดํฐ๋ค์ด ๋ด๊ฒจ์๋ค.์ธ๋ถ ํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์น์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ ๋ HTTP์ ์ค์ํ ํน์ง ์ค ํ๋๋ก ๋น ์ฐ๊ฒฐ์ฑ์ด ์๋ค.์ด๋ ํต์ ์ ๊ณ์ํด์ ์ ์งํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ ๋ญ๋น๋ฅผ ์ค์ผ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ํต์ ์ ํ ๋๋ง๋ค ์๋ก์ด ์ฐ๊ฒฐ์ด ๊ณ์ํด์ ํ์ํ๋ค๋ ๋จ์ ์ด ์๋ค. ์๋ฅผ ๋ค๋ฉด ์ฒ์ ์น ์ฌ์ดํธ
JavaScript์์ ํค์๋ this๋ ํจ์๊ฐ ์์ฑ์ธ ๊ฐ์ฒด ๋๋ ํจ์๊ฐ ํธ์ถ๋ ๋ ๋ฐ์ธ๋ฉ๋๋ ๊ฐ์ฒด๋ฅผ ๋ํ๋ธ๋ค. ์ด ๊ฐ์ ๋ฐํ์์ ๊ฒฐ์ ๋๋ฉฐ ํจ์๊ฐ ํธ์ถ๋๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ค.์ ์ฝ๋์์ person ๊ฐ์ฒด ์์ fullName์ด๋ผ๋ ๋ฉ์๋๊ฐ ์ ์ ๋์๋ค.๊ทธ๋ฆฌ๊ณ
Hyper Text Transfer Protocol์ ์ฝ์๋ก ์๋ก ๋ค๋ฅธ ๊ธฐ๊ธฐ๋ ํ๋ซํผ๋ผ๋ฆฌ๋ TCP/IP ๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ ํ ํต์ ๊ท์ฝ์ด๋ค.ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ(request)์ ๋ณด๋ด๊ณ ์๋ฒ๋ ์ด์ ์๋ต(response)ํ๋ ํ์์ด๋ค.์๋ฒ๋
๊ฐ๋ฐ์๊ฐ ๋ ์ ์ ๋ ธ๋ ฅ์ผ๋ก ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ๋์์ ์ฃผ๋ ๊ณตํต ๋๊ตฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฑ์ ์ ๊ณตํ๋ค. ์ฆ, ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํด ๊ตฌ์กฐํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ ์ฌ์ ์ ์๋ ์ง์นจ, ๊ท์น ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก ์งํฉ์ด๋ค.๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ
CPU๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ์ฐ์ฐ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ก ๊ฐฑ์ ํ๋ค. ์ด ๊ณผ์ ์์ ์๊ฐ๋ณด๋ค ๊ธด ์๊ฐ์ ์๋นํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๋งค๋ฒ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ์ ์๋นํ ๋นํจ์จ์ ์ด๋ค. ๋ฐ๋ผ์ ์ ์ฅ ๊ณต๊ฐ์
์ฝ๋๋ Top to Bottom์ผ๋ก ํ๋ฌ๊ฐ๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์์์ผ๋ก๋ ์ดํด๊ฐ ๋์ง ์๋ ํ์์ด ๋ฐ์ํ๋ค.์ฒซ ์ค์์ ๋ณ์๊ฐ ์ ์ธ๋๊ธฐ ์ ์ variable์ ์ฐธ์กฐํ์ผ๋ฏ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ผ ์๊ฐํ์ง๋ง ์๋ฌ๋ ๋ฐ์ํ์ง ์๊ณ undefined๊ฐ ๋ฐํ๋๋ค!๋ง์น 2๋ฒ ์ค์ ์ ์ธํ
Parameter๋ ํจ์/๋ฉ์๋ ์ ์ธ ์ ํจ๊ป ์ ์ธ๋๋ ๋ณ์์ด๋ค.์๋ ์ฝ๋ ์์ ๋ฅผ ๋ณด๊ณ ์ดํดํ๋ฉด ์ฝ๋ค.Argument๋ ํจ์๊ฐ ํธ์ถ๋ ๋ ์ค์ ๋ก ํจ์์ ์ ๋ฌ๋๋ ๊ฐ์ด๋ค.์ฐธ๊ณ ๋ก ์์ด๋ฅผ ์ง์ญํ์๋ฉด '๋ ผ๊ฑฐ'์ธ๋ฐ ํจ์๊ฐ ์คํ๋๊ณ ๋์จ '๊ฒฐ๊ณผ์ ๋ํ ๋ ผ๊ฑฐ'๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
๋ธ๋ผ์ฐ์ (Browser)์ธํฐ๋ท์์ ์น ์๋ฒ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋๋ก ํ๊ณ , ๋ฌธ์ ๊ฒ์์ ๋์์ฃผ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ค.Google Chrome, Apple Safari, Microsoft Edge, Naver Whale ๋ฑ์ด ์๊ณ ๊ฐ์ ๊ณ ์ ์ ๋ ๋๋ง ์์ง์ ๊ฐ์ง๊ณ ์๋ค
API๋ Application Programming Interface์ ์ฝ์์ด๋ค. ๋จผ์ ์ธํฐํ์ด์ค๋ ์ฌ๋๊ณผ ์ฌ๋ฌผ, ์๋ก ๋ค๋ฅธ ์ฌ๋ฌผ๊ณผ ์ฌ๋ฌผ ์ฌ์ด์์ ํต์ ์ ํตํด ํน์ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋๋ก ๋์์ฃผ๋ ์ผ์ข ์ ๊ฒฝ๊ณ๋ฉด์ด๋ค. ๋ฐ๋ผ์ API๋ ์๋ก ๋ค๋ฅธ ์ํํธ์จ์ด ์์คํ ์ด ์๋ก
npm install react-kakao-maps-sdkyarn add react-kakao-maps-sdknpm install kakao.maps.d.ts --save-dev yarn add kakao.maps.d.ts --dev react-kakao-maps-sd