Post

๐ŸŒฐ [Tech] ๊ธฐ์ˆ ๋ฉด์ ‘ ์ •๋ฆฌ

ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” ๊ธฐ์ˆ ๋ฉด์ ‘์— ๋Œ€ํ•ด ์ •๋ฆฌ ํ•ด๋†“์€ ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค.

2024-01-22

ํŠธ๋žœ์žญ์…˜์˜ ACID ์— ๋Œ€ํ•ดโ€ฆ

Transaction ์ด๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS)์—์„œ์˜ โ€œํŠธ๋žœ์žญ์…˜โ€์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ๋‹จ์œ„

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด DBMS ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ํŠธ๋žœ์žญ์…˜์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ!

Atomicity (์›์ž์„ฑ)

ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ์—ฐ์‚ฐ์€ ์ „๋ถ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

ํ•˜๋‚˜์˜ ์›์ž์ฒ˜๋Ÿผ ๋” ์ด์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ

Consistency (์ผ๊ด€์„ฑ)

ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ ๋˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•˜๋‚˜์˜ ์ผ๊ด€๋œ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ผ๊ด€๋œ ์ƒํƒœ๋กœ ๋ณ€ํ™”ํ•ด์•ผํ•จ

๋”ฐ๋ผ์„œ ํŠธ๋žœ์žญ์…˜ ์ „ ํ›„๋กœ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ œ์•ฝ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผํ•จ

Isolation (๋…๋ฆฝ์„ฑ)

๋™์‹œ์— ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์—์„œ, ๊ฐ ํŠธ๋žœ์žญ์…˜์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์ด ์ค‘๊ฐ„์— ๋ผ์–ด๋“ค์–ด ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ์•ผ ํ•จ

Durability (์˜์†์„ฑ)

ํŠธ๋žœ์žญ์…˜์ด ํ•œ ๋ฒˆ ์ปค๋ฐ‹๋˜๋ฉด, ๊ทธ ๊ฒฐ๊ณผ๋Š” ์‹œ์Šคํ…œ์˜ ์–ด๋–ค ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ณด์กด๋˜์–ด์•ผ ํ•ฉ



HTTP ์™€ HTTPS ์˜ ์ฐจ์ด

HTTP์™€ HTTPS๋Š” ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ

HTTP (HyperText Transfer Protocol)

  • ์›น์—์„œ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ
  • ๋ณด์•ˆ์ˆ˜์ค€์€ ๋‚ฎ์œผ๋ฉฐ HTTP ๋Š” ์•”ํ˜ธํ™” ๋˜์ง€ ์•Š์€ ํ…์ŠคํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋–„๋ฌธ์— ํ†ต์‹  ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚˜๋Š” ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•จ
  • ํฌํŠธ๋ฒˆํ˜ธ๋Š” ๊ธฐ๋ณธ์œผ๋กœ 80 ๋ฒˆ๋Œ€๋ฅผ ์‚ฌ์šฉํ•จ
  • ์•”ํ˜ธํ™”๊ฐ€ ํ•„์ˆ˜์ ์ด์ง€ ์•Š์€ ์ผ๋ฐ˜ ์›น์‚ฌ์ดํŠธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ

HTTPS (HyperText Transfer Protocol Secure)

  • HTTP ์˜ ๋ณด์•ˆ ๋ฒ„์ „์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์‹œ SSL (Secure Socket Layer) ๋˜๋Š” TLS (Transport Layer Security) ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”
  • ๋ณด์•ˆ์ˆ˜์ค€์€ HTTP ์— ๋น„ํ•ด ๋†’์€ ํŽธ์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™” ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ฐ€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•จ
  • ํฌํŠธ๋ฒˆํ˜ธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 443 ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•จ
  • ์˜จ๋ผ์ธ ๋ฑ…ํ‚น, ์ „์ž๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ, ๊ฐœ์ธ์ •๋ณด ์—์„œ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉ



