๐Ÿ›  [Backend] ๊ธฐ์ˆ ๋ฉด์ ‘ top30_1

๊น€์ง€ํ˜œยท2023๋…„ 8์›” 16์ผ
0

CS

๋ชฉ๋ก ๋ณด๊ธฐ
1/5

๐Ÿ“ 1. NoSQL๊ณผ RDBMS์˜ ํŠน์ง•๊ณผ ์ฐจ์ด์ (์žฅ, ๋‹จ์ )

๋‹ต๋ณ€

NoSQL๋Š” ๋Œ€๋Ÿ‰์˜ ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ๋ฐ ํŠนํ™”๋˜์—ˆ์œผ๋ฉฐ ๊ณ ์ •๋œ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋Š” ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉฐ,

RDBMS๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์กฐ์ž‘, ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค.

๋‘˜์˜ ์ฐจ์ด์ ์„ ์žฅ๋‹จ์ ์œผ๋กœ ๋น„๊ตํ•ด๋ณด์ž๋ฉด,

NoSQL๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ •์˜ ํ•˜์ง€ ์•Š๊ณ  ์Šคํ‚ค๋งˆ๋ฅผ ์ •ํ•˜์ง€ ์•Š์•„ ์ž์œ ๋กœ์šด ๋ฐ์ดํ„ฐ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทœ๊ฒฉํ™” ๋˜์–ด ์žˆ์ง€ ์•Š์•„ Key๊ฐ’์— ๋Œ€ํ•œ ์ž…, ์ถœ๋ ฅ๋งŒ ์ง€์›ํ•œ๋‹ค.

RDBMS๋Š” SQL์ด๋ผ๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ์— ๋ฐ์ดํ„ฐ์˜ ๋ถ„๋ฅ˜, ์ •๋ ฌ, ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์ž‘์—…์˜ ์™„์ „์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๋ฐ˜๋“œ์‹œ ์Šคํ‚ค๋งˆ ๊ทœ๊ฒฉ์— ๋งž์ถฐ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.


์ƒ์„ธ ๊ณต๋ถ€

NoSQL(๋น„-๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_Not Only SQL):
๋Œ€๋Ÿ‰์˜ ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ๋ฐ ํŠนํ™”๋˜์—ˆ์œผ๋ฉฐ ๊ณ ์ •๋œ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋Š” ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • RDBMS์˜ ๋ณต์žก๋„์™€ ์šฉ๋Ÿ‰ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ๋“ฑ์žฅํ–ˆ๋‹ค.

  • ์ •ํ•ด์ง„ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†์–ด ์ž์œ ๋กญ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์žฅ์ :
    • ๋ฐ์ดํ„ฐ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์Œ (join ๋ถˆํ•„์š”ํ•˜๊ณ  ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค)
    • RDBMS๋ณด๋‹ค ๋ณต์žก๋„๊ฐ€ ๋–จ์–ด์ ธ ํ›จ์”ฌ ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ, ์ €์žฅํ•จ.
    • ์Šคํ‚ค๋งˆ๊ฐ€ ์ •ํ•ด์ ธ์žˆ์ง€ ์•Š์•„ ์ž์œ ๋กœ์šด ๋ฐ์ดํ„ฐ ์ €์žฅ์ด ๊ฐ€๋Šฅ
    • ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์ฒ˜๋ฆฌํ•จ
  • ๋‹จ์ :
    • ์Šคํ‚ค๋งˆ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์•„, ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทœ๊ฒฉํ™” ๋˜์–ด์žˆ์ง€ ์•Š์Œ.
    • Key๊ฐ’์— ๋Œ€ํ•œ ์ž….์ถœ๋ ฅ๋งŒ ์ง€์›
    • UPDATE ํ•˜๋Š”๋ฐ ๋น„๊ต์  ๋Š๋ฆผ

RDBMS(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_Relational DataBase Management System):
๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์กฐ์ž‘, ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์žฅ์ :

    • Data๋ฅผ Column๊ณผ Rowํ˜•ํƒœ๋กœ ์ €์žฅ
    • ๋ฐ์ดํ„ฐ์˜ ๋ถ„๋ฅ˜,์ •๋ ฌ, ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฆ„
    • SQL์ด๋ผ๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃธ
    • ์ž‘์—…์˜ ์™„์ „์„ฑ ๋ณด์žฅ
    • ๋ฐ์ดํ„ฐ์˜ UPDATE๊ฐ€ ๋น ๋ฆ„
  • ๋‹จ์ :

    • ๋ฐ˜๋“œ์‹œ ์Šคํ‚ค๋งˆ ๊ทœ๊ฒฉ์— ๋งž์ถฐ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์•ผ ํ•จ
    • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋ถ€ํ•˜ ๋ฐœ์ƒ์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ค์›€
    • ์„ฑ๋Šฅํ–ฅ์ƒ์— (Scale-up) ๋†’์€ ๋น„์šฉ

