๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
[Deep Dive] 22์ฅ this
this ํค์๋ this๋ ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์๋ค. this๋ฅผ ํตํด ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. ํจ์๋ฅผ ํธ์ถํ ๋ arguments ๊ฐ์ฒด์ this๊ฐ ์๋ฌต์ ์ผ๋ก ํจ์ ๋ด๋ถ์ ์ ๋ฌ๋๋ค. ๋จ, this๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ, ์ฆ this ๋ฐ์ธ๋ฉ์ ํจ์ ํธ์ถ ๋ฐฉ์์ ์ํด ๋์ ์ผ๋ก ๊ฒฐ์ ๋๋ค. // ์ ์ญ์์ this โ ์ ์ญ ๊ฐ์ฒด window๋ฅผ ๊ฐ๋ฆฌํจ๋ค. console.log(this); //window // ์ผ๋ฐ ํจ์ ๋ด๋ถ์ this โ ์ ์ญ ๊ฐ์ฒด window๋ฅผ ๊ฐ๋ฆฌํจ๋ค. function test() { console.log(this); // window } // stric mode๊ฐ ์ ์ฉ๋ ์ผ๋ฐ ํจ์ ๋ด๋ถ์ ..
![[Node.js] Cannot find module '@aws-sdk/util-endpoints' ์ค๋ฅ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcPsuS%2FbtrPkqPKAhQ%2FWmA4D19j5rcEyGDTckuFkk%2Fimg.png)
[Node.js] Cannot find module '@aws-sdk/util-endpoints' ์ค๋ฅ
์ค๋ฅ 1) Cannot find module '@aws-sdk/util-endpoints' 2) this.client.send is not a function Node.js ํ๋ก์ ํธ์์ aws-sdk์ multer-s3 ๋ฅผ ์ด์ฉํด์ ์ด๋ฏธ์ง ์ ๋ก๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ค ๋ง๋ ์ค๋ฅ์ด๋ค. ํด๊ฒฐ ๋๊ฐ์ง ์ค๋ฅ๋ ์ ๋ถ ํจํค์ง ๊ฐ ๋ฒ์ ํธํ์ด ์๋์ด์ ์๊ธฐ๋ ์ด์์๋ค. ๊ฒ์ํด๋ณด๋ multer-s3 2.x๋ aws-sdk 2.x์ ํธํ๋๊ณ , multer-s3 3.x๋ aws-sdk 3.x์ ํธํ๋๋ค๊ณ ํ๋ค. ๋ด๊ฐ ์ค์นํ aws-sdk๋ 2.x ๋ฒ์ ์ด๊ณ multer-s3 ์ 3.x ๋ฒ์ ์ด์ด์ ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ํ์ํ๋ค. ์๋์ ๊ฐ์ด ๊ธฐ์กด์ ์ค์น๋์ด ์๋ multer-s3 ๋ฅผ ์ญ์ ํ๊ณ , 2.x ๋ฒ์ ์ผ๋ก ์ค์น ํด์ฃผ์๋๋ ์๋ฌ๊ฐ ..
![[AWS S3] The bucket does not allow ACLs ์ค๋ฅ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmIFS2%2FbtrPoxgeNi3%2F9ZB5N50UmEjL4nsODvrYO1%2Fimg.png)
[AWS S3] The bucket does not allow ACLs ์ค๋ฅ
AWS S3 ACLs ์ค๋ฅ AWS S3๋ฅผ ์ด์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ ํ๋ ์ค ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋ฌ๋ค. ํด๋น ์ค๋ฅ๋ ๋ฒํท์ ACL(Access Control List)์ด ๋นํ์ฑํ ์ํ๋ผ์ ์๊ธฐ๋ ์ค๋ฅ๋ค. ํด๊ฒฐ S3๋ก ๊ฐ์ ๋ฒํท์ ๊ถํ์ ๋ฐ๊ฟ์ฃผ๋ฉด ํด๊ฒฐ๋๋ค. 1. ํด๋น ๋ฒํท์ ๊ถํ ํญ์ผ๋ก ์ด๋ํ๋ค. 2. ์คํฌ๋กค์ ๋ด๋ ค์ ๊ฐ์ฒด ์์ ๊ถ ํธ์ง์ ํด๋ฆญํ๋ค. 3. ์๋์ ๊ฐ์ด ์ค์ ์ ๋ณ๊ฒฝํ ํ ๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ์ ํด๋ฆญํ๋ค. 4. ์๋ก๊ณ ์นจ ํ ํ์ธ ์ ์์ ์ผ๋ก ์ฝ์์ฐฝ์ ์ด๋ฏธ์ง ์ ๋ณด๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ์ฐธ๊ณ https://stackoverflow.com/questions/71080354/getting-the-bucket-does-not-allow-acls-error getting "The b..
๋ฉ์์ด์ฌ์์ฒ๋ผ ํ๋ก ํธ์๋ ์ค์ฟจ 6์ฃผ ์ฐจ
ํค์๋ JavaScript ๊ธฐ์ด ๋๋ฆฌ ๋ฉํ ๋, ํ์ง ๋ฉํ ๋ ํน๊ฐ 6์ฃผ ์ฐจ ์ด๋ฒ ์ฃผ๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก JavaScript ๊ธฐ์ด ๊ฐ๋ ์ ๋ฐฐ์ฐ๊ณ ์๋๋ฐ, HTML / CSS ์์ ๋๋ณด๋ค ํจ์ฌ ์ฌ๋ฏธ์๊ฒ ๋ฃ๊ณ ์๋ค. ๋ค๋ง ์์ ์ค๊ฐ์ ํผ์ MDN์ ์ฝ์ด๋ณด๋ค๊ฐ ์์ ์ ํ๋ฆ์ ๋์น๊ณค ํ๋ ๋ฌธ์ ๊ฐ ์์๋ค. ์์ ์ ์ข ๋ ์ง์คํ๊ธฐ ์ํด MDN์ ์์ต์๊ฐ์ ํ์ฉํด์ ์ฝ์ด๋ณด๋ ๊ฒ์ผ๋ก! ์ ์ฝ๋ฒ 100์ ๋ฅผ ํธ๋ ์ค์ธ๋ฐ part2์ ๋ค์ด๊ฐ๋ ์ ์ ๋ฌธ์ ๊ฐ ์ด๋ ค์์ง๋ค. ๋คํํ ํธ์ค ๋ํ๋์ด ์ ์ฝ๋ฒ ๊ฐ์๋ฅผ ์ ๊ณตํด ์ฃผ์ จ๋ค. ์ฐ์ ์ฒ์์๋ ๋ด ์ค๋ ฅ์ผ๋ก ํ์ด๋ณด๊ณ ๋ต์์ด๋ ๋๋ฌด ์ฐจ์ด๊ฐ ๋๊ฑฐ๋ ๊ถ๊ธํ ๋ฌธ์ ๋ ๊ฐ์๋ก ์ถ๊ฐ์ ์ธ ๊ณต๋ถ๋ฅผ ํ๋ ค๊ณ ํ๋ค. ์ด๋ค ๋ฌธ์ ๋ ์ค๋ ๊ณ ๋ฏผํ๋ค๊ฐ ์ฐ์ผ๋ก ๊ฐ๋ฒ๋ฆฐ ์ ์ด ์์ด์ ๊ฐ์๋ฅผ ๋ค์ ์ ์๋ ๊ฒ ์ ๋ง ๋คํ์ด๋ค ์ถ๋ค. ..
![[๊ณผ์ ] ์ฒํ์ ์ผ ์บ๋ฆญํฐ ๊ฒฝ์ง๋ํ - ํธ์ฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdioE8l%2FbtrN783mKzS%2Fpl3AmGdsNVQVfPOIuXbYfk%2Fimg.png)
[๊ณผ์ ] ์ฒํ์ ์ผ ์บ๋ฆญํฐ ๊ฒฝ์ง๋ํ - ํธ์ฐ
๋ฉ์ฌ EF 3๊ธฐ ์ฒํ์ ์ผ ์บ๋ฆญํฐ ๊ฒฝ์ง๋ํ ๋ฉ์์ด์ฌ์ ํ๋ก ํธ์๋ ์ค์ฟจ์์ HTML๊ณผ CSS๋ก ๋๋ง์ ์บ๋ฆญํฐ๋ฅผ ๋ง๋๋ ๋ํ๊ฐ ์์๋ค. ๊ท์ฝ๊ณ ์ฌ๋ฏธ์๋ ์์ด๋์ด๊ฐ ๋ง์์ ๋ณด๋ ์ฌ๋ฏธ๊ฐ ์์๋ค. ๋๊ธฐ๋ถ๋ค์ด ์ ์ถํ์ ๊ฒ๋ค์ ๋ณด๋ฉด์ ๊ณ์ ๊ฐํํ๋ค. ๋๋ ์ด๋ฒ ๋ํ์์ ๊ฐ์ฌํ๊ฒ๋ ๋์์ ๋ฐ์ ์ ์์๋ค. ํ๊ณ ๋ ํ ๊ฒธ ์์ ๊ณผ์ ์ ๊ฐ๋จํ๊ฒ๋๋ง ๊ธฐ๋ก์ผ๋ก ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค. ๋ฐ๋ชจ https://sduu.github.io/character-contest/ ํธ์ฐ sduu.github.io Github https://github.com/sduu/character-contest GitHub - sduu/character-contest Contribute to sduu/character-contest development by cr..
[Deep Dive] 16์ฅ ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ
16์ฅ ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ ๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋ ์ด์ค ๋๊ดํธ([[...]])๋ก ๊ฐ์ผ ์ด๋ฆ๋ค์ด ๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋๋ค. ๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋๋ ECMAScript ์ฌ์์ ์ ์๋ ๋๋ก ๊ตฌํ๋์ด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์์ ์ค์ ๋ก ๋์ํ์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋๋ก ์ธ๋ถ๋ก ๊ณต๊ฐ๋ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ ์๋๋ค. const o = {}; // ๋ด๋ถ ์ฌ๋กฏ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด๋ถ ๋ก์ง์ด๋ฏ๋ก ์ง์ ์ ๊ทผํ ์ ์๋ค. o.[[Prototype]] // Uncaught StyntaxError: Unexpected token '[' // ์ผ๋ถ ๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋์ ํํ์ฌ ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ์๋จ์ ์ ๊ณตํ๊ธฐ๋ ํ๋ค. o.__proto__ // Object.prototype ์์ฑ์ผ ๊ธฐ์ค Object.pro..
[JavaScript] ์ผํ ์ฐ์ฐ์ (Comma Operator)
์ผํ ์ฐ์ฐ์๋ MDN์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค. ์ผํ ์ฐ์ฐ์๋ ๊ฐ ํผ์ฐ์ฐ์๋ฅผ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐํ๊ณ ๋ง์ง๋ง ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ฐํํ๋ค. ์ผํ ์ฐ์ฐ์๋ ์ฃผ๋ก ์ฌ๋ฌ ๋์์ ํ๋์ ์ค์์ ์ฒ๋ฆฌํ๋ ค๋ ๋ณต์กํ ๊ตฌ์กฐ์์ ํ์ฉํ ์ ์๋ค. ์ฐ์ฐ์ ์ฐ์ ์์์์ ๊ฐ์ฅ ๋ฎ์ ์์๋ฅผ ๊ฐ์ง๊ธฐ๋๋ฌธ์ ๋จผ์ ์ํํ๊ธฐ ์ํด์๋ ๊ดํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. let x, y, z; x = 1, y = 2, z = 3; // 3 console.log(x); // 1 let a, b, c; a = (b = 5, c = 6); // 6 console.log(a); // 6 ์ผํ ์ฐ์ฐ์์ ํ์ฉ for ๋ฌธ const array = [ ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ]; for (let..
๋ฉ์์ด์ฌ์์ฒ๋ผ ํ๋ก ํธ์๋ ์ค์ฟจ 4์ฃผ ์ฐจ
ํค์๋ [CSS] flex, grid, perspective, CSS Sprite ๊ธฐ๋ฒ, IR ๊ธฐ๋ฒ [CSS ํน๊ฐ] ์ง๊ทธ์ฌ๊ทธ ์ค์ต [JavaScript] ์ค์ฝํ, let, const ํค์๋ 4์ฃผ ์ฐจ ๊ผญ ํ์ํ ์์๋ง ๋งํฌ์ ํ๋ ๊ฒ๊ณผ ํ์ฅ์ฑ์ ๊ณ ๋ คํ ๋งํฌ์ ์ฌ์ด์์ ๊ณ ๋ฏผํ๋ค ๋ณด๋ฉด ๋งํฌ์ ์ ๊ฝค ์๊ฐ์ ์๊ฒ ๋๋ค. ์ฐ์ ์ ์ข ์ฐฌ๋ ํน๊ฐ์์ ๋ฐฐ์ด ๊ฒ์ฒ๋ผ ์ฝํ ์ธ ์ ์ง์คํ๊ธฐ๋ณด๋ค๋ ๋ ์ด์์์ ๊ณ ๋ คํด์ ๋งํฌ์ ํ๋ ๊ฒ์ ์ต์ํด์ ธ์ผ ํ ๊ฒ ๊ฐ๋ค. ๋ฒค๋ฉ ๋จธ์ ๊ณผ์ ๋ฅผ ํ๋ฉด์ ์๊ตฌํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ฒ๊ฑฐ์ ์ง๋ง ๋ฅ๋ค์ด๋ธ์์ ๋ฐฐ์ด ๊ฒ์ ์จ ๋ณผ ์ ์์ด์ ์ฌ๋ฏธ์์๋ค. ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ ์ ์์๋๋๋ฐ, ๊ฐ๋ ์ ์ธ ๊ฒ๋ฟ๋ง ์๋๋ผ ํ์ ์ ์ํด ์ข์ ์ฃผ์์ ์์ฑํ๋ ๋ฒ, ๊ฐ๋ ์ฑ๊ณผ ์ฑ๋ฅ์ ๊ณ ๋ คํ ์ฝ๋ฉ ๋ฐฉ๋ฒ๋ ๋ฐฐ์ฐ๊ณ ์ถ๋ค. ๋ค..
[Deep Dive] 14-15์ฅ
14์ฅ ์ ์ญ ๋ณ์์ ๋ฌธ์ ์ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ ์ง์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ ์ ์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ๋ค. ํ์ง๋ง ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ์ง์ญ ๋ณ์๋ ํจ์๊ฐ ํธ์ถ๋๋ฉด ์์ฑ๋๊ณ ํจ์๊ฐ ์ข ๋ฃํ๋ฉด ์๋ฉธํ๋ค. ์ฆ, ์ง์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ํจ์์ ์๋ช ์ฃผ๊ธฐ์ ์ผ์นํ๋ค. ์ง์ญ ๋ณ์๊ฐ ํจ์๋ณด๋ค ์ค๋ ์์กดํ๋ ๊ฒฝ์ฐ๋ ์๋ค. ๋๊ตฐ๊ฐ ์ค์ฝํ๋ฅผ ์ฐธ์กฐํ๊ณ ์์ผ๋ฉด ์ค์ฝํ๋ ์๋ฉธํ์ง ์๊ณ ์์กดํ๊ฒ ๋๋ค. ์ง์ญ ๋ณ์๋ ํจ์๊ฐ ์์ฑํ ์ค์ฝํ์ ๋ฑ๋ก๋๋ค. ๋ฐ๋ผ์ ๋ณ์๋ ์์ ์ด ๋ฑ๋ก๋ ์ค์ฝํ๊ฐ ์๋ฉธ(๋ฉ๋ชจ๋ฆฌ ํด์ )๋ ๋๊น์ง ์ ํจํ๋ค. ๋ํ ํธ์ด์คํ ์ ์ค์ฝํ๋ฅผ ๋จ์๋ก ๋์ํ๋ฉฐ, ํธ์ด์คํ ์ ๋ณ์ ์ ์ธ์ด ์ค์ฝํ์ ์ ๋๋ก ๋์ด ์ฌ๋ ค์ง ๊ฒ์ฒ๋ผ ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ์ ์ ํน์ง์ ๋งํ๋ค๊ณ ํ ์ ์๋ค. ์ ์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ ๋ธ..
[Deep Dive] 12-13์ฅ
12์ฅ ํจ์ ํจ์๋? ํจ์๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ฌธ์ผ๋ก ๊ตฌํํ๊ณ ์ฝ๋ ๋ธ๋ก์ผ๋ก ๊ฐ์ธ์ ํ๋์ ์คํ ๋จ์๋ก ์ ์ํ ๊ฒ์ด๋ค. ์ ๋ ฅ์ ๋ฐ์์ ์ถ๋ ฅ์ ๋ด๋ณด๋ด๋ ์ผ๋ จ์ ๊ณผ์ ์ด๋ผ๊ณ ๋ ํ ์์๋ค. ์ด๋ ํจ์ ๋ด๋ถ๋ก ์ ๋ ฅ์ ์ ๋ฌ๋ฐ๋ ๋ณ์๋ฅผ ๋งค๊ฐ ๋ณ์(parameter), ์ ๋ ฅ์ ์ธ์(argument), ์ถ๋ ฅ์ ๋ฐํ๊ฐ(return value)์ด๋ผ ํ๋ค. ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ฝ๋์ ์ฌ์ฌ์ฉ : ํจ์๋ ํ์ํ ๋ ์ฌ๋ฌ ๋ฒ ํธ์ถํ ์ ์๋ค .์ฆ ์คํ ์์ ์ ๊ฐ๋ฐ์๊ฐ ๊ฒฐ์ ํ ์ ์๊ณ ๋ช ๋ฒ์ด๋ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์ฝ๋์ ์ ๋ขฐ์ฑ : ์ฝ๋์ ์ค๋ณต์ ์ต์ ํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ ํจ์๋ ์ ์ง๋ณด์์ ํธ์์ฑ์ ๋์ด๊ณ ์ฝ๋์ ์ ๋ขฐ์ฑ์ ๋์ด๋ ํจ๊ณผ๊ฐ ์๋ค. ์ฝ๋์ ๊ฐ๋ ์ฑ : ์ ์ ํ ํจ์ ์ด๋ฆ์ ํจ์์ ๋ด๋ถ ์ฝ๋๋ฅผ ์ดํดํ์ง ์๊ณ ๋ ํจ์์ ์ญํ ์ ํ์ ..