Cookie ์™€ Session ์€ ์›น์‚ฌ์ดํŠธ์™€ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์ƒํƒœ ์ •๋ณด(์ƒํƒœ ๊ด€๋ฆฌ)๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ 

  • ์‚ฌ์šฉ์ž์˜ ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ์ €์žฅ๋˜๋Š” ์ž‘์€ ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ
  • ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ (ํด๋ผ์ด์–ธํŠธ) ์—์„œ ์ €์žฅ์ด ๋จ
  • Cookie ๋Š” ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์ €์žฅ์ด ๋˜๋ฏ€๋กœ ๋ณด์•ˆ์— ๋งค์šฐ ์ทจ์•ฝํ•˜๋ฉฐ ์ˆ˜์ •๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ
  • ์ฃผ๋กœ ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€, ์‚ฌ์ดํŠธ ์„ ํ˜ธ ์„ค์ •๊ธฐ์–ต, ์‡ผํ•‘ ์นดํŠธ ์ •๋ณด ์ €์žฅ ๋“ฑ์— ์‚ฌ์šฉ ํ•จ

Session

  • Session ์€ Cookie ์™€ ๋‹ฌ๋ฆฌ ์„œ๋ฒ„ ์ธก์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•จ
  • ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธ ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ ์œ ํ•œ Session ID ๋ฅผ ๋ถ€์—ฌ ํ•ด ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•จ
  • ์„œ๋ฒ„ ์ธก์— ์ €์žฅ์ด ๋จ
  • Session ์˜ ID ๋งŒ์ด ํด๋ผ์ด์–ธํŠธ์™€ ๊ตํ™˜ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ๋…ธ์ถœ๋˜์ง€ ์•Š์Œ
  • ๋Œ€์‹  ์„œ๋ฒ„์˜ ๋ชจ๋“  ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค์— ๋ถ€๋‹ด์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ



์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฐจ์ด

โ€˜์ •ํ˜•โ€™๊ณผ โ€˜๋น„์ •ํ˜•โ€™์€ ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ, ์ €์žฅ ๋ฐฉ์‹, ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์—์„œ์˜ ์ฐจ์ด๋ฅผ ์˜๋ฏธ

์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ตฌ์กฐํ™” ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  • ์ฃผ๋กœ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋ฉฐ ๊ฐ ์—ด์€ ๊ณ ์ •๋œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ ์žˆ์Œ
  • SQL ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๊ณ  ๊ด€๋ฆฌ
  • ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๋ณด์•ˆ์„ฑ์ด ๋†’์Œ
  • MySQL, PostgreSQL, Oracle Database

๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์ •ํ˜•ํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ
  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์•„ ์ด๋ฏธ์ง€, ์˜์ƒ, ํ…์ŠคํŠธ ๋“ฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ฐ์ดํ„ฐ์— ๊ณ ์ •๋œ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†์Œ
  • NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ฒ€์ƒ‰์—”์ง„, ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋“ฑ์— ์‚ฌ์šฉ
  • ์†Œ์…œ ๋ฏธ๋””์–ด, IoT, ๋กœ๊ทธ๋ฐ์ดํ„ฐ ๋“ฑ์— ์‚ฌ์šฉ
  • MongoDB, Elasticsearch, Hadoop

์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ •ํ™•ํ•˜๊ณ  ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉ

๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณ€ํ™”ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹๊ณผ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์œ ์šฉ



์•”ํ˜ธํ™” ๋ฐฉ์‹ ์ค‘ ๋Œ€์นญ ํ‚ค์™€ ๋น„๋Œ€์นญ ํ‚ค ์˜ ์ฐจ์ด

์•”ํ˜ธํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”๋œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ 

๋Œ€์นญ ํ‚ค

  • ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์—์„œ๋Š” ์•”ํ˜ธํ™”(Encryption)์™€ ๋ณตํ˜ธํ™”(Decryption) ๊ณผ์ •์—์„œ ๊ฐ™์€ ํ‚ค๋ฅผ ์‚ฌ์šฉ
  • ๊ณ„์‚ฐ์ด ๋œ ๋ณต์žกํ•˜๋ฏ€๋กœ, ๋” ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์ œ๊ณต
  • ๋™์ผํ•œ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ‚ค์˜ ์•ˆ์ „ํ•œ ์ „๋‹ฌ๊ณผ ๋ณด๊ด€์ด ์ค‘์š”
  • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์— ์ ํ•ฉ