๐Ÿ“ 2. mvc ํŒจํ„ด

๋‹ต๋ณ€

๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ตฌ์„ฑ๋œ ํŒจํ„ด์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ํ™”๋ฉด์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ทฐ๋Š” ๋ ˆ์ด์•„์›ƒ๊ณผ ํ™”๋ฉด์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ช…๋ น์„ ๋ชจ๋ธ๊ณผ ๋ทฐ ๋ถ€๋ถ„์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ 3. RDBMS ์ •๊ทœํ™” ์„ค๋ช…

๋‹ต๋ณ€

RDBMS(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ)์˜ ์ •๊ทœํ™”๋Š”
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์กฐ์งํ™”ํ•˜์—ฌ ์ค‘๋ณต์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ 
๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด๋‹ค.

  1. ์ œ1 ์ •๊ทœํ˜•(1NF):
    ๊ฐ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์†์„ฑ์€ ์›์ž๊ฐ’(๋” ์ด์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋Š” ๊ฐ’)๋งŒ์„ ๊ฐ€์ง€๋ฉฐ,
    ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค.

  2. ์ œ2 ์ •๊ทœํ˜•(2NF):
    ์ œ1 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๋ฉด์„œ,
    ๋ชจ๋“  ๋น„์ฃผ์š” ํ‚ค ์†์„ฑ์ด ์ฃผ์š” ํ‚ค์— ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†์ด์–ด์•ผ ํ•œ๋‹ค.

  3. ์ œ3 ์ •๊ทœํ˜•(3NF):
    ์ œ2 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๋ฉด์„œ, ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†์ด ์—†์–ด์•ผ ํ•œ๋‹ค.
    ๋‹ค์‹œ ๋งํ•ด, ๋ชจ๋“  ์†์„ฑ์€ ์ฃผ์š” ํ‚ค์— ์ง์ ‘ ์ข…์†๋˜์–ด์•ผ ํ•œ๋‹ค.

  4. BCNF(Boyce-Codd):
    ๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณด ํ‚ค(์ฃผ์š” ํ‚ค)์ด์–ด์•ผ ํ•œ๋‹ค.
    ์ด๋Š” ๋ชจ๋“  ๋น„์ฃผ์š” ํ‚ค ์†์„ฑ์ด ์ฃผ์š” ํ‚ค์— ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.


์™„์ „ ํ•จ์ˆ˜์  ์ข…์†:

  • ์ข…์†์ž๊ฐ€ ๊ธฐ๋ณธํ‚ค์—๋งŒ ์ข…์†
  • ๊ธฐ๋ณธํ‚ค๊ฐ€ ์—ฌ๋Ÿฌ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„๊ฒฝ์šฐ ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์†์„ฑ์ด ํฌํ•จ๋œ ๊ธฐ๋ณธํ‚ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์— ์ข…์†๋œ ๊ฒฝ์šฐ

์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†:

  • Xโ†’Y, Yโ†’Z ์ด๋ž€ ์ข…์† ๊ด€๊ณ„
    => Xโ†’Z๊ฐ€ ์„ฑ๋ฆฝ๋  ๋•Œ ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†

๐Ÿ“ 4. Primary Key, Foreign Key ์„ค๋ช…

๋‹ต๋ณ€

  • PK๋Š” ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ค‘๋ณต๋œ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๊ณ  null ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค. ์ฃผ๋กœ ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๋‚˜ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋กœ ์„ค์ •๋œ๋‹ค.
  • FK๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ PK๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. FK๋Š” ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฐ’์ด ์ฐธ์กฐ๋˜๋Š” ํ…Œ์ด๋ธ”์˜ PK ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค.

๐Ÿ“ 5. HTTP ๋ฉ”์„œ๋“œ ์„ค๋ช…

๋‹ต๋ณ€

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response) ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹
  • ์„œ๋ฒ„์— ์ฃผ์–ด์ง„ ๋ฆฌ์†Œ์Šค์— ์ˆ˜ํ–‰ํ•˜๊ธธ ์›ํ•˜๋Š” ํ–‰๋™, ์„œ๋ฒ„๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋™์ž‘์„ ์ง€์ •ํ•˜๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•

