๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Book TIL

๋…ธ๋งˆ๋“œ์ฝ”๋” ๋ถํด๋Ÿฝ ์žกํ•™์‚ฌ์ „ Day10 - ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์˜ ๊ตํ›ˆ | ๋ฒ„์ „ ํ‘œ๊ธฐ ๋ฐฉ๋ฒ•

by vividmin 2023. 1. 23.
320x100

 

 

๐Ÿ“š ๋ฒ”์œ„ : Ep30. ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์˜ ๊ตํ›ˆ - Ep34. ๋ฒ„์ „ ํ‘œ๊ธฐ ๋ฐฉ๋ฒ•

 

 

 

๐Ÿ““ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์จ๋ณด์„ธ์š”.


  • ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ
    • ์ฝ”๋ณผ(COBOL)์ด๋ผ๋Š” ์˜›๋‚  ์–ธ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ ๋งˆ์น˜ ์ง€๊ธˆ์˜ ํŒŒ์ด์ฌ ๊ฐ™์€ ์กด์žฌ์˜€๋‹ค.
    • ์–ธ์–ด์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ž‘์œผ๋ฉด ์ง€์†์„ฑ์ด ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.
    • ์ง€๊ธˆ ๋Œ์•„๊ฐ€๋ฉด ์žฅ๋•ก์ด๋ผ๋Š” ๋งˆ์ธ๋“œ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ๋ง๊ณ , ์ฑ…์ž„๊ฐ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Š์ž„์—†๋Š” ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • SQL (Structured query Language)
    • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์–ด๋–ค ์งˆ๋ฌธ or ๋ฌธ์˜๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์–ธ์–ด, ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ์–ธ์–ด
    • ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ์ž์‹ ์—๊ฒŒ ํ•„์š”ํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์šฉ๋„์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜์ž.
  •  DBMS (Database Management System)
    • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
    • DB๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๊ธฐ๋งŒ ํ•˜๊ณ  ์ง์ ‘ ๊ด€๋ฆฌ/์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ DBMS๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
    • MySQL, PostSQL, SQLite, Oracle, MariaDB ๋“ฑ์ด ์žˆ์Œ
  • DB์™€ SQL์˜ ์ƒํ˜ธ์ž‘์šฉ
    • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค = ์—‘์…€์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค.
    • DB์˜ ํ•œ ๋ฌด๋ฆฌ์˜ ๋ฐ์ดํ„ฐ = ํ…Œ์ด๋ธ” ์ด๋ผ๊ณ  ํ‘œํ˜„

@IT 5๋ถ„ ์žกํ•™์‚ฌ์ „ SQL ์˜ˆ์‹œ

 

  • ORM (Object Relational Mapping)
    • ์ผ์ข…์˜ SQL ๋ฒˆ์—ญ๊ธฐ, SQL ๋ฌธ๋ฒ•์„ ๋ชฐ๋ผ๋„ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์ต์ˆ™ํ•œ ์–ธ์–ด๋กœ SQL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.
    • ํŽธ์˜์„ฑ์„ ๋†’์—ฌ์ฃผ๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์–ด๋ ค์šด ์ƒํ™ฉ์— ๋ถ€๋”ชํžˆ๋ฉด ๊ฒฐ๊ตญ SQL์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.
    • SQL์€ ๊ฐœ๋ฐœ์— ๊ผญ ํ•„์š”ํ•œ data์™€ DB๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ์ด๋ฏ€๋กœ ๊ผญ ๊ณต๋ถ€ํ•˜์ž.
  • NoSQL
    • SQL์€ ์‚ฌํˆฌ๋ฆฌ์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค. NoSQL์€ ์–ธ์–ด์˜ ํŠน์ง• + ์‚ฌ์šฉํ•˜๋Š” DB ์„ฑ์งˆ๋„ ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค.
    • NoSQL์˜ ๋Œ€ํ‘œ์  DB
      • ๋„ํ๋จผํŠธ DB (Document DB) : ๋Œ€ํ‘œ์ ์œผ๋กœ MongoDB๊ฐ€ ์žˆ์Œ, ๋ฐ์ดํ„ฐ๋ฅผ JSONํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค.
      • ํ‚ค๊ฐ’ DB (key-value DB) : ์นด์‚ฐ๋“œ๋ผ DB, ๋‹ค์ด๋‚˜๋ชจ๋”” DB๊ฐ€ ๋Œ€ํ‘œ์ , ์ฝ๊ณ  ์“ฐ๋Š” ์†๋„๊ฐ€ ์—„์ฒญ ๋น ๋ฅด๋‹ค. 
      • ๊ทธ๋ž˜ํ”„ DB (Graph DB) : ๋…ธ๋“œ๋กœ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•ด ์คŒ, ํŽ˜์ด์Šค๋ถ์ด ๊ฐœ๋ฐœ
  • Git & GitHub
    • Git
      • ํŒŒ์ผ ์ด๋ ฅ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ, ํŒŒ์ผ์„ ํ•ญ์ƒ ์ง€์ผœ๋ณด๋ฉด์„œ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐํ•œ๋‹ค.
      • ๊ฐ™์€ ํŒŒ์ผ์ด๋ผ๋„ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ฐ™์€ ์‹œ๊ฐ„์— ์—ฌ๋Ÿฌ ๋ฒ„์ „์œผ๋กœ ์กด์žฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐ)
        • ์ด ์žฅ์ ์œผ๋กœ ๋™๋ฃŒ์™€ ๊ฐ™์€ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ์ž‘์—…ํ•œ ํ›„ ์ฐจ์ด์ ์„ ๋น„๊ตํ•˜๋ฉด์„œ ๋‹ค์‹œ ํŒŒ์ผ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    • GitHub
      • ์ผ์ข…์˜ ํด๋ผ์šฐ๋“œ. ํŒŒ์ผ, git์œผ๋กœ ๊ด€๋ฆฌํ•œ ์ด๋ ฅ์„ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค.
        • ํด๋ผ์šฐ๋“œ์™€์˜ ์ฐจ์ด์ ์€ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•œ ์ด๋ ฅ ๋˜ํ•œ ๊ณต์œ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ด๋‹ค.
  • ๋ฒ„์ „ ํ‘œ๊ธฐ๋ฐฉ๋ฒ•
    • SemVer : ์ˆซ์ž 3๊ฐœ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹ (ex. 4.0.5)

 

 

 