๋น„๋Œ€์นญ ํ‚ค

  • ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์—์„œ๋Š” ๋‘ ๊ฐœ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉ
  • ํ•˜๋‚˜๋Š” ๊ณต๊ฐœํ‚ค(Public Key)๋กœ, ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๊ณต๊ฐœ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋น„๋ฐ€ํ‚ค(Private Key)
  • ๋ฐ์ดํ„ฐ๋Š” ํ•ด๋‹น ๊ณต๊ฐœํ‚ค์™€ ์ง์„ ์ด๋ฃจ๋Š” ๋น„๋ฐ€ํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์–ด, ๋Œ€์นญํ‚ค๋ณด๋‹ค ๋†’์€ ๋ณด์•ˆ์„ฑ์„ ์ œ๊ณต
  • ์‚ฌ์šฉ์ž๋Š” ๋น„๋ฐ€ํ‚ค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋ฉฐ, ๊ณต๊ฐœํ‚ค๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๊ณต์œ 
  • ์•ˆ์ „ํ•œ ํ†ต์‹  ์ฑ„๋„์˜ ์„ค์ •, ๋””์ง€ํ„ธ ์„œ๋ช…, SSL/TLS ๊ฐ™์€ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์— ํ™œ์šฉ



๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๋”ฅ๋Ÿฌ๋‹์˜ ์ฐจ์ด

๋จธ์‹  ๋Ÿฌ๋‹

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

๋”ฅ ๋Ÿฌ๋‹

  • ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์ธต์ ์œผ๋กœ ํ•™์Šต
  • ์ฃผ๋กœ ์ปจ๋ณผ๋ฃจ์…˜ ์‹ ๊ฒฝ๋ง(CNN), ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง(RNN), ๋ณ€ํ™˜์ž(Transformer) ๋“ฑ์„ ์‚ฌ์šฉ
  • ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„์š”
  • ๋Œ€๊ทœ๋ชจ์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋ฉฐ, ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง์€ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณต์žกํ•œ ํŒจํ„ด์„ ํ•™์Šตํ•˜๋Š” ๋ฐ ํšจ๊ณผ์ 
  • ๋ชจ๋ธ์€ ๋ณต์žกํ•˜๊ณ  ๋งŽ์€ ์ˆ˜์˜ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋จ
  • ์ฃผ๋กœ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜, ์Œ์„ฑ ์ธ์‹, ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋“ฑ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ์‚ฌ์šฉ



์ž๋ฐ”์˜ ์ƒ์†์„ฑ์— ๋Œ€ํ•ด

ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜

์ƒ์†์€ ๊ธฐ์กด ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ํ™•์žฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

๊ณตํ†ต์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ์†์„ฑ๊ณผ ๋™์ž‘์„ ์ •์˜ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž„



์ž๋ฐ”์˜ ๋…๋ฆฝ์„ฑ์— ๋Œ€ํ•ด

์ž๋ฐ”์˜ ๋…๋ฆฝ์„ฑ์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ํ”Œ๋žซํผ์— ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ

์ž๋ฐ”์˜ ํ•ต์‹ฌ ์ฒ ํ•™ ์ค‘ ํ•˜๋‚˜

์ž๋ฐ”์˜ ๋…๋ฆฝ์„ฑ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ”Œ๋žซํผ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์œ ์—ฐํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณต

์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹  (JVM)

  1. ์ž๋ฐ”๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ผ๋Š” ์ค‘๊ฐ„ ์–ธ์–ด๋กœ ์ปดํŒŒ์ผ๋˜๋ฉฐ ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” ํ”Œ๋žซํผ์— ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.
  2. ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” ๊ฐ ํ”Œ๋žซํผ์— ํŠน์ •ํ•œ JVM์—์„œ ์‹คํ–‰
  3. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•œ ํ›„์—๋„ ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ๋‚˜ ํ•˜๋“œ์›จ์–ด์—์„œ ๋™์ผํ•œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ



์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ์— ๋Œ€ํ•ด

์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ(Polymorphism)์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜

๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

์ด๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ด

๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ(Method Overloading)

  • ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…, ๊ฐœ์ˆ˜, ์ˆœ์„œ ๋“ฑ์„ ๋‹ค๋ฅด๊ฒŒํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ํ˜ธ์ถœ
  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋œ ์ธ์ˆ˜์˜ ํƒ€์ž…๊ณผ ๊ฐœ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์ ˆํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ํƒ

๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Method Overriding)

  • ์ƒ์œ„ ํด๋ž˜์Šค์—์„œ ์ด๋ฏธ ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ
  • ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์€ ์‹œ๊ทธ๋‹ˆ์ฒ˜(๋ฉ”์„œ๋“œ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž… ๋ฐ ๊ฐœ์ˆ˜, ๋ฐ˜ํ™˜ ํƒ€์ž…)๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ
  • ๋Ÿฐํƒ€์ž„ ์‹œ์—๋Š” ๊ฐ์ฒด์˜ ์‹ค์ œ ํƒ€์ž…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋จ
1
2
3
4
5
6
7
8
9
10
11
12
13
// ํ•˜์œ„ ํด๋ž˜์Šค: ๊ฐ•์•„์ง€
class Dog extends Animal {
    // ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ makeSound ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ์žฌ์ •์˜
    @Override
    void makeSound() {
        System.out.println("๊ฐ•์•„์ง€๊ฐ€ ๋ฉ๋ฉ ์ง–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.");
    }

    // ์˜ค๋ฒ„๋กœ๋”ฉ๋œ makeSound ๋ฉ”์„œ๋“œ
    void makeSound(String action) {
        System.out.println("๊ฐ•์•„์ง€๊ฐ€ " + action + " ์†Œ๋ฆฌ๋ฅผ ๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.");
    }
}



๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€

ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํšŒ์ˆ˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธ

์ž๋ฐ”์™€ ๊ฐ™์€ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(memory leak)๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๋„๋ก ํ•จ

  1. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑ
  2. ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋™์ ์œผ๋กœ ํ• ๋‹น
  3. ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์–ด์•ผ ํ•จ
  4. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ
  5. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ณ„์† ์Œ“์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Œ



์Šคํƒ๊ณผ ํ์— ๋Œ€ํ•˜์—ฌ

์Šคํƒ(Stack)

  • ํ›„์ž…์„ ์ถœ(LIFO, Last-In-First-Out)์˜ ์ž๋ฃŒ ๊ตฌ์กฐ
  • ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ ํ•ญ๋ชฉ์ด ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋˜๋Š” ๊ตฌ์กฐ
  • ์ฃผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด๋‚˜ ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋“ฑ์— ์‚ฌ์šฉ

ํ(Queue)

  • ์„ ์ž…์„ ์ถœ(FIFO, First-In-First-Out)์˜ ์ž๋ฃŒ ๊ตฌ์กฐ
  • ๊ฐ€์žฅ ๋จผ์ € ์ถ”๊ฐ€๋œ ํ•ญ๋ชฉ์ด ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋˜๋Š” ๊ตฌ์กฐ
  • ํ๋Š” ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ, ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ๋“ฑ์— ์‚ฌ์šฉ



MVC ํŒจํ„ด์— ๋Œ€ํ•ด

MVC(Mode-View-Controller) ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก 

MVC ํŒจํ„ด์€ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด ์œ ์ง€ ๋ณด์ˆ˜์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž„

๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์—ญํ• ์„ ๋ถ„๋‹ดํ•˜์—ฌ ํšจ์œจ์ ์ธ ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•จ

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ MVC ํŒจํ„ด์€ ๋Œ€๋ถ€๋ถ„์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ GUI ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ

๋ชจ๋ธ(Model)

  • ๋ชจ๋ธ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹น
  • ๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ทฐ์™€ ์ปจํŠธ๋กค๋Ÿฌ์— ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์˜์†์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ์ ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ

๋ทฐ(View)

  • ๋ทฐ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋ธ์— ์ „๋‹ฌ
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋“ค์„ ํฌํ•จ

์ปจํŠธ๋กค๋Ÿฌ(Controller)

  • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ๊ณผ ๋ทฐ ์‚ฌ์ด์˜ ์ค‘๊ฐœ์ž ์—ญํ• 
  • ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๊ณ , ๋ชจ๋ธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•˜์—ฌ ๋ทฐ์— ์ „๋‹ฌ
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋ทฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ํ‘œ์‹œ



DDL, DML, DCL ์— ๋Œ€ํ•ด