์ฃผ์š” ๋ฉ”์†Œ๋“œ:

  • GET : ๋ฆฌ์†Œ์Šค ์กฐํšŒ
  • POST: ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ฃผ๋กœ ๋“ฑ๋ก์— ์‚ฌ์šฉ
  • PUT : ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ฒด(๋ฎ์–ด์“ฐ๊ธฐ), ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ
  • PATCH : ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ (PUT์ด ์ „์ฒด ๋ณ€๊ฒฝ, PATCH๋Š” ์ผ๋ถ€ ๋ณ€๊ฒฝ)
  • DELETE : ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

๊ธฐํƒ€ ๋ฉ”์†Œ๋“œ:

  • HEAD : GET๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋ฉ”์‹œ์ง€ ๋ถ€๋ถ„(body ๋ถ€๋ถ„)์„ ์ œ์™ธํ•˜๊ณ , ์ƒํƒœ ์ค„๊ณผ ํ—ค๋”๋งŒ ๋ฐ˜ํ™˜
  • OPTIONS : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ†ต์‹  ๊ฐ€๋Šฅ ์˜ต์…˜(๋ฉ”์„œ๋“œ)์„ ์„ค๋ช…(์ฃผ๋กœ CORS์—์„œ ์‚ฌ์šฉ)
  • CONNECT : ๋Œ€์ƒ ์ž์›์œผ๋กœ ์‹๋ณ„๋˜๋Š” ์„œ๋ฒ„์— ๋Œ€ํ•œ ํ„ฐ๋„์„ ์„ค์ •
  • TRACE : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฐฑ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰

๐Ÿ“ 6. CORS(Cross Origin Resource Sharing) ์„ค๋ช…

๋‹ต๋ณ€

CORS(Cross-Origin Resource Sharing):

  • ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ตฌํ˜„๋œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์œผ๋กœ, ํ•œ ๋„๋ฉ”์ธ์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค.
  • ์„œ๋ฒ„๋Š” ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜๋ฅผ ํ—ˆ์šฉํ•˜๊ณ , ์š”์ฒญ ์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” HTTP ๋ฉ”์„œ๋“œ ๋ฐ ํ—ค๋”๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์ž‘๋™ํ•œ๋‹ค.

์ž‘๋™๋ฐฉ์‹

  1. ๋‹จ์ˆœ ์š”์ฒญ (Simple Requests):
    ๊ฐ„๋‹จํ•œ HTTP ๋ฉ”์„œ๋“œ(GET, POST, HEAD)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ์— "Origin" ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์š”์ฒญ์˜ ์ถœ์ฒ˜๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
    ์„œ๋ฒ„๋Š” ์ด "Origin" ํ—ค๋”๋ฅผ ํ™•์ธํ•˜๊ณ , "Access-Control-Allow-Origin" ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ—ˆ์šฉ๋œ ์ถœ์ฒ˜๋ฅผ ๋‚˜ํƒ€๋‚ด์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

  2. ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ์š”์ฒญ (Preflight Requests):
    ์‚ฌ์šฉ์ž ์ง€์ • ํ—ค๋”๋‚˜ ํ‘œ์ค€์ด ์•„๋‹Œ HTTP ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์ด ๋ณต์žกํ•œ ์š”์ฒญ์˜ ๊ฒฝ์šฐ, ๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์ „์— "ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ" ๋˜๋Š” "OPTIONS" ์š”์ฒญ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค.
    ์„œ๋ฒ„๋Š” ์ด ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ "Access-Control-Allow" ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ์š”์ฒญ์ด ํ—ˆ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ค€๋‹ค.

๐Ÿ“ 7. ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘์›๋ฆฌ

