LIKELION๐Ÿฆ TIL(2022-06-16)

Ryuยท2022๋…„ 6์›” 16์ผ
0

๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ

๋ชฉ๋ก ๋ณด๊ธฐ
2/12
post-thumbnail

์ฒ˜์Œ๋ถ€ํ„ฐ ์™„๋ฒฝํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์—†๋‹ค.

์ผ๋‹จ, ๋งŽ์ด ์‹คํŒจํ•ด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋งˆ์Œ ์†์— ๋ณธ์ธ๋งŒ์˜ ์„œ๋น„์Šค๋ฅผ ๊ทธ๋ฆฌ์ž.

๐Ÿ‘‰ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธฐ์ˆ ๋“ค์ด ํ•„์š”ํ•ด์ง„๋‹ค. GITHUB FLOW, MVC, DRY ์›์น™, SOLID ์›์น™, ...

์›น ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„, HTTP

๊ตฌ์กฐ

์›น ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ญ์ƒ '์š”์ฒญ'๋งŒ ํ•˜๊ณ , ์›น ์„œ๋ฒ„๋Š” ํ•ญ์ƒ '์‘๋‹ต'๋งŒ ํ•œ๋‹ค. ์ด ํ†ต์‹  ๊ณผ์ •์— ํ•„์š”ํ•œ ๊ทœ์•ฝ์ด ๋ฐ”๋กœ HTTP ์ด๋‹ค!!
** ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฌด์—‡์„ ๋ฐ›์•„์˜ค๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด, ์›น ์‚ฌ์ดํŠธ์—์„œ ctrl + u ๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด์ž.

  1. ์›น ํด๋ผ์ด์–ธํŠธ
    • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์ฃผ์†Œ(IP)์™€ ํฌํŠธ(Port)๋Š” ๋ฌด์กฐ๊ฑด ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  2. ์›น ์„œ๋ฒ„
    • ์„œ๋ฒ„๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งŒ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”๋‹ค.
      ์ „์›์ด ๊บผ์ง€๋ฉด, ์„œ๋ฒ„์— ์ €์žฅ๋œ ์ •๋ณด๋Š” ๋ชจ๋‘ ๋‚ ์•„๊ฐ„๋‹ค. ๐Ÿ‘‰ DB๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์œ„์น˜๋ฅผ ํ‰์†Œ์— ๋ชฐ๋ผ๋„ ๋œ๋‹ค. (ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ ์‹œ ๋งค๋ฒˆ ์•Œ๋ ค์คŒ.)
    • ์„œ๋ฒ„๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋“ค์— ๋Œ€ํ•ด ์ •ํ•ด์ง„ ๊ทœ์•ฝ์— ๋”ฐ๋ฅธ ์‘๋‹ต๋งŒ ํ•œ๋‹ค. (ํŠน๋ณ„ ๋Œ€์šฐ ์—†์Œ)
      ๐Ÿ‘‰ ์›น ์ดˆ์ฐฝ๊ธฐ์—๋Š”, '๋กœ๊ทธ์ธ'์„ ํ†ตํ•ด ์ถ”๊ฐ€์  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์—†์—ˆ๋‹ค. ํ˜„์žฌ๋Š” ์ฟ ํ‚ค, ์„ธ์…˜ ๋“ฑ ์ถ”๊ฐ€.
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•ด ํŒŒ์ƒ์ •๋ณด(์ถ”๊ฐ€์ •๋ณด)๋“ค๊นŒ์ง€ ๋ชจ๋‘ ๋ Œ๋”๋งํ•œ๋‹ค. (๊ด‘๊ณ ๊ฐ€ ๋ณด์ด๋Š” ์ด์œ )
  3. HTTP
    • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹  ๊ณผ์ •์— ๋Œ€ํ•œ ๊ทœ์น™์„ ๋‹ด์€ ๊ฒƒ์ด HTTP ์ด๋‹ค.
    • http ํ”„๋กœํ† ์ฝœ ํ˜•์‹๊ณผ ํฌํŠธ๋Š” ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค.
      ๐Ÿ‘‰ https://www.naver.com:443 ๊ณผ ๊ฐ™์ด https๋Š” 443 ํฌํŠธ๋งŒ ํ—ˆ์šฉํ•œ๋‹ค. (http ๋Š” 80 ํฌํŠธ)

