Skip to content

andire120/SPAM-Wed-Basic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

19 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SPAM-Wed-Basic

์ฒซ๋ฒˆ์งธ ์ปค๋ฐ‹์ด๋‹ค!

1. html css javascript

์›นํŽ˜์ด์ง€ ๊ทธ๋ฆผ,๊ธ€ = .html
๋””์ž์ธ = .css
๊ธฐ๋Šฅ = .js

2. JavaScript library

Library = ๋‚จ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ

npm = js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๋„์™€์ฃผ๋Š” ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €
js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜, ์ˆ˜์ •, ์‚ญ์ œ ๊ฐ€๋Šฅ
(npm install ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„)

webpack = js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์šฉ๋Ÿ‰ ์ค„์—ฌ์คŒ

3. nodejs

=์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰๋„์šฐ๋ฏธ
(node ํŒŒ์ผ์ด๋ฆ„)

4. bundling tool

= js ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์คŒ
์•ˆ์“ฐ๋Š” ํ•จ์ˆ˜ ๋ณ€์ˆ˜๋Š” ๋‹ค ์ œ๊ฑฐ(์šฉ๋Ÿ‰ ์ถ•์†Œ ๊ฐ€๋Šฅ)
.ts .vue .jsx๋“ฑ์œผ๋กœ ๊ฐœ๋ฐœํ•œ๊ฑฐ๋ฅผ .js๋กœ ๋ณ€ํ™˜ํ•ด์คŒ
์ตœ์‹  ๋ฌธ๋ฒ•์„ ํ˜ธํ™˜์„ฑ ์ข‹๊ฒŒ ๋ฐ”๊ฟ”์คŒ

5. build

npm run build = ๋ฒˆ๋“ค๋งํˆด ์ด์šฉํ•ด์„œ jsํŒŒ์ผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ธฐ

6. SPA

= ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ html ์กฐ์ž‘ ํŽธ๋ฆฌํ•ด์ง
Single Page APplication ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ
(์ƒˆ๋กœ๊ณ ์นจํ•  ๋•Œ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋„˜์–ด๊ฐ)

7. state mangement

= SPA์—์„œ ์‚ฌ์šฉ์ค‘์ธ ๋ณ€์ˆ˜๋“ค ๊ด€๋ฆฌ
SPA ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์  = ์ˆ˜๋งŽ์€ ๋ณ€์ˆ˜๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›€

8. server side rendering

SPA ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋” ํฐ ๋‹จ์  = ๊ตฌ๊ธ€๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋…ธ์ถœ ์–ด๋ ค์›€, ์ฒซํŽ˜์ด์ง€ ๋กœ๋”ฉ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆผ

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด = server-side reendering(html์„ ์„œ๋ฒ„์—์„œ ๋งŒ๋“ค์–ด์„œ ๋ณด๋‚ด์คŒ)

9. meta-framework

๋ฆฌ์•กํŠธ ๋ฌธ๋ฒ•์œผ๋กœ server-side reendering์„ ์›ํ•  ์‹œ, NEXT.JS, NuxtJS ๋“ฑ์„ ์‚ฌ์šฉ
(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์œผ๋กœ ํ’€์Šคํƒ ๊ฐœ๋ฐœ๊ฐ€๋Šฅ, server-side reendering ๊ฐ€๋Šฅ)

10. TypeScript

= ํƒ€์ž…๊ธฐ๋Šฅ์ด ์—…๊ธ€๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์œผ๋กœ ์ฝ”๋“œ ์งœ๊ณ  ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์— ํƒ€์ž…์„ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ์Œ

๋‚˜์ค‘์— bundling tool ์ด์šฉํ•ด์„œ ๋‚˜์ค‘์— .js๋กœ ๋ณ€ํ™˜ํ•ด์•ผํž˜

11. serverless