๋‹ต๋ณ€

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— url์„ ์ž…๋ ฅํ•ด์„œ ์„œ๋ฒ„์— ์›นํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—์„œ ํ•ด๋‹น url์— ๋งž๋Š” html,css,javaScriptํŒŒ์ผ ๋ฐ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

  2. ๋ธŒ๋ผ์šฐ์ €๋Š” html ํŒŒ์„œ๋ฅผ ํ†ตํ•ด์„œ htmlํŒŒ์ผ์„ ํŒŒ์‹ฑํ•˜๊ณ  DOMํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค.

  3. html์— ์ ์šฉ๋˜๋Š” css๋„ cssํŒŒ์„œ๋ฅผ ํ†ตํ•ด์„œ ํŒŒ์‹ฑ์ด๋˜๊ณ  CSSOMํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜๋˜๊ณ  DOMํŠธ๋ฆฌ์™€ ๊ฒฐํ•ฉ๋˜์–ด ๋ Œ๋”ํŠธ๋ฆฌ๊ฐ€ ๋œ๋‹ค.
    (์ด ๋ Œ๋”ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.)
    (javaScript๋Š” ๋ Œ๋”๋ง ์—”์ง„์ด ์•„๋‹Œ javaScript์—”์ง„์ด ์ฒ˜๋ฆฌํ•œ๋‹ค.)

  4. htmlํŒŒ์„œ๊ฐ€ html์„ ํŒŒ์‹ฑํ•˜๋Š” ๊ณผ์ •์—์„œ scriptํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด javaScript์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ dom์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜๊ณ  javaScript์—”์ง„์œผ๋กœ ์ œ์–ด ๊ถŒํ•œ์„ ๋„˜๊ธด๋‹ค.

  5. ๊ถŒํ•œ์„ ๋ฐ›์€ javaScript์—”์ง„์€ script ํƒœ๊ทธ ๋‚ด์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ๋˜๋Š” script ํƒœ๊ทธ์˜ src ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์— ์ •์˜๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ณ  ํŒŒ์‹ฑํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.

  6. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ๋‹ค์‹œ HTML ํŒŒ์„œ๋กœ ์ œ์–ด ๊ถŒํ•œ์„ ๋„˜๊ฒจ์„œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ค‘์ง€ํ–ˆ๋˜ ์‹œ์ ๋ถ€ํ„ฐ DOM ์ƒ์„ฑ์„ ์žฌ๊ฐœํ•œ๋‹ค.

๐Ÿ“ 8. ์ฟ ํ‚ค, ์„ธ์…˜์˜ ๊ฐœ๋…๊ณผ ์ฐจ์ด์ 

๋‹ต๋ณ€

์ฟ ํ‚ค(Cookie):

  • ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด๋‹ค.
    (์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ)
  • ์ฃผ๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆ, ์„ ํ˜ธ ์„ค์ •, ์ถ”์  ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ •๋ณด๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„ธ์…˜(Session):

  • ์„ธ์…˜์€ ์„œ๋ฒ„ ์ธก์—์„œ ์œ ์ง€๋˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ ์ •๋ณด์ด๋‹ค.
  • ์ผ์ •๊ธฐ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋งŒ๋ฃŒ๋œ๋‹ค.
  • ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์„ธ์…˜ID๋ฅผ ์ €์žฅํ•˜๊ณ , ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์„ธ์…˜ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
    (์„ธ์…˜ID๋งŒ์ด ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๊ณ , ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์— ์ €์žฅ๋˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.)

์ฐจ์ด์ 

  • ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜์ง€๋งŒ, ์„ธ์…˜์€ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

  • ์ฟ ํ‚ค๋Š” ๋งŒ๋ฃŒ ๋‚ ์งœ์™€ ๋ฒ”์œ„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์„ธ์…˜์€ ์ผ์ • ๊ธฐ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋งŒ๋ฃŒ๋œ๋‹ค.

  • ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜์ง€๋งŒ,
    ์„ธ์…˜์€ ์„œ๋ฒ„์ธก์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์„ฑ์ด ๋†’๋‹ค.
    (์š”์ฒญ์†๋„: ์ฟ ํ‚ค > ์„ธ์…˜(์„ธ์…˜์€ ์„œ๋ฒ„์—์„œ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค))

  • ์„ธ์…˜์€ ์„œ๋ฒ„์˜ ์ž์›์„ ์‚ฌ์šฉํ•œ๋‹ค.
    -> ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์–ด์งˆ ์ˆ˜ ์žˆ๊ณ , ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๊ฐ€ ์œ ๋ฆฌํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

๐Ÿ“ 9. TCP/UDP์— ๋Œ€ํ•ด์„œ ์„ค๋ช…

๋‹ต๋ณ€

TCP (Transmission Control Protocol):
์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋ณด์žฅํ•˜๋Š” ์—ฐ๊ฒฐ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ(๊ทœ์•ฝ)์ด๋‹ค.

  • ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๊ฐ€์ƒ ํšŒ์„  ๋ฐฉ์‹์„ ์ œ๊ณต
  • ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก
  • ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ
  • ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์ˆœ์„œ ๋ณด์žฅ
  • UDP๋ณด๋‹ค ์ „์†ก์†๋„๊ฐ€ ๋Š๋ฆผ
  • ์—ฐ๊ฒฐ์„ ์„ค์ •(3-way handshaking)๊ณผ ํ•ด์ œ(4-way handshaking)

