๋ชฉ๋ก๐ Grammar (7)
๐ค ์์งlog ๐ค
์ง๋ 4์ ๋ถํฐ iframwork ์์ ์น์คํ์ด๋ก ๋ณ๊ฒฝํ๋ ํ์ด๋ธ์ ํ๋ก์ ํธ์ ์ฐธ์ฌ์ค์ด๋ค. ์ฌ์ค,, ์น์คํ์ด๋ผ๋ ํ๋ ์์ํฌ ์์ฒด๋ฅผ ์ด๋ฒ ํ๋ก์ ํธ๋์ ์ฒ์ ๋ค์ด๋ณด๊ธฐ๋ ํ์๊ณ ๊ทธ๋์ ์ฌ์ฉํ๋ ๋ฐฉ์๊ณผ ๋ค๋ฅธ์ ์ด ๋ง์์ ๋ง์ด ํด๋งค๋ ์ค์ด๋ค ใ ใ (์์ง๊น์ง๋..) ์น์คํ์ด ๊ต์ก ๊ฐ์, ๊ตฌ๊ธ ๊ฒ์ ์์ ๋ด๊ฐ ์ค์ ๋ฌด์์ ์ฌ์ฉํ๋ ๋ถ๋ถ๋ค๋ง ์ ๋ฆฌํด๋ณด์๋ค. script์์๋ javascript์ ๋ก์ง์ ์์ฑํ๋ค. websquare5 ํ์ผ์ ์์ฑํ๋ฉด onpageload-ํ์ด์ง๋ก๋ฉ ํ ์คํ ๊ฐ ์๋ ๋ฑ๋ก๋๋ค. scwin.onpageload = function() { }; ์น์คํ์ด 5์์๋ ๊ธฐ๋ณธ namespace๊ธฐ๋ฐ์ ์ฝ๋ฉ์ ํ๋ฉฐ default๋ก ์ฌ์ฉํ๋ ๊ฐ์ฒด์ ๋ช ์ scwin์ด๋ค. DataColletion์์๋ data๊ฐ์ฒด๋ฅผ ..
CI/CD ๋? CI ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ์๋ํ ํ๋ก์ธ์ค์ธ ์ง์์ ์ธ ํตํฉ ( Continuous Integration ) ์ง์์ ์ธ ํตํฉ ์ด๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋/ ํ ์คํธ ๋์ด ๊ณต์ Repository์ (ex. git,github) ํตํฉํ๋๊ฒ์ ์๋ฏธ ํ๋ค. ๋ค์์ ๊ฐ๋ฐ์๊ฐ ํ ํ์ผ๋ก ์์ ํ ๊ฒฝ์ฐ, ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ง์ commit๋ค์ด ์์ด๊ฒ ๋๋๋ฐ ๊ทธ๋๋ง๋ค ์ถฉ๋ ํ ์ ์๋ ์ฝ๋๋ค์ ์๋ํ๋ ๋น๋&ํ ์คํธ๋ก ๋ฐฉ์งํ ์ ์๋ค. CD ๋ ์ง์์ ์ธ ๋ฐฐํฌ ( Continuous Deployment ) or ์ง์์ ์ธ ์ ๊ณต ( Continuous Delivery ) ๋ฐฐํฌ ๋จ๊ณ์์ “์๋์ " ์ผ๋ก ๋ฐฐํฌํ๋๊ฒ์ด ์ง์์ ์ธ ์ ๊ณต ( Continuous Delivery ) ์ด๊ณ “์๋ํ” ๋ก ..
CRUD ๋ ๋๋ถ๋ถ์ ์ปดํจํฐ ์ํํธ์จ์ด๊ฐ ๊ฐ์ง๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ธ Create(์์ฑ), Read(์ฝ๊ธฐ), Update(๊ฐฑ์ ), Delete(์ญ์ ) ๋ฅผ ๋ฌถ์ด์ ์ผ์ปซ๋ ๋ง์ด๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ๊ฐ์ถ์ด์ผ ํ ๊ธฐ๋ฅ(์ ๋ณด์ ์ฐธ์กฐ/๊ฒ์/๊ฐฑ์ )์ ๊ฐ๋ฆฌํค๋ ์ฉ์ด๋ก์๋ ์ฌ์ฉ๋๋ค.
๐ฃ REST API : ํ๋ก ํธ์๋ ์น์์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฑฐ๋ (๋ฐฐ๋ฌ์ฑ์์ ์๋ฒ์ ์ฃผ๋ฌธ์ ๋ฃ๊ฑฐ๋ ๋ฑ) ์ด๋ฐ ์๋น์ค๋ค์์ ์ฌ์ฉ๋๋ ๊ฒ์ด REST ๋ ํ์์ API ์ด๋ค. ๊ฐ ์์ฒญ์ด ์ด๋ค ๋์์ด๋ ์ ๋ณด๋ฅผ ์ํ๊ฒ์ธ์ง๋ฅผ ๊ทธ ์์ฒญ์ ๋ชจ์ต ์์ฒด๋ก ์ถ๋ก ์ด ๊ฐ๋ฅํ๋ค. - ๋ ์คํธํํ๊ฒ ๋ง๋ API๋ ์์ฒญ์ ๋ณด๋ด๋ ์ฃผ์๋ง์ผ๋ก๋ ๋๋ต ์ด๊ฒ ๋ญ ํ๋ ์์ฒญ์ธ์ง ํ์ ์ด ๊ฐ๋ฅํ๋ค. ์๋ฒ์ REST API๋ก ์์ฒญ์ ๋ณด๋ผ๋๋ HTTP๋ผ๋ ๊ท์ฝ์ ๋ฐ๋ผ ์ ํธ๋ฅผ ์ ์กํ๋ค. ๐ฃ REST API ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฉ์๋ : GET : ๋ฐ์ดํฐ๋ฅผ Read, ์กฐํ POST : Create, ์๋ก์ด ์ ๋ณด ์ถ๊ฐ DELETE : Delete, ์ ๋ณด ์ญ์ PUT : Update, ์ ๋ณด๋ฅผ ํต์งธ๋ก ๋ณ๊ฒฝํ ๋ PATCH : Update, ์ ๋ณด๋ฅผ ์ผ๋ถ๋ง ๋ณ..
jQuery : ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์์ ์๋ํ๋ ์ฌ์ฉํ๊ธฐ ์ฌ์ด API๋ฅผ ์ฌ์ฉํ์ฌ HTML ๋ฌธ์ ํ์ ๋ฐ ์กฐ์, ์ด๋ฒคํธ ์ฒ๋ฆฌ, ์ ๋๋ฉ์ด์ ๋ฐ Ajax์ ๊ฐ์ ์์ ์ ํจ์ฌ ๋ ๊ฐ๋จํ๊ฒ ๋ง๋๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ Using jQuery with a CDN : AJAX ( Asynchronous JavaScript and XML ) : ์๋ฒ์ ํต์ ํ๊ธฐ ์ํด XML Http Request ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋งํ๋ค. JSON XML HTML ์ผ๋ฐ ํ ์คํธ ํ์ ๋ฑ์ ํฌํจํ ๋ค์ํ ํฌ๋งท์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. AJAX๋ ๋น ๋ฅด๊ฒ ๋์ํ๋ ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ฐ ๊ธฐ๋ฒ์ ํ๋์ด๋ฉฐ, AJAX์ ๊ฐ๋ ฅํ ํน์ง์ ์น ํ์ด์ง ์ ์ฒด๋ฅผ ๋ฆฌํ๋ ์ฌ ํ์ง ์๊ณ ๋ ์น ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง์ ๊ฐฑ์ ํ ์ ์๋ค. ์ฆ Ajax๋ฅผ ..
let ๊ณผ const (var ์ฌ์ฉ์ํจโ) : ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ var์ ์ค์ฝํ ์ธ์์๋ ์คํ ํธ์ด์คํ (hoisting: ์ด๋์ ์ ์ธํ๋ ์๊ด์์ด ํญ์ ์ ์ผ์๋ก ์ ์ธ์ ๋์ด์ฌ๋ ค์ฃผ๋๊ฒ) let, const๋ ์ค์ฝํ ๋ด์์๋ง ์คํ console.log(i); // (์๋ฌ๊ฐ ์๋๊ณ ) undefined var i = 0; console.log(i); // 0 // ํด์ ๊ฒฐ๊ณผ var i; consoloe.log(i); i =0 ; console.log(i); console.log(i); let i = 0; console.log(i); // Uncaught SyntaxError: Identifier 'i' has already been declared (i๊ฐ ์ ์๋์ง ์์๋ค.) let ๊ณผ const๋ ๋ธ๋ก ์ค์ฝ..
โ ๋ฐฐ์ด ์ถ๊ฐ : Array.push() Array.unshift() Array.splice() let arr = [ 'a', 'b', 'c']; arr.push('d'); // arr = ['a', 'b', 'c', 'd'] ๋ฐฐ์ด์ ๋์ ์์ ์ถ๊ฐ let arr = [ 'a', 'b', 'c']; arr.unshift('d'); // arr = ['d', 'a', 'b', 'c'] ๋ฐฐ์ด์ ์์ ์์ ์ถ๊ฐ let arr = [ 'a', 'b', 'c']; arr.splice(2,0,'d'); // arr = ['a', 'b', 'd', 'c'] index 2์ ์์ ์ถ๊ฐ let arr = [ 'a', 'b', 'c']; arr.splice(4,0,'e','f'); // arr = ['a', 'b', '..