= ์„œ๋ฒ„ ์—ญํ• ์„ ๋Œ€์‹  ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค
ํšŒ์› ์ธ์ฆ, DB์ž…์ถœ๋ ฅ, ๊ธฐํƒ€ ์„œ๋ฒ„๊ธฐ๋Šฅ์„ ์•Œ์•„์„œ ํ•ด์คŒ
๋‹จ์  : ์ข…๋Ÿ‰์ œ๋ผ ๋น„์Œˆ

12. ๊ฒฐ๋ก 

ํ”„๋ก ํŠธ ๋ถ์ด ์™”์œผ๋‹ˆ ์ด์ƒํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŽ์ด ๋„์ž…ํ•˜๋ฉด ํ”„๋ก ํŠธ์—”๋“œ ๊ณ„๋ฐœ์ž๋ผ๋Š” ์ „๋ฌธ์„ฑ๊ณผ ๋ฐฅ๊ทธ๋ฆ‡์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

- h1 markdown ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

- h2

- h3

- h4

- h5
- h6

pํƒœ๊ทธ

  • 1๋ฒˆ
  • 2๋ฒˆ
  • 3๋ฒˆ
console.log("Hello Worlde");

JavaScript ๊ณต๋ถ€

์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • 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์–ธ์–ด์™€ ๋™์ผํ•˜๋‹ค.

var

  • ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๊ฐ€๋Šฅ, ์ง€์—ญ๋ณ€์ˆ˜,

let

  • ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๊ฐ€๋Šฅ, ๋ธ”๋ก ๋ฒ”์œ„ ๋ณ€์ˆ˜

const

  • ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ, ์ƒ์ˆ˜

ํ˜ธ์ด์ŠคํŒ…

  • ๋ฐ‘์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์œ„์—์„œ๋„ ์“ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž๋ฃŒํ˜•

  1. ์ˆซ์ž(number) : ์ •์ˆ˜ ๋ฐ ๋ถ€๋™ ์†Œ์ˆ˜์ 
  2. ๋ฌธ์ž์—ด(string) : ํ…์ŠคํŠธ
  3. ๋ถˆ๋ฆฌ์–ธ(boolean) : true or false
  4. null : ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ
  5. undefined : ๋ณ€์ˆ˜๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์•˜์Œ
  6. ์‹ฌ๋ฒŒ(symbol) : ๊ณ ์œ ํ•˜๊ณ  ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•
  7. ๊ฐ์ฒด(object) : ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ์œ ํ˜•์œผ๋กœ, ์—ฌ๋Ÿฌ ์†์„ฑ๊ณผ ๋ฉ”์–ด๋“œ๋ฅผ ํฌํ•จ
  8. ๋ฐฐ์—ด(array) : ์—ฌ๋Ÿฌ ๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•
  9. ํ•จ์ˆ˜(function) : ์ฝ”๋“œ ๋ธ”๋ก์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•

let ์ฒดํ—˜ํ•˜๊ธฐ

console.log(
  "์ œ ์ด๋ฆ„์€",
  name,
  "์ด๊ณ ,",
  age,
  "์‚ด์— ์—ฌ์ž ์นœ๊ตฌ๋Š”",
  gf,
  "๋‚จ์ž์นœ๊ตฌ๋Š”",
  bf,
  ",์• ๊ธฐ๋Š” ",
  baby,
  "์ž…๋‹ˆ๋‹ค."
);

์—ฐ์‚ฐ์ž

+, -, *, /, % ์กด์žฌ
==, !=, <=, >= ์กด์žฌ

[== - ์ถœ๋ ฅ๊ฐ’๋งŒ ์„œ๋กœ ๊ฐ™์€์ง€ ๋น„๊ต]
[=== - ์ž๋ฃŒ๊ฐ’์˜ ํƒ€์ž…๊นŒ์ง€ ๋น„๊ต]

if, switch case ์ฒดํ—˜ํ•˜๊ธฐ

if๋ฌธ