์šด์˜์ฒด์ œ

  • ๋Œ€ํ‘œ์ ์œผ๋กœ macOS, Linux, Windows ๊ฐ€ ์žˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด์— ์†ํ•จ.
  • Hardward ( CPU, Memory, Disk ) ์ž˜ ์ˆ˜ํ–‰๋˜๊ฒŒ๋” ๊ฐ€์šด๋ฐ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.
    • Disk์— ํŒŒ์ผ(ํ”„๋กœ๊ทธ๋žจ)์ด ์˜ฌ๋ผ์˜ค๋ฉด, Memory์— ์˜ฌ๋ผ๊ฐ€๊ณ , CPU์— ์˜ํ•ด ๋ช…๋ น์–ด ์‹คํ–‰.
      ๐Ÿ‘‰ ์ˆ˜ ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค. ( ์‹œ๊ฐ„์„ ์ชผ๊ฐœ์„œ ์‹คํ–‰ )
    • CPU๋Š” ์ฒ˜๋ฆฌํ•  ์ผ๋“ค์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐ€์ ธ๋‹ค ์ฃผ๋Š” ๊ฒƒ.
      ์šด์˜์ฒด์ œ๊ฐ€ ์–ผ๋งŒํผ์˜ ์ผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ง€ CPUํ•œํ…Œ ์ „๋‹ฌ. -> ์šด์˜์ฒด์ œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๋ง์ด ์—ฌ๊ธฐ์„œ ๋‚˜์˜จ๋‹ค.

์šด์˜์ฒด์ œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋Šฅ.
    • ๊ณผ๊ฑฐ์—๋Š”(OS๊ฐ€ ์—†์„ ๋•Œ) ํŠน์ˆ˜ํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ด์„œ ๊ทธ ๋ชฉ์ ์— ๋งž๊ฒŒ ์šด์šฉํ•˜๊ณ ... ๋ฒˆ๊ฑฐ๋กœ์› ๋‹ค.
  2. ์ปดํ“จํ„ฐ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ.
    • ์ž๋™์ฐจ๋กœ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ž์›๋“ค(๋ฐ”ํ€ด, ์—์–ด์ปจ, ๋„ค๋น„๊ฒŒ์ด์…˜ ๋“ฑ)์„ ๋”ฐ๋กœ ๊ด€๋ฆฌ ๋ฐ ์กฐ์ž‘ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ๋งค์šฐ ๋ถˆํŽธํ•˜๋‹ค. ๐Ÿ‘‰ ๋ชจ๋‘ ์•„์šฐ๋ฅด๋Š” Operating System(์šด์˜์ฒด์ œ)๊ฐ€ ์žˆ์œผ๋ฉด ๊ต‰์žฅํžˆ ํŽธ๋ฆฌํ•ด์ง€๋Š” ๊ฐœ๋….
  3. ํ•˜๋“œ์›จ์–ด์— ์ ‘๊ทผํ•ด ์‚ฌ์šฉ์ž ๋ช…๋ น์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๋งค๊ฐœ์ฒด.
    • ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ํด๋” ์ƒ์„ฑ ์—ญ์‹œ ํ•˜๋“œ๋””์Šคํฌ ์•ˆ์— ๋‚ด์šฉ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    • ๋ฌผ๋ฆฌ์ ์ธ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒŒ ์‰ฌ์šด ์ผ์ด ์•„๋‹ˆ์—ˆ๋Š”๋ฐ, ์šด์˜ ์ฒด์ œ๊ฐ€ ๊ทธ๋Ÿฐ ๊ฒƒ๋“ค์„ ์‰ฝ๊ฒŒ ํ•ด์ค€๋‹ค.
      (์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋ชจ๋‹ˆํ„ฐ์˜ ์–ด๋–ค ๊ทธ๋ฆผ์„ ๋ณด์—ฌ์ค€๋‹ค๊ฑฐ๋‚˜, ๋งˆ์šฐ์Šค ํด๋ฆญ์— ๋ฐ˜์‘์„ ํ•œ๋‹ค๋˜๊ฐ€)

