์ ์ฒด ๊ธ
[MySQL] SELECT๋ฌธ ํ์ | ์์ฑ ์์
SELECT select_expr [FROM table_references] [WHERE where_condition] [GROUP BY {col_name | expr | position}] [HAVING where_condition] [ORDER BY {col_name | expr | position}]
[MySQL] ์๋ฃํ
์ซ์ INT: ์ ์ํ ์๋ฃํ FLOAT: ์์ํ ์๋ฃํ ๋ฌธ์์ด CHAR(): ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด. ์ง์ ํ ๊ธธ์ด๋ณด๋ค ์งง๊ฒ ์ ๋ ฅํ๋ฉด ๋๋จธ์ง ๊ณต๊ฐ์ ๊ณต๋ฐฑ์ผ๋ก ๋จ๋๋ค. VARCHAR(): ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด. ์ง์ ํ ๊ธธ์ด๋ณด๋ค ์งง๊ฒ ์ ๋ ฅํ๋ฉด ๋๋จธ์ง ๊ณต๊ฐ์ ์ฌ์ฉํ์ง ์๋๋ค. TEXT: ์ฃผ๋ก URL, ๊ฒ์๊ธ ๋ฑ ๊ธด ๋ฌธ์์ด์ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค. ๋ ์ง ๋ฐ ์๊ฐ TIMESTAMP: YYYY-MM-DD HH:MM:SS ํํ๋ก ๋ ์ง์ ์๊ฐ์ ํ์ํ๋ค. DATETIME: TIMESTAMP์ ๊ฐ์ด ๋ ์ง์ ์๊ฐ์ ํ์ํ๋ฉฐ 1001๋ - 9999๋ ์ ๋ ๋์ ๋ฒ์์ ์๊ฐ์ ๋ํ๋ธ๋ค.
[JavaScript] var๋ฅผ ์ง์ํด์ผํ๋ ์ด์
์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ var ๋์ let์ด๋ const๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ผ. ์ฐ์ , var์ ๋์ผํ ๋ณ์ ์ด๋ฆ์ผ๋ก ๋ค๋ฅธ ๊ฐ์ ๋ด์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ์ด ๋, ๊ฐ์ฅ ๋ง์ง๋ง์ ์ ์ธ๋ name์ด ๋์ค๊ฒ ๋๋ค. ํธํ๋ค๊ณ ์๊ฐํ ์๋ ์์ง๋ง, ์ฌ์ค ๊ต์ฅํ ์ํํ ๊ธฐ๋ฅ์ด๋ค. ๊ฐ๋ฐ ์ค ์ฝ๋ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง๋ค๋ณด๋ฉด ๋ด๊ฐ ์ ์ธํด์ค ๋ณ์ ์ด๋ฆ์ด ๊ธฐ์ต์ด ๋์ง ์์ ์๋ ์๋๋ฐ, ์ด ๊ณผ์ ์์ ๊ฐ์ด ๋ฐ๋์ด๋ฒ๋ฆฐ๋ค๋ฉด.. ๊ทธ ๋ ์ด์ ์ธ๋ฉด์ ๋ฆ๊ฒ ์๋๊ฑฐ์ var name = "Jedi"; var name = "Yujin"; ๋ฐ๋ฉด, let์ var๊ณผ ๋ค๋ฅด๊ฒ ์ ์ธํ๋ ๋ณ์๋ฅผ ์ฌ์ ์ธํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๊น ์ธ๊ธํ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. let name = "Jedi"; let name = "Yujin"; // Err..
[JavaScript] async & await | ๋น๋๊ธฐ ์ฒ๋ฆฌ
async & await ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด์ผ๋ก, ๊ธฐ์กด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ธ ์ฝ๋ฐฑ ํจ์์ Promise์ ๋จ์ ์ ๋ณด์ํ๋ ํค์๋๋ผ๊ณ ํ๋ค. (์์ง Promise๋ ์ ๋ชจ๋ฅด๋๋ฐ..^^) async function ํจ์๋ช (){ await ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฉ์๋๋ช (); } async async ํค์๋๋ฅผ ๋ถ์ฌ์ค ํจ์์ return ๊ฐ์ ๋น๋๊ธฐ ๊ฐ์ฒด์ธ Promise์ resolve ๊ฐ์ด ๋๋ค. ์ฆ, Promise์ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ์ ์ป๋๋ค. async function helloAsync(){ return new Promise(function(resolve, reject){ var s = "Hello, Async!"; resolve(s) }); } async function logSentence(){ var s..
[MySQL] ๋น๋ฐ๋ฒํธ ์ค์ ํ๊ธฐ
alter user 'root'@'localhost' identified with mysql_native_password by '์ค์ ํ๊ณ ์ถ์๋น๋ฐ๋ฒํธ'; ๋น๋ฐ๋ฒํธ ์ค์ ํ ๋ณ๊ฒฝ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํตํด root ๊ณ์ ์ผ๋ก ์ ์ํ ์ ์๋ค. * ๋ณ๊ฒฝ์ฌํญ์ด ์๊ธธ ๊ฒฝ์ฐ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ์ ์ฅํด์ฃผ์ด์ผํ๋ค. flush privileges;
[AWS] EC2 ์ธ์คํด์ค์ ๊ณ ์ IP ํ ๋นํ๋ ๋ฐฉ๋ฒ
์ธ์คํด์ค ๊ด๋ฆฌ์์ ๊ณ ์ IP ํ ๋นํด์ค ์ธ์คํด์ค ์ ํ ํ AWS > ๋คํธ์ํฌ ๋ฐ ๋ณด์ > ํ๋ ฅ์ IP > ํ๋ ฅ์ IP ์ฃผ์ ํ ๋น > ํ ๋น ํด๋ฆญ ํ > ํ๋ ฅ์ IP ์ฃผ์ ์ฐ๊ฒฐ ์ธ์คํด์ค ์ ํ ํ > ์ฐ๊ฒฐ ์ด์ ์ธ์คํด์ค๋ฅผ ๊ป๋ค์ผ๋ ๊ณ ์ IP๋ฅผ ์ค์ ํด์ฃผ์๊ธฐ ๋๋ฌธ์ IP์ฃผ์๊ฐ ์ ๋ ๋ณํ์ง ์์ ํ๋์ ๋ฆฌ์ ๋น ์ต๋ 5๊ฐ๊น์ง ๊ฐ๋ฅํ๋ค๊ณ ํ๋๋ฐ ๋๋ฆด ์ ์๋ ๊ฒ ๊ฐ๋ค ๐ค
[Error] nodemon์ ์ค์นํ๋ ๋ฐ command not found: nodemon ์ด ๋ฐ ๊ฒฝ์ฐ
package.json์ ์ด์ฉํด์ ์ค์นํ๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ , nodemon์ ์ฐพ์ ์ ์๋ค๋ ๋ฌธ๊ตฌ๊ฐ ๋ด๋ค. sudo npm install -g nodemon ์ผ๋ก ์ ์ญ ์ค์น ํ ์ฌ์ฉํด์ฃผ๋ ์ฌ์ฉํ ์ ์์๋ค. ์ด๋ฏธ ์ ์ญ์ผ๋ก ์์คํ ์ ๊น์๋ฒ๋ ธ์ง๋ง, ์ ํด๋น ๋ฌธ๊ตฌ๊ฐ ๋จ๋์ง ์๊ฐํด๋ณด๋๊น ๋ด๊ฐ nodemon์ ์คํํ ๋ script๋ฅผ ํตํด ์ฌ์ฉํ์ง ์๊ณ ๋ฐ๋ก ํฐ๋ฏธ๋๋ก ์ฌ์ฉํด์ ๊ทธ๋ฐ๋ฏํ๋ค. ์ฐธ๊ณ ๋ก nodemon์ ์ฝ๋ ์์ ํ ์ ์ฅ๋ง ํ๋ฉด ์๋์ผ๋ก ์ฌ์คํํด์ฃผ๋ ์์ฃผ ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
[JavaScript] Promise | ์ฝ๋ฐฑ์ง์ฅ์ ํ์ถํ๋ ๋ฐฉ๋ฒ
๋๊ธฐ & ๋น๋๊ธฐ ๊ธ์์ ๋ฑ์ฅํ ์ฝ๋ฐฑ ์ง์ฅ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ Promise ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. Promise๋? : ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ๋ฅผ ๋๋ ๊ฐ์ฒด์ด๋ค. ์ฝ๋ฐฑ์ ์ค์ง์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํด์ค๋ค. ์ฐ์ , ๋น๋๊ธฐ์์ ์ด ๊ฐ์ง ์ ์๋ ์ํ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๋๊ธฐ(Pending): ๋น๋๊ธฐ ์ํ๊ฐ ์์ ์ค์ด๊ฑฐ๋ ์์ํ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ดํ(Fulfilled): ๋น๋๊ธฐ ์ํ๊ฐ ์ ์์ ์ผ๋ก ์งํ๋ ์ํ ๊ฑฐ๋ถ(Rejected): ๋ฒ๊ทธ, ๋๋ ์คํจํ ์ํ๋ก ๋น๋๊ธฐ ์์ ์ด ์ ์์ ์ผ๋ก ์งํ๋์ง ์์ ์ํ resolve: ๋๊ธฐ => ์ดํ reject: ๋๊ธฐ => ๊ฑฐ๋ถ function isPositiveP(number) { const executor = (resolve, reject) => { setTimeo..