if (age > 19) console.log("๋‹น์‹ ์€ ์„ฑ์ธ์ž…๋‹ˆ๋‹ค.");
else if (age > 13) console.log("๋‹น์‹ ์€ ์ฒญ์†Œ๋…„ ์ž…๋‹ˆ๋‹ค.");
else console.log("๋‹น์‹ ์€ ์–ด๋ฆฐ์ด ์ž…๋‹ˆ๋‹ค.");

switch case๋ฌธ

switch (age) {
  case 8:
    console.log("์„ ๋ฌผ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.");
    break;
  default:
    console.log("๋ณผํŽœ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.");
    break;
}

๋ฐ˜๋ณต๋ฌธ

for๋ฌธ

for (๊ธฐ๋ณธ๊ฐ’; ์กฐ๊ฑด์‹; ์ฆ๊ฐ๊ฐ’) {
  console.log(i);
}

for๋ฌธ ์•ˆ์— for๋ฌธ์ด ์กด์žฌํ•˜๋Š” ์ด์ค‘ for๋ฌธ๋„ ๊ฐ€๋Šฅํ•จ.
for๋ฌธ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ์–ธํ•  ๋•Œ ๋ณ€์ˆ˜๋ฅผ ๊ฐ™์ด ์„ ์–ธ๊ฐ€๋Šฅ.
(ex. (let i = 0; i < 10; i++))

while๋ฌธ

while {์กฐ๊ฑด๋ฌธ} {
   ์‹คํ–‰๋ฌธ
}

์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง“์ด ๋ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ์กฐ๊ฑด๋ฌธ์„ True๋กœ ์žก๊ณ  ์ค‘๊ฐ„์— if๋ฌธ์„ ํ™œ์šฉํ•ด break๋ฅผ ๊ฑฐ๋Š” ์‹์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ. (continue๋กœ ๋‹ค์‹œ ๋ฐ˜๋ณต๊ฐ€๋Šฅ.)

do ~ while๋ฌธ

(๊ฑฐ์˜ ์•ˆ์”€)

do {
  console.log(i);
  i++;
} while (i > 10);

console.log(i);

AI์™€ LLM

์ธ๊ณต์ง€๋Šฅ ๊ฐœ์š”

์ธ๊ณต์ง€๋Šฅ์ด๋ž€?

Arificial Intellingence (์ธ๊ณต ์ง€๋Šฅ)

์ธ๊ณต์ง€๋Šฅ์˜ ์—ญ์‚ฌ

1950๋…„๋Œ€ - ํŠœ๋งํ…Œ์ŠคํŠธ
1960๋…„๋Œ€ - ๋…ผ๋ฆฌ์  ๋ฌธ์ œํ•ด๊ฒฐ
1970๋…„๋Œ€ - AI์˜ ๊ฒจ์šธ
1990๋…„๋Œ€ ์ดํ›„ - ์ปดํ“จํ„ฐ ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ๊ณผ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ถ•์ 

AI์˜ ์ข…๋ฅ˜

์ข์€ AI(Narrow AI) - ํ•˜๋‚˜์˜ ํŠน์ •ํ•œ ์ž‘์—…์— ํŠนํ™”๋œ AI
์ผ๋ฐ˜ AI(General AI) - ์ธ๊ฐ„์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” AI
๊ฐ•ํ•œ AI(Strong AI) - ์ž๊ฐ๊ณผ ์˜์‹์„ ๊ฐ€์ง„ AI

AI์˜ ํŠน์ด์ (Singularity)

Human intelligence(์ธ๊ฐ„์˜ ์ง€๋Šฅ) ์„(๋ฅผ) Arificial Intellingence(AI์˜ ์ง€๋Šฅ)์ด ๋›ฐ์–ด๋„˜๋Š” ์‹œ์  > ํŠน์ด์  (์ธ๊ฐ„์˜ ์“ธ๋ชจ๊ฐ€ ์—†์–ด์ง€๋Š” ์‹œ์ ์ด๋ผ ๋ด๋„ ๋จ)

