์ฒซ๋ฒ์งธ ์ปค๋ฐ์ด๋ค!
์นํ์ด์ง ๊ทธ๋ฆผ,๊ธ = .html
๋์์ธ = .css
๊ธฐ๋ฅ = .js
Library = ๋จ์ด ์์ฑํ ์ฝ๋
npm = js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ํจํค์ง๋งค๋์
js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ค์น, ์์ , ์ญ์ ๊ฐ๋ฅ
(npm install ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ฆ)
webpack = js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฉ๋ ์ค์ฌ์ค
=์๋ฐ์คํฌ๋ฆฝํธ ์คํ๋์ฐ๋ฏธ
(node ํ์ผ์ด๋ฆ)
= js ํ์ผ๋ค์ ํ๋๋ก ํฉ์ณ์ค
์์ฐ๋ ํจ์ ๋ณ์๋ ๋ค ์ ๊ฑฐ(์ฉ๋ ์ถ์ ๊ฐ๋ฅ)
.ts .vue .jsx๋ฑ์ผ๋ก ๊ฐ๋ฐํ๊ฑฐ๋ฅผ .js๋ก ๋ณํํด์ค
์ต์ ๋ฌธ๋ฒ์ ํธํ์ฑ ์ข๊ฒ ๋ฐ๊ฟ์ค
npm run build = ๋ฒ๋ค๋งํด ์ด์ฉํด์ jsํ์ผ ํ๋๋ก ํฉ์น๊ธฐ
= ์๋ฐ์คํฌ๋ฆฝํธ๋ก html ์กฐ์ ํธ๋ฆฌํด์ง
Single Page APplication ๋ง๋ค ๋ ์ฌ์ฉ
(์๋ก๊ณ ์นจํ ๋ ๋ถ๋๋ฝ๊ฒ ๋์ด๊ฐ)
= SPA์์ ์ฌ์ฉ์ค์ธ ๋ณ์๋ค ๊ด๋ฆฌ
SPA ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋จ์ = ์๋ง์ ๋ณ์๊ด๋ฆฌ๊ฐ ์ด๋ ค์
SPA ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ ํฐ ๋จ์ = ๊ตฌ๊ธ๊ฒ์ ๊ฒฐ๊ณผ ๋ ธ์ถ ์ด๋ ค์, ์ฒซํ์ด์ง ๋ก๋ฉ์๊ฐ์ด ์ค๋๊ฑธ๋ฆผ
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด = server-side reendering(html์ ์๋ฒ์์ ๋ง๋ค์ด์ ๋ณด๋ด์ค)
๋ฆฌ์กํธ ๋ฌธ๋ฒ์ผ๋ก server-side reendering์ ์ํ ์,
NEXT.JS, NuxtJS ๋ฑ์ ์ฌ์ฉ
(์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ผ๋ก ํ์คํ ๊ฐ๋ฐ๊ฐ๋ฅ, server-side reendering ๊ฐ๋ฅ)
= ํ์
๊ธฐ๋ฅ์ด ์
๊ธ๋ ์๋ฐ์คํฌ๋ฆฝํธ
ํ์
์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ผ๋ก ์ฝ๋ ์ง๊ณ ๋ณ์๋ ํจ์์ ํ์
์ ์ง์ด๋ฃ์ ์ ์์
๋์ค์ bundling tool ์ด์ฉํด์ ๋์ค์ .js๋ก ๋ณํํด์ผํ
= ์๋ฒ ์ญํ ์ ๋์ ํด์ฃผ๋ ์๋น์ค
ํ์ ์ธ์ฆ, DB์
์ถ๋ ฅ, ๊ธฐํ ์๋ฒ๊ธฐ๋ฅ์ ์์์ ํด์ค
๋จ์ : ์ข
๋์ ๋ผ ๋น์
ํ๋ก ํธ ๋ถ์ด ์์ผ๋ ์ด์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง์ด ๋์
ํ๋ฉด ํ๋ก ํธ์๋ ๊ณ๋ฐ์๋ผ๋ ์ ๋ฌธ์ฑ๊ณผ ๋ฐฅ๊ทธ๋ฆ์ ์งํฌ ์ ์๋ค.
pํ๊ทธ
- 1๋ฒ
- 2๋ฒ
- 3๋ฒ
console.log("Hello Worlde");
- js ์์ ์ฝ๋ ์ ๋ ฅ ํ html์
<script src="/js/app.js"></script>๋ฅผ ์ ๋ ฅํ๋ฉด html๊ณผ ์ฐ๊ฒฐ๋ ์น์ฌ์ดํธ์์ F12 console๋ก ํ์ธ๊ฐ๋ฅ
- ๋๋, html์์ ๋ฐ๋ก
<script>console.log("Hello World!");</script>์ ๋ ฅ ํ ์ฐ๊ฒฐ๋ ์น์ฌ์ดํธ์์ F12 console๋ก ํ์ธ๊ฐ๋ฅ
- ๋๋, ํฐ๋ฏธ๋์์ cd js ์ ๋ ฅ ํ, node app.js ๋ช ๋ น์ด๋ฅผ ํตํด app.js์์ ์ ๋ ฅํ ์ฝ๋ ํ์ธ ๊ฐ๋ฅ
- ๋ณ์๋ ๊ฑฐ์ c์ธ์ด์ ๋์ผํ๋ค.
- ์ฌ์ ์ธ ๊ฐ๋ฅ, ์ฌํ ๋น ๊ฐ๋ฅ, ์ง์ญ๋ณ์,
- ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ, ์ฌํ ๋น ๊ฐ๋ฅ, ๋ธ๋ก ๋ฒ์ ๋ณ์
- ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ, ์ฌํ ๋น ๋ถ๊ฐ๋ฅ, ์์
- ๋ฐ์์ ์ ์ธํ ๋ณ์๋ฅผ ์์์๋ ์ด๋ค.
- ์ซ์(number) : ์ ์ ๋ฐ ๋ถ๋ ์์์
- ๋ฌธ์์ด(string) : ํ ์คํธ
- ๋ถ๋ฆฌ์ธ(boolean) : true or false
- null : ๊ฐ์ด ์กด์ฌํ์ง ์์
- undefined : ๋ณ์๊ฐ ์ด๊ธฐํ๋์ง ์์๊ฑฐ๋ ๊ฐ์ด ํ ๋น๋์ง ์์์
- ์ฌ๋ฒ(symbol) : ๊ณ ์ ํ๊ณ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์ ํ
- ๊ฐ์ฒด(object) : ๋ณตํฉ ๋ฐ์ดํฐ ์ ํ์ผ๋ก, ์ฌ๋ฌ ์์ฑ๊ณผ ๋ฉ์ด๋๋ฅผ ํฌํจ
- ๋ฐฐ์ด(array) : ์ฌ๋ฌ ๊ฐ์ ์์๋๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ ์ ํ
- ํจ์(function) : ์ฝ๋ ๋ธ๋ก์ ์ ์ํ๊ณ ์คํํ ์ ์๋ ๋ฐ์ดํฐ ์ ํ
console.log(
"์ ์ด๋ฆ์",
name,
"์ด๊ณ ,",
age,
"์ด์ ์ฌ์ ์น๊ตฌ๋",
gf,
"๋จ์์น๊ตฌ๋",
bf,
",์ ๊ธฐ๋ ",
baby,
"์
๋๋ค."
);+, -, *, /, % ์กด์ฌ
==, !=, <=, >= ์กด์ฌ
[== - ์ถ๋ ฅ๊ฐ๋ง ์๋ก ๊ฐ์์ง ๋น๊ต]
[=== - ์๋ฃ๊ฐ์ ํ์
๊น์ง ๋น๊ต]
if (age > 19) console.log("๋น์ ์ ์ฑ์ธ์
๋๋ค.");
else if (age > 13) console.log("๋น์ ์ ์ฒญ์๋
์
๋๋ค.");
else console.log("๋น์ ์ ์ด๋ฆฐ์ด ์
๋๋ค.");switch (age) {
case 8:
console.log("์ ๋ฌผ์ ๋ฐ์ต๋๋ค.");
break;
default:
console.log("๋ณผํ์ ๋ฐ์ต๋๋ค.");
break;
}for (๊ธฐ๋ณธ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ๊ฐ) {
console.log(i);
}for๋ฌธ ์์ for๋ฌธ์ด ์กด์ฌํ๋ ์ด์ค for๋ฌธ๋ ๊ฐ๋ฅํจ.
for๋ฌธ์ ๊ธฐ๋ณธ๊ฐ์ ์ ์ธํ ๋ ๋ณ์๋ฅผ ๊ฐ์ด ์ ์ธ๊ฐ๋ฅ.
(ex. (let i = 0; i < 10; i++))
while {์กฐ๊ฑด๋ฌธ} {
์คํ๋ฌธ
}์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ด ๋ ๋๊น์ง ๋ฐ๋ณต
ํ์ง๋ง ๋๋ถ๋ถ ์กฐ๊ฑด๋ฌธ์ True๋ก ์ก๊ณ ์ค๊ฐ์ if๋ฌธ์ ํ์ฉํด break๋ฅผ ๊ฑฐ๋ ์์ผ๋ก ์์ฃผ ์ฌ์ฉ. (continue๋ก ๋ค์ ๋ฐ๋ณต๊ฐ๋ฅ.)
(๊ฑฐ์ ์์)
do {
console.log(i);
i++;
} while (i > 10);
console.log(i);Arificial Intellingence (์ธ๊ณต ์ง๋ฅ)
1950๋
๋ - ํ๋งํ
์คํธ
1960๋
๋ - ๋
ผ๋ฆฌ์ ๋ฌธ์ ํด๊ฒฐ
1970๋
๋ - AI์ ๊ฒจ์ธ
1990๋
๋ ์ดํ - ์ปดํจํฐ ์ฑ๋ฅ์ ํฅ์๊ณผ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ถ์
์ข์ AI(Narrow AI) - ํ๋์ ํน์ ํ ์์
์ ํนํ๋ AI
์ผ๋ฐ AI(General AI) - ์ธ๊ฐ์ฒ๋ผ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ AI
๊ฐํ AI(Strong AI) - ์๊ฐ๊ณผ ์์์ ๊ฐ์ง AI
Human intelligence(์ธ๊ฐ์ ์ง๋ฅ) ์(๋ฅผ) Arificial Intellingence(AI์ ์ง๋ฅ)์ด ๋ฐ์ด๋๋ ์์ > ํน์ด์ (์ธ๊ฐ์ ์ธ๋ชจ๊ฐ ์์ด์ง๋ ์์ ์ด๋ผ ๋ด๋ ๋จ)
๋จ์ํ ๊ฒ๋ค์ ํ์ตํ๋ ๊ฒ.
์ธ๊ณต์ ๊ฒฝ๋ง. ๋จธ์ ๋ฌ๋์ ํ์ ๋ฒ์ .
Large Language Model - ํ ์คํธ ๋ฐ์ ์ฒ๋ฆฌ๋ฅผ ๋ชปํจ, ์ธ์ด๋ชจ๋ธ์ ํ์ฅํ ๊ฒ
์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ด ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅ, ์์ฑ ๋ถ๋ฅ๋ฅผ ํตํ ์ฌ๋์ ๋ชฉ์๋ฆฌ ๋ถ์ ๋ฑ์ ๋ฉํฐ๋ชจ๋ฌ์ด๋ผ๊ณ ํจ (GTP -4o, ์ํ H.E.R)
GPT ๊ตฌ๊ธ๋ฒ์ - ๊ตฌ๊ธ์๋ค๊ฐ ์์ธํ ๊ฒ์์ ํ๋ฉด AI๊ฐ ์ค์ค๋ก ๊ทธ ๊ฒ์ ๋ด์ฉ์ ๋ถ์ํ๊ณ ๋ด๋์ ๋ต์ ์ค์ค๋ก ์ ๋ฆฌํด์ ๋ณด์ฌ์ค. (๋ด๋ ๋ถํฐ ์์ฉํ ์์ )
list๋ ๊ฐ์. ์ธ๋ฑ์ค๋ ์๊ณ int, float, char, bool ๋ฑ ๋ค ๋ฐฐ์ด์ ํฌํจ๋ ์ ์์
length - ๋ฐฐ์ด์ ๊ธธ์ด push - ๋ค์ ์๋ก์ด ๋ฐ์ดํฐ ์ฝ์ pop - ๋ค์ ๋ฐ์ดํฐ ์ญ์ unshift - ์์ ์๋ก์ด ๋ฐ์ดํฐ ์ฝ์ shift - ์์ ๋ฐ์ดํฐ ์ญ์
const students = ["์ค์", "์ค์", "์น์", "์ค์", "์๊ฑด"];์์ผ๋ก ์ฌ์ฉ.
์ฌ๋ฌ ๋ณ์๋ค์ ์งํฉ, ๋ฐฐ์ด๊ณผ ๋น์ทํจ. ์ of๊ฐ ์๋๊ณ ๋ฐฐ์ด์ฒ๋ผ ์ธ๋ฑ์ค ๋ฒํธ ์ฌ์ฉํด์ ์ถ๋ ฅ ๊ฐ๋ฅ.
const me = {
name: "์ ํ์",
age: 19,
score: [60, 50],
cat: false,
};์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํจ.
๋์ ํฉ์น๋ฉด
const SPAM = [
{ role: "๋ถ์ฅ", name: "์ ํ์", grade: 3 },
{ role: "์ฐจ์ฅ", name: "๊ตญ์ฌ์ค", grade: 3 },
{ role: "๋ถ์", name: "์ด์ค์", grade: 1 },
{ role: "๋ถ์", name: "์ ์ค์", grade: 1 },
{ role: "๋ถ์", name: "์ฅ์น์", grade: 1 },
{ role: "๋ถ์", name: "์ด์ค์", grade: 1 },
{ role: "๋ถ์", name: "์ฅ์ฐ์ง", grade: 1 },
{ role: "๋ถ์", name: "์ด์ฐํ", grade: 1 },
{ role: "๋ถ์", name: "์ต์๊ฑด", grade: 1 },
];์ด๋ฐ ์์ผ๋ก ์์ฉ๊ฐ๋ฅ.
ํ ๋ฒ ์ ์ํ ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ธ์๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ์ ์์. return ๊ฐ๋ฅ
function sayhello(name) {
console.log(`${name}๋, ์๋
ํ์ธ์.`);
}
sayhello("์ ํ์");์ด๋ฐ ์์ผ๋ก ์ ์ ์ ํ ํธ์ถ ์์ผ๋ก ์ฌ์ฉ๋จ.
function div(a, b) {
return a / b;
}
console.log(div(5, 6));return ๊ฐ์ ์ด๋ ๊ฒ ์ฌ์ฉ.
๋ชจ๋ ์ฝ๋ ๋ด์์ ์ฌ์ฉ๊ฐ๋ฅํ ๋ณ์
ํน์ ์ฝ๋ ์์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ ํจ์
- Frontend - ์ฌ์ฉ์๊ฐ ์ง์ ์ฌ์ฉํ๋ ์์ญ
- Backend - ํ๋ก ํธ์๋๊ฐ ํต์ ํ๋ ์์ญ
API Server - ํ๋ก ํธ์๋์ ๋ฐฑ์๋ ๋๋ ๋ฐฑ์๋ ๋ผ๋ฆฌ ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์์ญ
DaraBaxe - ๋ฐ์ดํฐ ์ ์ฅ์
Infrastructure - ๋ฐฑ์๋๋ฅผ ์คํํ๋ ์์ญ
API == ๋ฉ๋ดํ
์๋น๊ณผ ์๋์ด ์์์ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ == ์ฝ๋
์๋ฒ ์ฌ์ด๋(Server Side) ํ๋ก๊ทธ๋จ์ ๋์์ธํ๊ณ , ๊ฐ๋ฐํ๊ณ , ์ ์ง๋ณด์ํจ.
- method - ๋ฐ์ดํฐ๋ฅผ ๋ฌ๋ผ๊ณ ํ ๊ฒ์ด๋? ๋ณด๋ผ ๊ฒ์ด๋? ๊ฐ์ ์์ฒญ๋ฐฉ์.
- endpint - ์ด๋ค ์๋ฃ๋ฅผ ์์ฒญํ ๊ฒ์ธ๊ฐ?
- parameter - ์๋ฃ ์์ฒญ์ ํ์ํ ์ถ๊ฐ์ ๋ณด (ex. ์์ด๋, ์ ๋ชฉ ๋ฑ)
REST(REprentational State Transfer)์ ์ฝ์๋ก ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ชจ๋ ๊ฒ.
- ๋ฐ์ดํฐ ์์ฑ(Create)
- ๋ฐ์ดํฐ ์กฐํ(Read)
- ๋ฐ์ดํฐ ์์ (Update)
- ๋ฐ์ดํฐ ์ญ์ (Delete)
- GET - ๋ฐ์ดํฐ ์กฐํ
- POST - ๋ฐ์ดํฐ ์์ฑ
- PUT - ๋ฐ์ดํฐ ๋ถ๋ถ ์์
- PATCH - ๋ฐ์ดํฐ ์ ์ฒด ์์
- DELTE - ๋ฐ์ดํฐ ์ญ์
HTTP URL๋ฅผ ํตํด Resource๋ฅผ ๋ช ์ํ๊ณ , HTTP Method๋ฅผ ํตํด ํด๋น URL์ ๋ํ CRUD๋ฅผ ์ ์ฉํ๋ ๊ฒ.
- ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
- UPL๋ง์ง๋ง์ '/'๋ฅผ ํฌํจํ์ง ์๋๋ค.
- '_' ๋์ '-'๋ฅผ ์ฌ์ฉํ๋ค.
- ํ์ผ ํ์ฅ์๋ URL์ ํฌํจํ์ง ์๋๋ค.
๊ตฌ์กฐํ๋ ์ ๋ณด ๋๋ ๋ฐ์ดํฐ์ ์กฐ์งํ๋ ๋ชจ์
DataBase์ ์ข ๋ฅ - ๊ด๊ณํ DB <> NOSQL DB ๋๊ฐ์ง๋ก ๋๋จ.
- ๊ด๊ณํ DB - ๊ด๊ณํ DB ๋ฑ์ด ์์. (MYSQL)
- NOSQL DB - ํค-๊ฐ, ๋ํ๋จผํธ, ์ปฌ๋ผํจ๋ฐ๋ฆฌ, ๊ทธ๋ํฌ DB๋ฑ์ด ์์ (redis, mongo DB)
- Controller - ์ง์ ์ ์ผ๋ก ๋ฉ์๋๋ฅผ ์ ํด์ URL๋ก ํต์ ํ๋ ๊ณณ.
- Service - ํต์ ํ๋ฉฐ ์ฌ์ฉํ ๋ก์ง์ ์ ๋ ๊ณณ.
- Repository - ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ.
- Entity -๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ก์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ณณ.
์ฃผ๋ก ์ํํธ์จ์ด ๋ฐ ํ๋์จ์ด ์์คํ
์ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ฐ ๊ธฐ๋ฐ์ ์ค๊ณ, ๊ตฌ์ถ, ์ ์ง๋ณด์ ํ๋ ์ญํ
AWS, Azure, GCP์ ๋ฐฑ์๋๋ ํ๋ก ํธ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฆฌ๊ณ , CI/CD๋ฅผ ํ๋ ๊ฑฐ์
CI/CD๋ ์ง์์ ํตํฉ(Continuous Intergation) ๋ฐ ์ง์์ ์ ๊ณต/๋ฐฐํฌ(Continuous Delivery/Deployment)๋ฅผ ์๋ฏธํ๋ฉฐ, ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ผ์ดํ ์ฌ์ดํด์ ๊ฐ์ํ์ํค๊ณ ๊ฐ์ํ์ํค๋ ๊ฒ.