๋ฐ์ดํ„ฐ ์ •์˜์–ด (DDL - Data Definition Language)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š” ๋‹จ๊ณ„
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด(ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ๋ทฐ ๋“ฑ)๋ฅผ ์ƒ์„ฑ, ๋ณ€๊ฒฝ ๋˜๋Š” ์‚ญ์ œ
  • ์˜ˆ๋ฅผ ๋“ค์–ด, CREATE TABLE ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ALTER TABLE ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์ˆ˜์ •

๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML - Data Manipulation Language)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘(๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ)ํ•˜๋Š” ๋‹จ๊ณ„์ž„
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ
  • ์ฃผ๋กœ SELECT, INSERT, UPDATE, DELETE ๋“ฑ์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃธ

๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (DCL - Data Control Language)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณด์•ˆ๊ณผ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„
  • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜
  • ์ฃผ๋กœ GRANT ์™€ REVOKE ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜



V ๋ชจ๋ธ, ๋‚˜์„  ๋ชจ๋ธ, ํญํฌ์ˆ˜๋ชจ๋ธ์— ๋Œ€ํ•ด

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 

ํญํฌ์ˆ˜ ๋ชจ๋ธ(Waterfall Model)

  • ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก 
  • ๊ฐœ๋ฐœ ๋‹จ๊ณ„๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์ง„ํ–‰๋˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋Š” ์ด์ „ ๋‹จ๊ณ„์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰
  • ์ฃผ์š” ๋‹จ๊ณ„๋กœ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„, ์„ค๊ณ„, ๊ตฌํ˜„, ํ…Œ์ŠคํŠธ, ์œ ์ง€๋ณด์ˆ˜
  • ๊ฐ ๋‹จ๊ณ„๊ฐ€ ์—„๊ฒฉํ•˜๊ฒŒ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋ฏ€๋กœ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋น„์šฉ๊ณผ ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ์ฆ๊ฐ€

V ๋ชจ๋ธ(V-Model)

  • V ๋ชจ๋ธ์€ ํญํฌ์ˆ˜ ๋ชจ๋ธ์˜ ํ™•์žฅ๋œ ํ˜•ํƒœ
  • ๊ฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์— ๋Œ€์‘ํ•˜๋Š” ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ฅผ ํฌํ•จ
  • ๊ฐœ๋ฐœ ๋‹จ๊ณ„์™€ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๊ฐ€ ๋Œ€์‘ํ•˜์—ฌ ์ง„ํ–‰
  • ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„๊ณผ ๊ด€๋ จ๋œ ํ…Œ์ŠคํŠธ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€์ฆ์— ํ•ด๋‹นํ•˜๊ณ , ์„ค๊ณ„์™€ ๊ด€๋ จ๋œ ํ…Œ์ŠคํŠธ๋Š” ์„ค๊ณ„ ๊ฒ€์ฆ์— ํ•ด๋‹น
  • ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ๊ฐ€ ์ƒํ˜ธ ๋ณด์™„์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ์˜ค๋ฅ˜๋ฅผ ์ดˆ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜์žˆ์Œ
  • ์ „์ฒด์ ์ธ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ

๋‚˜์„  ๋ชจ๋ธ(Spiral Model)

  • ๋‚˜์„  ๋ชจ๋ธ์€ ํญํฌ์ˆ˜ ๋ชจ๋ธ์˜ ํ™•์žฅ๋œ ํ˜•ํƒœ
  • ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ ์ง„์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก 
  • ๊ฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋งˆ๋‹ค ์œ„ํ—˜์„ ์‹๋ณ„ํ•˜๊ณ  ๊ด€๋ฆฌ
  • ํ”„๋กœ์ ํŠธ์˜ ๋ณต์žก์„ฑ๊ณผ ์œ„ํ—˜์— ๋”ฐ๋ผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ํ‰๊ฐ€
  • ๋‹จ๊ณ„๋ณ„๋กœ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ์ž‘ํ•˜์—ฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ์ดํ•ด
  • ๊ณ ๊ฐ์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ˆ˜๋ ดํ•จ์œผ๋กœ์จ ์ „์ฒด ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ณต ํ™•๋ฅ ์„ ๋†’์ž„
This post is licensed under CC BY 4.0 by the author.