๋จธ์‹ ๋Ÿฌ๋‹ Machine Learning (ML) ์ด๋ž€

๋‹จ์ˆœํ•œ ๊ฒƒ๋“ค์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ.

๋”ฅ ๋Ÿฌ๋‹ Depp Learning (DL) ์ด๋ž€

์ธ๊ณต์‹ ๊ฒฝ๋ง. ๋จธ์‹ ๋Ÿฌ๋‹์˜ ํ•˜์œ„ ๋ฒ„์ „.

๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ

LLM์ด๋ž€

Large Language Model - ํ…์ŠคํŠธ ๋ฐ–์— ์ฒ˜๋ฆฌ๋ฅผ ๋ชปํ•จ, ์–ธ์–ด๋ชจ๋ธ์„ ํ™•์žฅํ•œ ๊ฒƒ

๋ฉ€ํ‹ฐ ๋ชจ๋‹ฌ์ด๋ž€

์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ด ์ด๋ฏธ์ง€๋ฅผ ๋ถ„๋ฅ˜, ์Œ์„ฑ ๋ถ„๋ฅ˜๋ฅผ ํ†ตํ•œ ์‚ฌ๋žŒ์˜ ๋ชฉ์†Œ๋ฆฌ ๋ถ„์„ ๋“ฑ์„ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ์ด๋ผ๊ณ ํ•จ (GTP -4o, ์˜ํ™” H.E.R)

์ œ๋ฏธ๋‚˜์ด (Gemini)

GPT ๊ตฌ๊ธ€๋ฒ„์ „ - ๊ตฌ๊ธ€์—๋‹ค๊ฐ€ ์ž์„ธํžˆ ๊ฒ€์ƒ‰์„ ํ•˜๋ฉด AI๊ฐ€ ์Šค์Šค๋กœ ๊ทธ ๊ฒ€์ƒ‰ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ณ  ๋‚ด๋†“์„ ๋‹ต์„ ์Šค์Šค๋กœ ์ •๋ฆฌํ•ด์„œ ๋ณด์—ฌ์คŒ. (๋‚ด๋…„๋ถ€ํ„ฐ ์ƒ์šฉํ™” ์˜ˆ์ •)

๋ฐฐ์—ด

list๋ž‘ ๊ฐ™์Œ. ์ธ๋ฑ์Šค๋„ ์žˆ๊ณ  int, float, char, bool ๋“ฑ ๋‹ค ๋ฐฐ์—ด์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Œ

length - ๋ฐฐ์—ด์˜ ๊ธธ์ด push - ๋’ค์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์‚ฝ์ž… pop - ๋’ค์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ unshift - ์•ž์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์‚ฝ์ž… shift - ์•ž์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ

const students = ["์ค€์„", "์ค€์˜", "์Šน์›", "์œค์†”", "์˜ˆ๊ฑด"];

์‹์œผ๋กœ ์‚ฌ์šฉ.

Object

์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ, ๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•จ. ์–œ 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) ํ”„๋กœ๊ทธ๋žจ์„ ๋””์ž์ธํ•˜๊ณ , ๊ฐœ๋ฐœํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜ํ•จ.

API๊ฐ€ ๊ฐ€์ ธ์•ผํ•  ๋‚ด์šฉ

  • method - ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ฌ๋ผ๊ณ  ํ•  ๊ฒƒ์ด๋ƒ? ๋ณด๋‚ผ ๊ฒƒ์ด๋ƒ? ๊ฐ™์€ ์š”์ฒญ๋ฐฉ์‹.
  • endpint - ์–ด๋–ค ์ž๋ฃŒ๋ฅผ ์š”์ฒญํ•  ๊ฒƒ์ธ๊ฐ€?
  • parameter - ์ž๋ฃŒ ์š”์ฒญ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€์ •๋ณด (ex. ์•„์ด๋””, ์ œ๋ชฉ ๋“ฑ)