โœ๐Ÿป ์˜ค๋Š˜ ์ฝ์€ ์†Œ๊ฐ์€? ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ์„ ๊ฐ€๋ณ๊ฒŒ ์ ์–ด๋ณด์„ธ์š”.


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

๊ทธ๋ฆฌ๊ณ  ์ „์— MySQL์„ ๋ฐฐ์› ๋Š”๋ฐ, ํ”„๋ก ํŠธ ์œ„์ฃผ๋กœ ๊ณต๋ถ€๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์ด์ œ๋Š” ์“ธ๋ชจ๊ฐ€ ์—†์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.  ๊ทธ๋Ÿฐ๋ฐ ์•Œ์•„๋‘๋ฉด ์•„์ฃผ ๋„์›€์ด ๋œ๋‹ค๊ณ  ํ•˜์—ฌ ๋ฐฐ์šฐ๊ธธ ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ง€๋‚œ ์‹œ๊ฐ„์—๋„ ๋ฐฐ์› ๋“ฏ์ด ๊ฒฐ๊ตญ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์ฝ”๋“œ๊ฐ€ ์ „๋ฐ˜์ ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ์ „์ฒด ์ƒํ™ฉ์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ญ๋“  ์•Œ์•„์„œ ๋‚˜์  ๊ฒƒ์€ ์—†๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๋„ˆ๋ฌด ์–‘์ด ๋ฐฉ๋Œ€ํ•ด์„œ ๋ฌธ์ œ์ด์ง€๋งŒ...๐Ÿ˜ข

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฒ„์ „ ํ‘œ๊ธฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๊ฐ ์ˆซ์ž์— ๊ทธ๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์žˆ์—ˆ๋‹ค๋‹ˆ ๋ฐฐ์›Œ์„œ ๋‹คํ–‰์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ์ „์— github์— ๋นŒ๋“œํŒŒ์ผ์„ version์„ ๋ถ™์—ฌ์„œ ๊ด€๋ฆฌํ•œ ์ ์ด ์žˆ๋Š”๋ฐ, semVer ํ‘œ๊ธฐ๋ฒ•์„ ๋ฏธ๋ฆฌ ์•Œ์•˜๋”๋ผ๋ฉด ์ข€ ๋” ์ฒด๊ณ„์ ์ธ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค์Œ ๋ฐฐํฌ ์‹œ์—๋Š” ๊ผญ ์ ์šฉํ•ด ๋ด์•ผ๊ฒ ๋‹ค.

 

 

 

๐Ÿ‘€ ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์ ์–ด๋ณด์„ธ์š”.


ORM์ด ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค. ์กฐ๊ธˆ ๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€