๋น„์œ ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž!

'ํ•˜๋“œ์›จ์–ด'๋ฅผ ๋‹ค๋ฃฐ๋ ค๋ฉด ๊ธฐ๊ณ„ ์–ธ์–ด๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ธด ๊ท€์ฐฎ๋‹ค. ๋งˆ์น˜ ์™ธ๊ตญ์— ๋†€๋Ÿฌ๊ฐ”์„ ๋•Œ, ๋ฒˆ์—ญ๊ธฐ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ์šฐ๋ฆฌ(์‚ฌ์šฉ์ž)๊ฐ€ ์ „๋‹ฌํ•  ๋ง(๋ช…๋ น์–ด)๋“ค์„ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ 'OS(์šด์˜์ฒด์ œ)'๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค!
์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰-> ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜ ์ฒด์ œํ•œํ…Œ ์š”์ฒญ -> ์šด์˜์ฒด์ œ๋Š” ํ•˜๋“œ์›จ์–ดํ•œํ…Œ ์š”์ฒญ.

ํŽŒ์›จ์–ด์™€ ROM

  1. ํŽŒ์›จ์–ด : ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ์ด ๋œจ๋Š”๋ฐ ๋„์›€์„ ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ. ๊ต‰์žฅํžˆ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ด๊ณ , ROM์— ์ƒ์ฃผํ•œ๋‹ค.
    • pc ๋ถ€ํŒ…์„ ์œ„ํ•ด์„œ ์šด์˜์ฒด์ œ ์ผ๋ถ€๋ถ„์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ปดํ“จํ„ฐ๋ฅผ ๋„๋ฉด RAM์ด ๋‚ ์•„๊ฐ€๋ฒ„๋ฆฐ๋‹ค.

์ปค๋„๊ณผ ์‰˜

  • ์ปค๋„๊ณผ ์‰˜ ๋ชจ๋‘ ์šด์˜์ฒด์ œ์— ์†ํ•œ๋‹ค๋Š” ์ !

์ปค๋„ (์ •๋ถ€)

  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค.
    ํ”„๋กœ์„ธ์Šค a : ํŒŒ์ผa.txt ์ƒ์„ฑ -> ์ปค๋„์— ์š”์ฒญ.
    ํ”„๋กœ์„ธ์Šค b : ํŒŒ์ผa.txt ์ƒ์„ฑ -> ์ปค๋„์— ์š”์ฒญ.
    ์ปค๋„์€ ์„œ๋กœ์˜ ์ž‘์—…์ด ์นจํ•ด๋˜์ง€ ์•Š๋„๋ก, ์Šค์ผ€์ค„๋งํ•ด์ค€๋‹ค. (์ค‘๊ฐ„๊ณผ์ •)
  • ๋งŒ์•ฝ, ๊ธฐ์•„ ์ž๋™์ฐจ์— ์ปค๋„์ด ์žˆ๋‹ค๋ฉด, ์—‘์…€์— ๋Œ€ํ•œ ์†๋„ ์ œํ•œ์ด ๋“ค์–ด๊ฐ„๋‹ค.
    ์ฆ‰, ์‹œ์Šคํ…œ์ด ์ง€์† ๊ฐ€๋Šฅํ•˜๋„๋ก '๋ณดํ˜ธ ์žฅ์น˜' ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ.
  • ๊ฒฐ๊ตญ, ๋‹จ์ˆœํ•œ ํด๋” ๋งŒ๋“ค๊ธฐ ์™€ ๊ฐ™์€ ์ž‘์—…๋„, ์ปค๋„ํ•œํ…Œ ์š”์ฒญ์„ ํ•œ ๊ฒƒ์ด๊ณ , ์ปค๋„์ด ๊ทธ๊ฑธ ๋Œ€์‹ ํ•ด์ค˜์„œ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ.
  1. ์šด์˜์ฒด์ œ์˜ ์‹ฌ์žฅ์ด์ž ์šด์˜์ฒด์ œ๋ฅผ ๊ทœ์ •์ง“๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„. ์šด์˜์ฒด์ œ ๋งจ ํ•˜๋‹จ์— ์œ„์น˜ํ•œ๋‹ค.
  2. ํ•˜๋“œ์›จ์–ด ์ž์›์„ ๊ทธ๊ฒƒ์„ ํ•„์š”๋กœํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์— ๋‚˜๋ˆ ์ค€๋‹ค. + ๋ฉ”๋ชจ๋ฆฌ ์ œ์–ด

์‰˜ (Shell)

  • ๋ณดํ†ต ์ปค๋„ํ•œํ…Œ ์ง์ ‘ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๋ฐฉ์‹์€ ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ์‰˜์„ ํ†ตํ•ด ์ปค๋„์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ.
    ์˜ˆ๋ฅผ ๋“ค์–ด, ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” dir ๋ช…๋ น์–ด๋„ ์‰˜์„ ๊ฑฐ์ณ์„œ ์ปค๋„์— ์ „๋‹ฌ๋˜๋Š”, ์ปค๋„์„ ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
  1. ์‚ฌ์šฉ์ž ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ  ์ด๋ฅผ ์ปค๋„์— ๋ฟŒ๋ ค์ฃผ๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.
  2. ์ปค๋„๊ณผ ์‰˜ ์š”์ฒญ ๊ณผ์ •
    • ์‚ฌ์šฉ์ž ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ -> ์šด์˜์ฒด์ œ๊ฐ€ ์ปค๋„์— ์ „๋‹ฌ -> ํ•˜๋“œ์›จ์–ด
    • ์‚ฌ์šฉ์ž ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ -> ์šด์˜์ฒด์ œ๊ฐ€ ์‰˜์— ์ „๋‹ฌ -> ์‰˜์ด ์ปค๋„์— ์ „๋‹ฌ -> ํ•˜๋“œ์›จ์–ด
    • ์‚ฌ์šฉ์ž ์›๊ฒฉ ํ„ฐ๋ฏธ๋„ ์‹คํ–‰ -> ์šด์˜์ฒด์ œ๊ฐ€ ์‰˜์— ์ „๋‹ฌ -> ์‰˜์ด ์ปค๋„์— ์ „๋‹ฌ -> ํ•˜๋“œ์›จ์–ด
  3. ์ข…๋ฅ˜
    • CLI (๋˜๋Š” CUI ๋ผ๊ณ ๋„ ํ•จ. Character(Console) User Interface)
    • GUI (Graphic User Interface)
    • ๊ทธ ์™ธ์—๋„ ๋ณด์•ˆ์ ‘์† ํ”„๋กœ๊ทธ๋žจ(SSH; Secure SHell)์„ ์ผ์ปซ๋Š” ๋ง์ด๊ธฐ๋„ ํ•˜๋‹ค.

C ์–ธ์–ด

C ์–ธ์–ด์˜ ํŠน์ง•

  1. C์–ธ์–ด๋Š” ์ปดํŒŒ์ผ ์ œํ•œ์ด ์—„๊ฒฉํ•˜์ง€ ์•Š๋‹ค. (์ œํ•œ์ด ์—†์–ด์„œ ์ž์œ ๋กœ์›€)
  2. C์–ธ์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. (unmanaged)
    • ์ข€ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก, deatil ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฐœ๋….
  3. C์–ธ์–ด์—๋Š” boolean ์ž๋ฃŒํ˜•์ด ์—†๋‹ค!
    • true ๋Š” 1 , false ๋Š” 0 ์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค!
  4. ์ž๋ฃŒ์ž…์ถœ๋ ฅ
    #include <stdio.h>   // stdio : standard , input & output
    int main() {
      int age;
      scanf("%d", &age);   // 10 ์ง„์ˆ˜ format์œผ๋กœ ๋ฐ›๊ฒ ๋‹ค, age๋ผ๋Š” ๋ณ€์ˆ˜์— ๋„ฃ๊ฒ ๋‹ค.
profile
Strengthen the core.

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