Rest๋ž€?

REST(REprentational State Transfer)์˜ ์•ฝ์ž๋กœ ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›์€ ๋ชจ๋“  ๊ฒƒ.

CRUD

  • ๋ฐ์ดํ„ฐ ์ƒ์„ฑ(Create)
  • ๋ฐ์ดํ„ฐ ์กฐํšŒ(Read)
  • ๋ฐ์ดํ„ฐ ์ˆ˜์ •(Update)
  • ๋ฐ์ดํ„ฐ ์‚ญ์ œ(Delete)

HTTP ๋ฉ”์†Œ๋“œ

  • GET - ๋ฐ์ดํ„ฐ ์กฐํšŒ
  • POST - ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
  • PUT - ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„ ์ˆ˜์ •
  • PATCH - ๋ฐ์ดํ„ฐ ์ „์ฒด ์ˆ˜์ •
  • DELTE - ๋ฐ์ดํ„ฐ ์‚ญ์ œ

REST API๋ž€?

HTTP URL๋ฅผ ํ†ตํ•ด Resource๋ฅผ ๋ช…์‹œํ•˜๊ณ , HTTP Method๋ฅผ ํ†ตํ•ด ํ•ด๋‹น URL์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ.

REST API์˜ ์›์น™

  1. ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
  2. UPL๋งˆ์ง€๋ง‰์— '/'๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
  3. '_' ๋Œ€์‹  '-'๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  4. ํŒŒ์ผ ํ™•์žฅ์ž๋Š” URL์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.

DataBase๋ž€?

๊ตฌ์กฐํ™”๋œ ์ •๋ณด ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์กฐ์งํ™”๋œ ๋ชจ์Œ

DataBase์˜ ์ข…๋ฅ˜ - ๊ด€๊ณ„ํ˜• DB <> NOSQL DB ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰จ.

  • ๊ด€๊ณ„ํ˜• DB - ๊ด€๊ณ„ํ˜• DB ๋“ฑ์ด ์žˆ์Œ. (MYSQL)
  • NOSQL DB - ํ‚ค-๊ฐ’, ๋„ํ๋จผํŠธ, ์ปฌ๋ŸผํŒจ๋ฐ€๋ฆฌ, ๊ทธ๋ž˜ํฌ DB๋“ฑ์ด ์žˆ์Œ (redis, mongo DB)

์„œ๋ฒ„๊ตฌ์กฐ

  • Controller - ์ง์ ‘์ ์œผ๋กœ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •ํ•ด์„œ URL๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ณณ.
  • Service - ํ†ต์‹ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•  ๋กœ์ง์„ ์ ๋Š” ๊ณณ.
  • Repository - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ.
  • Entity -๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์žก์•„ ๊ตฌ์กฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ.

Infra ๊ฐœ๋ฐœ์ž

์ฃผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ํ•˜๋“œ์›จ์–ด ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ฐ ๊ธฐ๋ฐ˜์„ ์„ค๊ณ„, ๊ตฌ์ถ•, ์œ ์ง€๋ณด์ˆ˜ ํ•˜๋Š” ์—ญํ• 
AWS, Azure, GCP์— ๋ฐฑ์—”๋“œ๋‚˜ ํ”„๋ก ํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆฌ๊ณ , CI/CD๋ฅผ ํ•˜๋Š” ๊ฑฐ์ž„

CI/CD๋ž€?

CI/CD๋Š” ์ง€์†์ ํ†ตํ•ฉ(Continuous Intergation) ๋ฐ ์ง€์†์  ์ œ๊ณต/๋ฐฐํฌ(Continuous Delivery/Deployment)๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊ฐ„์†Œํ™”์‹œํ‚ค๊ณ  ๊ฐ€์†ํ™”์‹œํ‚ค๋Š” ๊ฒƒ.

About

SPAM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors