Study/JavaScript
[JavaScript] Restful API
Restful API ์์์ ๊ฐ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํด ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ. HTTP URI๋ฅผ ํตํด ์์์ ๋ช ์ํ๊ณ , HTTP ๋ฉ์๋๋ฅผ ํตํ์ฌ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค. ๋ฉ์๋ ๋ฉ์๋ ์ค๋ช GET ์์ฒญ๋ฐ์ URI ์ ๋ณด๋ฅผ ๊ฒ์ํ ํ์ ์๋ต POST ์์ฒญ๋ ์์์ ์์ฑ PUT ์์ฒญ๋ ์์์ ์์ DELETE ์์ฒญ๋ ์์์ ์ญ์ HEAD GET๊ณผ ๋์ผํ์ง๋ง, ์๋ต ์ฝ๋์ HEAD์๋ง ๋ฐ์ PATCH PUT๊ณผ ์ ์ฌํ์ง๋ง, ์ผ๋ถ๋ง ์์ ๊ฐ๋ฅ CONNECT ๋์ ์ผ๋ก ํฐ๋ ๋ชจ๋๋ฅผ ๊ตํํ๋ฉฐ ํ๋ฝ์ ๊ธฐ๋ฅ์ ์์ฒญ TRACE ์๊ฒฉ์ง ์๋ฒ์ ๋ฃจํ๋ฐฑ ๋ฉ์์ง ํธ์ถ์ ์ํ ํ ์คํธ์ฉ OPTIONS ์น ์๋ฒ์ ์ง์๋๋ ๋ฉ์๋ ์ข ๋ฅ๋ฅผ ํ์ธ GET๊ณผ POST์ ์ฐจ์ด์ GET: ์ง์ ๋ ๋ฆฌ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ (์ฌ์ฉํ๊ธฐ ์ํด ์ป์ด ์ค๋ ..
[JavaScript] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)
๊ฐ์ฒด ์งํฅ ์ ์ฐจ ์งํฅ์ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ฅ์ด ์ค์ฌ์ด ๋๋ค. ๋ฌด์์ ์ด๋ค ์ ์ฐจ๋ก ํ ๊ฒ์ธ๊ฐ? ๊ฐ ํต์ฌ์ด ๋๋ค. ๊ทธ๋ฌ๋, ๊ฐ์ฒด ์งํฅ์ ๊ธฐ๋ฅ์ด ์๋ ๊ฐ์ฒด๊ฐ ์ค์ฌ์ด ๋๋ค. ๋๊ฐ ์ด๋ค ์ผ์ ํ ๊ฒ์ธ๊ฐ? ๊ฐ ํต์ฌ์ด ๋๋ ๊ฒ์ด๋ค. ๊ฐ์ฒด๋ฅผ ๋์ถํ๊ณ ๊ฐ๊ฐ์ ์ญํ ์ ์ ์ํด ๋๊ฐ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ๋ค. ๋ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ฒฝ์ฐ, ๋ง์ ๊ธฐ๋ฅ์ ์๋ฐํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด ์งํฅ์ด ์ ํฉํ๋ค. ๊ฐ ๊ฐ์ฒด๊ฐ ํ๋ ์ญํ ์ด ๋ง๋๋ผ๋, ๋ง์ ์ญํ ์ ๊ฐ์ฒด๋ก ๋ฌถ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋๋ก, ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ฒฝ์ฐ์๋ ์ ํฉํ์ง ์์๋ฐ, ์์ ๊ธฐ๋ฅ์ ๊ฐ์ฒด๋ณ๋ก ๋๋๊ฒ ๋๋ฉด ์คํ๋ ค ๋ณต์กํด์ง ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ด๋? ๊ฐ์ฒด ์งํฅ์ ๋ํด์ ์์๋ดค๋ค๋ฉด, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด์ ์์ ๋ณด์. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์์ ..
![[JavaScript] MVC / MVP / MVVM ํจํด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FberuRQ%2FbtrGKIr4hkS%2FUcKO0gzPKvnInR99jQJe71%2Fimg.png)
[JavaScript] MVC / MVP / MVVM ํจํด
MVC ํจํด MVC ํจํด์ Model View Controller์ ์ฝ์ด์ด๋ฉฐ, ์ธ ๊ฐ์ง๊ฐ ํฉํด์ง ๊ฒ์ด๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. ๊ตฌ์กฐ Model: ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ View: ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ UI ๋ถ๋ถ Controller: ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ณ ์ฒ๋ฆฌํ๋ ํ๋์ ํ๋ ๋ถ๋ถ ๋์ ์ฌ์ฉ์์ Action๋ค์ด Controller๋ก ๋ค์ด์ด Controller๊ฐ ์ฌ์ฉ์์ Action์ ํ์ธ Model ์ ๋ฐ์ดํธ Controller๊ฐ Model์ ๋ํ๋ด ์ค View ์ ํ View๊ฐ Model์ ์ด์ฉํด ํ๋ฉด์ ๋ํ๋ ํน์ง MVC์ Controller๋ ์ฌ๋ฌ ๊ฐ์ View๋ฅผ ์ ํํ ์ ์๋ 1:N ๊ตฌ์กฐ Controller๊ฐ View๋ฅผ ์ ํํ ๋ฟ, ์ง์ ์ ๋ฐ์ดํธํ์ง ์์ View๋ Co..
[JavaScript] ์ฑ๊ธํค ํจํด(Singleton Pattern)
์ฑ๊ธํค ํจํด(Singleton Pattern) ํน์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ํ ๊ฐ๋ง ์ ์งํ๋ ํจํด์ด๋ค. ์ฆ, ํ๋์ ํด๋์ค์ ์ค์ง ํ๋์ ์ธ์คํด์ค๋ง ๊ฐ์ง๋๋ฐ, ๊ฐ์ฒด ๋ฆฌํฐ๋ด {}์ ์ด์ฉํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ์ด ์ฑ๊ธํค ํจํด๊ณผ ๋์ผํ๋ค. ๋ณดํต, ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋์ ํ๋์ ์์ฑ์๋ก ์ฌ๋ฌ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ๋ง๋ค ์ ์๋๋ฐ, ์ฑ๊ธํค ํจํด์์๋ ๋จ ํ๋์ ๊ฐ์ฒด๋ง ์กด์ฌํ๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค. ์ฑ๊ธํค ํจํด์ ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ชจ๋์ ๋ง์ด ์ฌ์ฉํ๋ค. ํ๋์ ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ๋ชจ๋๋ค์ด ๊ณต์ ํ๋ฉด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ๋๋ ๋น์ฉ์ด ์ค์ด๋ค์ด ๋น์ฉ ์ ๊ฐ์ด ๊ฐ๋ฅํ์ง๋ง, ์์กด์ฑ์ด ๋์์ง๋ค๋ ๋จ์ ์ ํจ๊ป ์ง๋๊ณ ์๋ค. var obj = { a: 1 }; var obj2 = { a: 1 }; console.log(obj ==..
[JavaScript] ํธ์ด์คํ (Hoisting)
ํธ์ด์คํ JavaScript์์ ํธ์ด์คํ ์ด๋, ์ธํฐํ๋ฆฌํฐ๊ฐ ๋ณ์์ ํจ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ธํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ํ ๋นํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ํจ์๊ฐ ์คํ๋๊ธฐ ์ , ํจ์ ๋ด์์ ํ์ํ๋ ๋ณ์ ๊ฐ๋ค์ ํด๋น ํจ์์ ์ ํจ ๋ฒ์ ์ต์๋จ์ ์ ์ธํด ์ค๋ค. ๋ณดํต, ๋ณ์์ ์ ์ธ๊ณผ ์ด๊ธฐํ๋ฅผ ๋ถ๋ฆฌํ ํ, ์ ์ธ๋ง ์ฝ๋์ ์ต์๋จ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ค. ๋ณ์๋ฅผ ์ ์ํ๋ ์ฝ๋๋ณด๋ค ์ฌ์ฉํ๋ ์ฝ๋๊ฐ ์์ ๋ฑ์ฅํ ์ ์๋ค. ์ ์ธ๊ณผ ์ด๊ธฐํ๋ฅผ ํจ๊ป ์ํํ๋ ๊ฒฝ์ฐ, ์ ์ธ ์ฝ๋๊น์ง ์คํํด์ผ ๋ณ์๊ฐ ์ด๊ธฐํ๋ ์ํ๊ฐ ๋๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํ๋ค. ํจ์ ์ ์ธ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ ์ธ๋ ํจ์๋ ์ ์ธ๋ฌธ ์๋จ์์ ์ฐธ์กฐ, ํธ์ถ ๊ฐ๋ฅ ํจ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ฅผ ํจ์ ์ ์ธ๋ณด๋ค ์์ ๋ฐฐ์น ๊ฐ๋ฅ ๋ค๋ฅธ ์๋ฃํ๊ณผ ๋ณ์์๋ ์ ๋์ํจ ๋ณ์๋ฅผ ์ ์ธํ๊ธฐ ์ , ๋จผ์ ์ด๊ธฐํํ๊ณ ์ฌ์ฉ..
[JavaScript] ๋ธ๋ผ์ฐ์ ์ ์ฅ์
Cookie ๋งค๋ฒ ์๋ฒ๋ก ์ ์ก๋จ ๊ฐ์ฒด ์ ๋ณด ์ ์ฅ์ด ๋ถ๊ฐ๋ฅ ์ฉ๋ ์ ํ์ด ์์ ์๊ตฌ ๋ฐ์ดํฐ ์ ์ฅ์ด ๋ถ๊ฐ๋ฅ Local Storage / Session Storage Local Storage Session Storage ๋ฐ์ดํฐ ์ ์ง ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ํ์๋ ์ ์ง ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ ์ญ์ ๋ฐ์ดํฐ ๋ฒ์ ๋๋ฉ์ธ์ด ๊ฐ๋ค๋ฉด ์ ์ญ ๊ณต์ ๋๋ฉ์ธ ๋ณ๋ก ๋ณ๋ ์์ฑ ๊ฐ์ ๋๋ฉ์ธ์ด์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅด๋ค๋ฉด ๋๋ฉ์ธ์ด ๋ฌ๋ผ์ง
![[JavaScript] ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๋์ ์๋ฆฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNboH9%2FbtrGOb7Pfnf%2FCeyiCu0CkQviH1pCSCuL70%2Fimg.png)
[JavaScript] ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๋์ ์๋ฆฌ
๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๋์ ์๋ฆฌ ํน์ ์น์ฌ์ดํธ์ ์ ๊ทผํ๋ค๊ณ ํ์ ๋์ ๋จ๊ณ๋ฅผ ์๊ฐํด ๋ณด๋ฉด, 1. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํ 2. ์ ์ํ๊ณ ์ถ์ ์ฌ์ดํธ์ URL์ ์ ๋ ฅ 3. ๋ธ๋ผ์ฐ์ ๊ฐ ์ ๋ ฅ๋ URL์ ์๋ฒ์๊ฒ ์ฌ์ดํธ ์ ๋ณด๋ฅผ ๋ฐ์์ ํ๋ฉด์ ํ์ ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด, ๋ณด๊ณ ์ํ๋ ํ์ด์ง๋ฅผ ์๋ฒ์ ์์ฒญํ ๋ค์ ๋ฐ์ ์๋ต์ ๋ธ๋ผ์ฐ์ ์ ํํํ๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ๋ธ๋ผ์ฐ์ ๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ํฌ๋กฌ, ์ต์คํ๋ก๋ฌ, ์ฌํ๋ฆฌ, ํ์ด์ดํญ์ค ๋ฑ์ด๊ณ ๋ฐ๊ฒ ๋๋ ์๋ต์ HTML, CSS, JavaScript, ์ด๋ฏธ์ง ๋ฑ์ด ๋ ๊ฒ์ด๋ค. ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ช ์นญ ์ค๋ช ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ฃผ์ ํ์์ค, ์ด์ /๋ค์ ๋ฒํผ, ๋ถ๋งํฌ ๋ฉ๋ด ๋ฑ ์์ฒญํ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฐฝ์ ์ ์ธํ ๋๋จธ์ง ๋ชจ๋ ๋ถ๋ถ ๋ธ๋ผ์ฐ์ ์์ง ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ ๋๋ง ์์ง ์ฌ์ด์ ๋์์..
[JavaScript] JSON
JSON JavaScript Object Notation(์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ํ๊ธฐ๋ฒ)์ ์ค์๋ง๋ก JSON์ด๋ผ ํํํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ ์กํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ Data ๊ตํ ํ์์ด๋ฉฐ, ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ํํ์์ ์๋ฏธํ๋ค. ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ํํ ๋ฐฉ๋ฒ์ด๋ฉฐ, ๋ฐ์ดํฐ ํฌ๋งท์ผ ๋ฟ์ด๋ค. ์ฌ์ค์ ์ฐ์ ํ์ค์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค. Object(๊ฐ์ฒด)์ ์์ ์ ์ ๋ฐ์ดํฐ ์ด๋ฆ๊ณผ ๊ฐ์ ํ ์์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, key์ value์ ์์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ํ๋์ ๋ณ์ ์์ ๋ค๋ฅธ ํ์ ๋ณ์๋ฅผ ๋ด์ฅํ๋ ํน์ํ ํํ์ ๋ณ์์ด๋ฉฐ, ํ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ์ (.)์ผ๋ก ๊ตฌ๋ถํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก, JSON์ ์ด๋ค ๋ณ์ ์์ ํ์ ๋ณ์๋ฅผ ๋ด์ฅ์ํค๊ธฐ ์ํ JavaScript์ ํ๊ธฐ๋ฒ์ด๋ผ๊ณ ํ ์ ์๋ค. ๊ฐ์ฒด๋ณ์์ด๋ฆ...
![[JavaScript] ๋ฐฐ์ด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwj9nQ%2FbtrAQhT9GiQ%2Fjk4NadtkICeX9UV6XjPjrK%2Fimg.png)
[JavaScript] ๋ฐฐ์ด
๋ฐฐ์ด ๋ฐฐ์ด์ด๋, ๊ฐ์ ์๋ฃ๋ค์ ๋ด๋ ์๋ฃ ๊ตฌ์กฐ ์ค ํ๋์ด๋ค. ๋ณ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ์ ์ฅํด ๋์ ์ํ์ด๋ฉฐ, ํ๋์ ๋ฐฐ์ด์๋ ๋์ผํ ์๋ฃํ์ ๋์ดํ์ฌ ์ฌ์ฉํ๋ค. 1์ฐจ ๋ฐฐ์ด ๋ฐฐ์ด์ ํ์์ฑ ํ๊ธ ์ฑ์ ํ๋ฅผ ๋ณด๊ณ ๊ฐ ํ์๋ณ๋ก ์ด์ ๊ณผ ํ๊ท ์ ๊ตฌํด์ผํ๋ค๊ณ ๊ฐ์ ํ์ ๋, ์ฑ์ ํ๊ฐ ์๋์ ๊ฐ๋ค๋ฉด 3๋ช ์ฉ 3๊ณผ๋ชฉ์ด๋ฏ๋ก ์ด 9๊ฐ์ ๋ณ์๊ฐ ํ์ํ ๊ฒ์ด๋ค. ๋ง์ฝ, 30๋ช ์ ํ์์ ๋ํ 20๊ณผ๋ชฉ์ ๋ํ ์ ์๋ผ๊ณ ๊ฐ์ ํ๋ค๋ฉด ์์ฑํด์ผํ๋ ๋ณ์๊ฐ ๋ ์ฆ๊ฐํ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์ข ๋ ๋ณต์กํด์ง๊ฒ ๋๋ค. ๋ฐฐ์ด์ ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ํด์ํ๊ธฐ ์ํ JavaScript ์๋ฃ ๊ตฌ์กฐ ์ข ๋ฅ ์ค ํ๋๋ก ๋ณ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ์ ์ฅํด ๋์ ์ํ๋ฅผ ๋งํ๋ค. ์ด๋ฆ ๊ตญ์ด ์์ด ์ํ ์ฒ ์ 92 81 77 ์ํฌ 72 95 98 ๋ฏผํ 80 86 ..
[JavaScript] ๊ธฐ๋ณธ ๋ฌธ๋ฒ ํ์ฉ
๊ธฐ๋ณธ ๋ฌธ๋ฒ ํ์ฉ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ์ ๊ตฌ์ฑํ๋ ๋ธ๋ก{} ์์ ๋ค๋ฅธ ๋ฌธ๋ฒ ํํ์ด ํฌํจ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฐ ๊ท์น์ผ๋ก ์ธํด ๋ค์ํ ๋ฌธ๋ฒ ์ค์ฒฉ ํจํด์ด ์๊ฒผ๋ค. ์์ฃผ ์ฌ์ฉ๋๋ ํจํด์ผ๋ก๋ if-if, if-for, for-if, for-for ๋ฑ์ด ์๋ค. if๋ฌธ ์์ ํฌํจ๋ ํ๋ฆ ์ ์ด 1. if-if ๊ตฌ์กฐ ํน์ ์กฐ๊ฑด์ด true๋ก ํ๋จ๋์ด ๋ธ๋ก ์์ ์ง์ ํ์ ๋, ๋ธ๋ก ์์ ์์ธ ์กฐ๊ฑด์ ํ๋ณํ๋ ๊ตฌ์กฐ์ด๋ค. ๋ธ๋ก์ด๋ผ๋ ๊ฒ์ด ์๊ธฐ๋ฉด ๋ฐ์์ ์์ผ๋ก ์งํ ํ, ๊ทธ ๋ค์ ๋ธ๋ก์ผ๋ก ๋์ด๊ฐ๊ฒ ๋๋ค. if (์กฐ๊ฑด) { if (์กฐ๊ฑด) { ... } } else if (์กฐ๊ฑด) { if (์กฐ๊ฑด) { ... } else { ... } } else { if (์กฐ๊ฑด) { ... } else if (์กฐ๊ฑด) { ... } else { ... } }..