1. SQL ๊ฐ์ ์์ - SQL ๊ฐ์ ์์ํ๋ฐ! ์ ์ ๊ตญ๋น์ง์ ๊ต์ก ๋ค์์๋ ํ๋ ์ ์ด ์์ด์ ๋ง๋งํ๊ฒ ๋ดค๋ค๊ฐ ์ง๊ธ๊น์ง ์ฌ์ ๊ต์ก๋์ ๋ฐฐ์ ๋ ๊ฒ๋ค ์ค์ ์ ์ผ ์ด๋ ค์ ๋ค.. - ์ฐจ๊ทผ์ฐจ๊ทผ ๋ค์ ํด๋ด์ผ์ง ํ๋ฒ์ ์ดํดํ๋ ๊ฒ ๋ณด๋ค๋ ์ฌ๋ฌ๋ฒ ๋ณด๋ฉด์ ์ต์ํด์ ธ์ผ๊ฒ ๋ค.. 2. ์ง๋ํ ์ฒดํฌ ๋ฆฌ์คํธ์ ๋ณต์ต ์นธ์ด ์๊ฒผ๋ค!! ๋ค์ ๋ฌ๋ ค 3. ์ด๋ฒ์ฃผ๋ ๋ค์์ฃผ๋... - ๊ธ์์ผ๋ง๋ค ์ผ์ ์ด ์์ด ์ฌ์ ๊ต์ก ์ฐธ์ฌ๋ฅผ ๋ชปํ๋ค - ๋น ์ ธ๋ ์ง์ฅ์๊ฒ ๊ณํ์ ์ง๋ณด์์ง ใ
ใ
4. ์์ผ๋ก์ ๊ณํ - ์ฌ์ ๊ต์ก ๊ธฐ๊ฐ ๋์ ์ฃผ์ด์ง ์๋ฃ๋ค์ ์ฌ๋ฌ๋ฒ ๋ณด๋๊ฒ ๊ณํ์ด์๋๋ฐ ์ถ์ ๊ธฐ๊ฐ์๋ ๋ด์ผํ ๊ฒ ๊ฐ์ผ๋ ์ฐฌ์ฐฌํ ์ผ์ ์ ์ธ์๋ด
์ธ
๐ฎ Symbol - ์๋ฐ์คํฌ๋ฆฝํธ์ ES6์์ ๋์
๋ 7๋ฒ์งธ ๋ฐ์ดํฐ ํ์
- ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์์๊ฐ, ๋ค๋ฅธ ๊ฐ๊ณผ ์ค๋ณต๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ โจ ์์ฑ -> Symbol ํจ์ - ์ฌ๋ฒ๊ฐ์ Symbol ํจ์๋ฅผ ํธ์ถํ์ฌ ์์ฑํด์ผ ํ๋ค. - ์์ฑ๋ ์ฌ๋ฒ ๊ฐ์ ์ธ๋ถ๋ก ๋
ธ์ถ๋์ง ์์ ํ์ธํ ์ ์๊ณ , ๋ค๋ฅธ ๊ฐ๊ณผ ์ ๋ ์ค๋ณต๋์ง ์๋๋ค. const firstSymbol = Symbol(); console.log(typeof firstSymbol);// symbol - ์์ฑ์ ํจ์๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์์ฑ์ ํจ์๋ค๊ณผ ๋ฌ๋ฆฌ new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถํ์ง ์๋๋ค. new ์ฐ์ฐ์๋ก ์์ฑ๋ ๊ฒ๋ค์ ํธ์ถํ๋ฉด ๊ฐ์ฒด(์ธ์คํด์ค)๊ฐ ์์ฑ๋์ง๋ง, ์ฌ๋ฒ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์์๊ฐ์ด๋ค. - ์ฌ๋ฒ ํจ์์๋ ์ ํ์ ์ผ๋ก ๋ฌธ์์ด์ ์ธ์..
๐ Subquery - ์ฟผ๋ฆฌ ์์ ์ฟผ๋ฆฌ - ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์์ง๋ง, ๋ ํธํ๊ณ ๊ฐ๋จํ๊ฒ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด์ค๋ค. 1. ๋น๊ตํ๊ธฐ inner join VS subquery - ์นด์นด์คํ์ด ๊ฒฐ์ ์ ์ ๋ค์ ์ ๋ณด ๋ณด๊ธฐ 1) inner join select u.user_id, u.name, u.email from users u inner join orders o on u.user_id = o.user_id where o.payment_method = 'kakaopay'; 2) Subquery โ ์นด์นด์คํ์ด๋ก ๊ฒฐ์ ํ user_id ๋ชจ๋ ๊ตฌํ๊ธฐ select user_id from orders where payment_method = 'kakaopay' โก user_id๊ฐ ์๋จ์ ..
๐ชข Join - ์ฌ๋ฌ ์ ๋ณด๋ฅผ ํ ๋์ ๋ณด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. - ๋ ํ
์ด๋ธ์ ๊ณตํต๋ ์ ๋ณด(key๊ฐ) ๊ธฐ์ค์ผ๋ก ํ
์ด๋ธ์ ์ฐ๊ฒฐํด์ ํ ํ
์ด๋ธ์ฒ๋ผ ๋ณด๋ ๊ฒ - point_user ํ
์ด๋ธ๊ณผ users ํ
์ด๋ธ์ ์ฐ๊ฒฐํด์ค. -> ๊ณตํต๋ ํค๊ฐ์ 'user_id' select * from point_users left join users on point_users.user_id = users.user_id 1) Left Join - ์ผ์ชฝ ํ
์ด๋ธ์ ์ค์ฌ์ผ๋ก ์ค๋ฅธ์ชฝ์ ํ
์ด๋ธ์ ์ฐ๊ฒฐํ๋ค. - ์ด๋ค ๋ฐ์ดํฐ๋ ๋ชจ๋ ํ๋๊ฐ ์ฑ์์ ธ์์ง๋ง, ์ด๋ค ๋ฐ์ดํฐ๋ ๋น์ด์๋ ํ๋๊ฐ ์๋ค. - ex) ํ์์ด์ง๋ง ์๊ฐ ๋ฑ๋ก ๋๋ ์์ํ์ง ์์ ํฌ์ธํธ๊ฐ null ๊ฐ์ผ๋ https://www.w3schools.com/sql/sql_join_left..
๐ธ๏ธ Group by - ์ํ๋ ์ ํ๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํ ํด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. - ๋์ผํ ๋ฒ์ฃผ๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ฌถ์ด์, ๋ฒ์ฃผ๋ณ ํต๊ณ๋ฅผ ๋ด์ฃผ๋ ๊ฒ. - ~๋ณ ๐โ๏ธ Group by๊ฐ ์คํ๋๋ ์์ from -> group by -> select 1) from orders: orders ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ๊ฐ์ ธ์จ๋ค. 2) group by payment_method: ํ
์ด๋ธ ๋ฐ์ดํฐ์์ ๊ฐ์ payment_method๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ ํฉ์ณ์ค๋ค. 3) select payment_method: payment_method ๋ณ๋ก ๊ทธ๋ฃนํ ๋ ๊ทธ๋ฃน๋ค์ ์ถ๋ ฅํด์ค๋ค. - ๊ฒฐ์ ์๋จ๋ณ๋ก ๊ทธ๋ฃนํ ํด์ ๋ณด์ฌ์ค. select payment_method from orders group by payment_method; ..
1. ์ง์ ๋๋์ ์ต๊ณ ์๋ค..! โค๏ธ - ์ฐ๋ฆฌ์กฐ ์กฐ์๋ถ์ด prototype๊ณผ __proto__ ์ฐจ์ด์ ๋ํด ๋ฌผ์ด๋ด์ฃผ์
์ ๋ตํด๋๋ ธ๋๋ฐ ๋๋ ์ ๋ชฐ๋๋ ๋ถ๋ถ์ด๋ผ ๊ณต๋ถํ๋ฉฐ ์๋ ค๋๋ฆฌ๋๋ผ ์๊ฑฑ๊ฑฐ๋ ธ์ง๋ง ๊ธฐ์ต์๋ ๋๋ฌด ์ ๋จ๋๋ค ใ
ใ
๋๊ตฐ๊ฐ์๊ฒ ๋์๋๋๊ฒ๋ ์๋นํ ๊ธฐ๋ถ ์ข์ ๊ฒฝํ์ด์๋ค. 2. ์นด๋ฉ๋ผ๊ฐ ์ฌ์ฌ ์ ์๋๋ค. ๐ - ์์ง ๊ฐ๋๊ฐ ๋ง์ ์๋ค์ด. 3. ํผ์์์ผ๋ฉด ๋ชปํ์ ๊ณต๋ถ๋ฅผ ์ด์ฌํ ํ๊ฒ๋๋ค. ๐ต๏ธ - ๋งจ๋ ํผ์์ ๊ณํ ์ธ์์ ๊ฐ์ ๋ค์ผ๋ฉด ๋ด์งํ๊ฑฐ๋ ๊ณํ๋๋ก ์ํ๋๋ฐ ๊ฐ์ด ์นด๋ฉ๋ผ ํค๊ณ ํ๊ณ ์ง๋ ์ํฉ๋ ๋ค๊ฐ์ด ์ฒดํฌํด์ผํ๋ ์ด์ฌํ ํ๊ฒ๋๋ค. 15์๋ถํฐ 21์๊น์ง ์ค๊ฐ์ ์ ๋
์๊ฐ 1์๊ฐ ๋นผ๋ฉด 5์๊ฐ์ธ๋ฐ ๊ฝค ์์ฐจ๊ฒ ์ ๋ณด๋ด๊ณ ์๋ค. - ํ์์์ผ๋ฉด 5์๊ฐ ๋์ ๊ฐ์ 1, 2๊ฐ ๊ฒจ์ฐ ๋ดค์๊ฑธ?!๐คจ 4. ๋ฃจํด, ๋ฉ๋ชจ์ ์ต๊ด ..
๋ฐ์ดํฐ๋ฒ ์ด์ค? - ์ฌ๋ฌ ์ฌ๋๋ค์ด ๊ฐ์ด ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ํต - ์ํ๋ ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ํ ๊ธฐ๋ฅ๋ค์ด ์ ๊ณต ๋๋ค. ๋๋ณด๊ธฐ 1) Create - ๋ฐ์ดํฐ์ ์์ฑ 2) Read - ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ฒ 3) Update - ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ 4) Delete - ์ญ์ SQL? - Structured Query Language - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฒญ(Query)์ ๋ณด๋ด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋์์ฃผ๋ ์ธ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ช
๋ น์ด๋ฅผ ์์ฑํ๋ ๊ฒ = 'SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ค.' 1. Select ์ฟผ๋ฆฌ๋ฌธ - ๋ฐ์ดํฐ๋ฅผ ์ ํํด์ ๊ฐ์ ธ์ค๊ฒ ๋ค๋ ๋ช
๋ น์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๊ฒ ๋ด๋ฆฌ๋ ๊ฒ - 1๏ธโฃ ์ด๋ค ํ
์ด๋ธ์์ 2๏ธโฃ ์ด๋ค ํ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ์ง๋ก ๊ตฌ์ฑ๋๋ค. ๐โ๏ธ ํ
์ด๋ธ? ํ๋?..
์๋ฃํ์๋ 8๊ฐ์ง ์๋ฃํ์ด ์๋๋ฐ ๊ทธ ์ค 7๊ฐ๋ ์์ํ์ด๋ค. ์์ํ์ ์ค์ง ํ๋์ ๋ฐ์ดํฐ(๋ฌธ์์ด, ์ซ์ ๋ฑ)๋ง ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์ '์์ํ'์ด๋ผ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฒดํ์ ์์ํ๊ณผ ๋ฌ๋ฆฌ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค. ๐๊ฐ์ฒดํ - ํค๋ก ๊ตฌ๋ถ๋ ๋ฐ์ดํฐ ์งํฉ์ด๋ ๋ณต์กํ ๊ฐ์ฒด(entity)๋ฅผ ์ ์ฅํ ์ ์๋ค. - {...} ์ค๊ดํธ๋ฅผ ์ฌ์ฉํด ๋ง๋ค๊ณ , ์ค๊ดํธ ์์๋ 'key-value' ํํ์ธ ํ๋กํผํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ฃ์ ์ ์๋ค. - ์ค๊ดํธ๋ฅผ ์ด์ฉํด ๊ฐ์ฒด๋ฅผ ์ ์ธํ๋ ๊ฒ์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ๊ฐ์ฒด ์ ์ธ ์ ์ฃผ๋ก ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. - key -> ๋ฌธ์ํ๋ง ํ์ฉ / value -> ๋ชจ๋ ์๋ฃํ ํ์ฉ - ํ๋กํผํฐ ํค๋ ํ๋กํผํฐ์ ์ด๋ฆ ๋๋ ์๋ณ์๋ผ๊ณ ๋ ํ๋ค. ๐ ๋ฆฌํฐ๋ด๊ณผ ํ๋กํผํฐ // 'user' ๋ผ๋ ๊ฐ์ฒด ๋ฆฌํฐ..
โจ ๋ฐฐ์ด - ์์๊ฐ ์๋ ์ปฌ๋ ์
์ ์ ์ฅํ ๋ ์ฐ๋ ์๋ฃ๊ตฌ์กฐ let arr = ['apple', 'banana', 'orange']; - ๋ฐฐ์ด ์์์๋ 0๋ถํฐ ์์ํ๋ ์ซ์๊ฐ ๋งค๊ฒจ์ ธ ์๋ค.(์ธ๋ฑ์ค) let arr = ['apple', 'banana', 'orange']; // ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์์ ์ธ๋ฑ์ค๋ ๋ฌด์กฐ๊ฑด 0๋ถํฐ console.log(arr[0]);// apple console.log(arr[1]);// banana console.log(arr[2]);// orange - ์๋ก์ด ์์๋ฅผ ๋ฐฐ์ด์ ์ถ๊ฐํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. let arr = ['apple', 'banana', 'orange']; arr[3] = 'lemon'; console.log(arr);// (4) ['apple', 'banana',..
๐๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฌ๋ฌ ์ฌ๋๋ค์ด ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ์ ๋ชจ์ - ์ ๋ณด๊ดํ๋ ๊ฒ๋ ๋ง์ง๋ง, ์ ์ฐพ์ผ๋ ค๊ณ ์กด์ฌํ๋ ๊ฒ - ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฐพ๊ณ ์
๋ฐ์ดํธ ํ ์ ์๊ณ , ๋ง์ ์์ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค. 1) ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค - SQL - ์ ๋ฆฌ๋ ์ ๋ณด๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ - ex) Oracle 2) ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค - NoSQL - ๋ณต์กํ๊ฑฐ๋ ์ ์ฐํ ์ ๋ณด๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ - ex) Firestore Database ๐ฅ Firestore Database (firebase) - ๊ตฌ๊ธ์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. 1) Collection - ์๋์ฅ์ ๊ทธ๋ฃน, ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๋ค์ด ํน์ ํ ์ฃผ์ ๋๋ ์ ํ์ผ..