UDP (User Datagram Protocol):
์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ(๊ทœ์•ฝ)

์ธํ„ฐ๋„ท ์ƒ์—์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์‹ ํ˜ธ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ณด๋‚ด๋Š” ์ชฝ์—์„œ ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

  • ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋ฐฉ์‹์„ ์ œ๊ณต
  • ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๋‹ค.
  • ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ถ„
  • ํŒจํ‚ท ์˜ค๋ฒ„ํ•ด๋“œ๊ฐ€ ์ ์–ด ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ ๊ฐ์†Œ
  • ํ˜ผ์žก ์ œ์–ด๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— TCP๋ณด๋‹ค ๋น ๋ฆ„
  • TCP์˜ handshaking ๊ฐ™์€ ์—ฐ๊ฒฐ ์„ค์ •์ด ์—†์Œ

๐Ÿ“ 10. http, https ์ฐจ์ด์  ์„ค๋ช…

๋‹ต๋ณ€

HTTPS๋Š” SSL(Secure Sockets Layer) ๋ฐ ์ด๋ฅผ ๋Œ€์ฒดํ•œ TLS(Transport Layer Security) ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”, ์„œ๋ฒ„ ์‹ ์› ํ™•์ธ, ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ ๋ฐฉ์ง€, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋“ฑ์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋ฐ˜ํ•ด HTTP๋Š” ๋ณด์•ˆ์ด ๊ฑฐ์˜ ์—†๋Š” ํ‰๋ฌธ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ,
๋ฏผ๊ฐํ•œ ์ •๋ณด์˜ ์ „์†ก์ด๋‚˜ ์›น ์‚ฌ์ดํŠธ ์šด์˜ ์‹œ์—๋Š” HTTPS ์‚ฌ์šฉ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

TLS๊ฐ€ SSL์˜ ํ›„์† ํ”„๋กœํ† ์ฝœ๋กœ ๋ฐœ์ „ํ•˜์˜€์œผ๋ฉฐ,
ํ˜„์žฌ๋Š” ์ฃผ๋กœ TLS๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

(SSL/TLS ํ”„๋กœํ† ์ฝœ:

  • ์•ˆ์ „ํ•œ ๋ณด์•ˆ ์ฑ„๋„์„ ํ˜•์„ฑํ•ด์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ณด์•ˆ์šฉ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
  • ์‘์šฉ๊ณ„์ธต(HTTP)๊ณผ ์ „์†ก๊ณ„์ธต(TCP) ์‚ฌ์ด์— ์œ„์น˜ํ•ด์žˆ๋‹ค.)

๐Ÿ“ 11. DI, IoC ์„ค๋ช…

๋‹ต๋ณ€

์˜์กด์„ฑ ์ฃผ์ž…(DI)์€ ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์™ธ๋ถ€์—์„œ ๋ฐ›์•„์˜ค๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

์ œ์–ด์˜ ์—ญ์ „(IoC)์€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ์ปจํ…Œ์ด๋„ˆ์— ์œ„์ž„ํ•˜์—ฌ ์œ ์—ฐํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

DI๋Š” IoC์˜ ๊ตฌํ˜„ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋กœ, ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›์•„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ 12. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋‹ต๋ณ€

์š”์•ฝ:
๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriented Programming, OOP)์€ ๊ฐ์ฒด๋“ค์˜ ํ˜‘๋ ฅ๊ณผ ๊ฒฐํ•ฉ์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค.

์ถ”์ƒํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ, ์บก์Šํ™” ๋“ฑ์˜ ํŠน์ง•์„ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋ฉฐ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ๊ณผ ํ’ˆ์งˆ ํ–ฅ์ƒ์— ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.


๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriented Programming, OOP):

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP):

  • ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ค‘ ํ•˜๋‚˜๋กœ,
    ๊ฐ์ฒด๋“ค์˜ ๋…๋ฆฝ์ ์ธ ๋ถ€ํ’ˆ์œผ๋กœ์„œ์˜ ํ˜‘๋ ฅ๊ณผ ๊ฒฐํ•ฉ์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก 

  • ์ฃผ์š” ํŠน์ง•์œผ๋กœ ์ถ”์ƒํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ, ์บก์Šํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฃผ๋กœ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ, ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    => ์ด๋กœ ์ธํ•ด ๊ฐ์ฒด๋“ค์˜ ๊ด€๊ณ„์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ์ •์˜ํ•˜๊ณ  ํด๋ž˜์Šค ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ณผ์ •์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ดˆ๊ธฐ์—๋Š” ์„ค๊ณ„์— ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ด๋Ÿฌํ•œ ์ผ๋ถ€ ๋‹จ์ ์„ ๊ฐ€์ง€์ง€๋งŒ,
์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์ฝ”๋“œ์˜ ๊ตฌ์กฐํ™”์™€ ์žฌ์‚ฌ์šฉ, ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ ๋“ฑ์„ ํ†ตํ•ด
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ๊ณผ ํ’ˆ์งˆ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

= ์ด๋กœ ์ธํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ๊ณผ ํ’ˆ์งˆ ํ–ฅ์ƒ์— ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.


ํŠน์ง• ์š”์•ฝ:

์ถ”์ƒํ™”:
๋ณต์žกํ•œ ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ํ•ต์‹ฌ๋งŒ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •, ์ƒ์œ„ ๊ฐœ๋…์„ ์ •์˜ํ•จ์œผ๋กœ์จ ๋ณต์žก์„ฑ์„ ๊ฐ์ถ”๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

์ƒ์†:
๊ธฐ์กด ํด๋ž˜์Šค์˜ ํŠน์ง•์„ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์žฌ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฐœ๋…, ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๊ตฌ์กฐ์˜ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‹คํ˜•์„ฑ:
๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ๋Šฅ, ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.

์บก์Šํ™”:
๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ๋ฌถ์–ด ์™ธ๋ถ€์—์„œ์˜ ์ง์ ‘ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๊ณ , ์ •๋ณด ์€๋‹‰์„ ์ง€์›ํ•˜๋Š” ๊ฐœ๋…, ์ฝ”๋“œ์˜ ๋ชจ๋“ˆ์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ 13. ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ ๋ฐœ์ƒ ์‹œ ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ•˜๋‚˜์š”?

: ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž๋ฅผ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค(CPU, RAM)๋ฅผ ๋Š˜๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ์ˆ˜์งํ™•์žฅ๊ณผ ๋™์ผํ•œ ๋ชฉ์ ์„ ๊ฐ–๋Š” ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๋Œ€ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆ˜ํ‰ํ™•์žฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜ํ‰ํ™•์žฅ์˜ ๊ฒฝ์šฐ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ์œ„ํ•ด ๊ฐ€์ƒ IP๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋„๋ก ๋ถ€ํ•˜๋ฅผ ๋ถ„๋ฐฐํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๐Ÿ“ 14. ORM์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ฟผ๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง€๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”?

:๋„ค์ดํ‹ฐ๋ธŒ SQL ์ฟผ๋ฆฌ๋‚˜ ORM์˜ Raw Query๋ฅผ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ €์žฅ ํ”„๋กœ์‹œ์ €๋‚˜ ๋ทฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ORM ํ™•์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ํ•„์š”ํ•˜๋‹ค๋ฉด ORM์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ 15. GET, POST์˜ ๊ฐœ๋…๊ณผ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์— ๋Œ€ํ•ด์„œ ์„ค๋ช…

GET ๋ฉ”์„œ๋“œ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ฃผ๋กœ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ๋งํฌ(URL)์„ ํ†ตํ•ด์„œ ์›น ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ URL์— ํฌํ•จ์‹œ์ผœ ์„œ๋ฒ„์— GET ์š”์ฒญ์„ ๋ณด๋‚ธ ๋’ค,
์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ๋ฐ›๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ๋˜๋Š” ์ฒ˜๋ฆฌํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‘๋‹ต์„ ํ•ด์„ํ•˜๊ณ  ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.


POST ๋ฉ”์„œ๋“œ๋Š” ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ถœ(์ „์†ก) ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” HTTP ์š”์ฒญ ๋ณธ๋ฌธ(body)์— ํฌํ•จ๋˜๋ฉฐ,
์ฃผ๋กœ HTML ํผ(form)์„ ํ†ตํ•ด ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์—์„œ ์ž…๋ ฅ ํผ์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•˜๋ ค๊ณ  POST ์š”์ฒญ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋Š” POST ์š”์ฒญ ๋ณธ๋ฌธ์— ํฌํ•จ๋˜์–ด ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์€ ๋’ค POST ๋ณธ๋ฌธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‘๋‹ต์„ ํ•ด์„ํ•˜๊ณ  ํ•„์š”ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€