[U1-S7]Linux/Git ๊ธฐ์ดˆ

Yeongยท2022๋…„ 12์›” 28์ผ

Git

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

๐Ÿ“–Command-Line Interface

  • ์ปดํ“จํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ I/O(Input/Output)๋ผ๊ณ  ํ‘œ๊ธฐํ•˜๋ฉฐ, "์•„์ด์˜ค"๋ผ๊ณ  ์ฝ๋Š”๋‹ค.
  • ์ž…๋ ฅ ์†Œ์Šค(Input source): ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค ๋“ฑ
  • ์ถœ๋ ฅ ์†Œ์Šค(Output source): ๋ชจ๋‹ˆํ„ฐ, ์Šคํ”ผ์ปค ๋“ฑ
  • ๋ฆฌ๋ˆ…์Šค์˜ ํ„ฐ๋ฏธ๋„์€ ํ‚ค๋ณด๋“œ์˜ ์ž…๋ ฅ๊ณผ ๋ชจ๋‹ˆํ„ฐ์˜ ์ถœ๋ ฅ์œผ๋กœ ๋ชจ๋“  ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CLI๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋กœ ์ ‘์†์„ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋Š” ์š”์ฒญํ•œ ์ปดํ“จํ„ฐ์˜ ์ถœ๋ ฅ ์†Œ์Šค(๋ชจ๋‹ˆํ„ฐ)๋ฅผ ์ด์šฉํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์— ์ง์ ‘ ์ฐพ์•„๊ฐˆ ํ•„์š” ์—†์ด, ์ž์‹ ์˜ ๋ชจ๋‹ˆํ„ฐ๋กœ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ŽGUI

  • ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(graphical user interface)
  • ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž…์ถœ๋ ฅ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์•Œ๊ธฐ ์‰ฌ์šด ์•„์ด์ฝ˜ ๋”ฐ์œ„์˜ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ

๐Ÿ“–ํ„ฐ๋ฏธ๋„

  • ํ„ฐ๋ฏธ๋„์€ CLI(Command-Line Interface)์ด๋‹ค. ์ž…๋ ฅํ•˜๋Š” ๊ธ€์ž์™€ ์ถœ๋ ฅ๋˜๋Š” ๊ธ€์ž๋กœ ์ปดํ“จํ„ฐ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ์ถœ๋ ฅํ•˜๋Š” ๊ธ€์ž๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ํ„ฐ๋ฏธ๋„ ์‹คํ–‰: ๋‹จ์ถ•ํ‚ค: Ctrl(์ปจํŠธ๋กค ํ‚ค) + Alt(์•ŒํŠธ ํ‚ค) + t(์˜๋ฌธ t)
  • ํ”„๋กฌํ”„ํŠธ(Prompt): ํ‚ค๋ณด๋“œ์˜ ์ž…๋ ฅ์„ ํ™•์ธํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ์ค„์˜ ๊ณต๊ฐ„์„ ํ”„๋กฌํ”„ํŠธ(Prompt)๋ผ๊ณ  ํ•œ๋‹ค. ์ž…๋ ฅํ•œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด, Enter(์—”ํ„ฐ ํ‚ค)

๐Ÿท๏ธ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด

  • pwd: ํ˜„์žฌ ์œ„์น˜ ํ™•์ธํ•˜๊ธฐ
    pwd๋Š” print working directory์˜ ์•ฝ์ž๋กœ ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” directory๋Š” ํด๋”๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์ปดํ“จํ„ฐ๋Š” ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ํด๋”์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • mkdir: ์ƒˆ๋กœ์šด ํด๋” ์ƒ์„ฑํ•˜๊ธฐ
    mkdir์€ make directories์˜ ์•ฝ์ž๋กœ, ํด๋”๋ฅผ ๋งŒ๋“ค๋ผ๋Š” ๋ช…๋ น์„ ์ปดํ“จํ„ฐ์— ์ „๋‹ฌํ•œ๋‹ค. ๋ช…๋ น์–ด mkdir์€ ์ƒ์„ฑํ•  ํด๋”์˜ ์ด๋ฆ„์„ ํ•จ๊ป˜ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋ฉฐ CLI์—์„œ๋Š” ๋ช…๋ น์–ด์™€ ํด๋”์˜ ์ด๋ฆ„์„ Space(์ŠคํŽ˜์ด์Šค ํ‚ค)๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. mkdir helloWorld
  • ls: ํŠน์ • ํด๋”์— ํฌํ•จ๋œ ํŒŒ์ผ์ด๋‚˜ ํด๋” ํ™•์ธํ•˜๊ธฐ
    ls๋Š” list์˜ ์•ฝ์ž๋กœ, ํŠน์ • ํด๋”์— ํฌํ•จ๋œ ํŒŒ์ผ์ด๋‚˜ ํ•˜์œ„ ํด๋”์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜ l๊ณผ a์ด๋‹ค.(-๋ฅผ ์ด์šฉํ•ด์„œ ์˜ต์…˜ ์ž…๋ ฅ)
    ls -l ls -a ls -al ๋˜๋Š” ls -la (์˜ต์…˜์˜ ์ˆœ์„œ๋Š” ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ)
    • a๋Š” "all"์ด๋ผ๋Š” ์˜๋ฏธ๋กœ ์ˆจ์–ด์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์„ ํฌํ•จํ•œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•œ๋‹ค.
    • l ์€ ํด๋”๋‚˜ ํŒŒ์ผ์˜ ํฌ๋งท์„ ์ „๋ถ€ ํ‘œํ˜„ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์˜ต์…˜ l์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ€์žฅ ์™ผ์ชฝ์— ์ถœ๋ ฅ๋˜๋Š” ๋‘ ๊ธ€์ž d์™€ -๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ d๋กœ ์ถœ๋ ฅ๋œ ๊ฒฝ์šฐ๋Š” ํด๋”๋ฅผ, -๋กœ ์ถœ๋ ฅ๋œ ๊ฒฝ์šฐ๋Š” ํŒŒ์ผ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • nautilus: Ubuntu์—์„œ ํ˜„์žฌ ์œ„์น˜๋ฅผ GUI๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด
  • cd: ํด๋”์— ์ง„์ž…ํ•˜๊ธฐ
    cd๋Š” change directory์˜ ์•ฝ์ž๋กœ, ํ”„๋กฌํ”„ํŠธ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํด๋”๋ฅผ ๋‹ค๋ฅธ ํด๋”๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
  • touch: ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ
    touch hi.txt
  • cat: ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•˜๊ธฐ
    ๋ช…๋ น์–ด cat์„ ์ด์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•˜๋ฉด, ํŒŒ์ผ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•œ๋‹ค. cat hi.txt
  • rm: ํด๋”๋‚˜ ํŒŒ์ผ ์‚ญ์ œํ•˜๊ธฐ
    rm์˜ ๋œป์€ remove(์‚ญ์ œํ•˜๋‹ค)์ด๋‹ค. ๋ช…๋ น์–ด rm์œผ๋กœ ์‚ญ์ œํ•œ ํด๋”๋‚˜ ํŒŒ์ผ์€, ํœด์ง€ํ†ต์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์‚ญ์ œ๋œ๋‹ค. rm์€ ๋‹จ์ผ ํŒŒ์ผ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํด๋”๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ์˜ต์…˜์„ ์ด์šฉํ•ด์•ผํ•œ๋‹ค.
    rm bye.txt
    • ์˜ต์…˜ r์€ "recursive"๋ฅผ ๋œปํ•˜๊ณ , ์˜ต์…˜ f๋Š” "force"๋ฅผ ๋œปํ•œ๋‹ค. ์˜ต์…˜ r์€ ํด๋”๋ฅผ ์ง€์šธ ๋•Œ ์‚ฌ์šฉํ•˜๊ณ , ์˜ต์…˜ f๋Š” ์งˆ๋ฌธ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์ง€์šธ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. rm -rf bye
  • mv: ํด๋”๋‚˜ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝ, ๋˜๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์˜ ์œ„์น˜ ์˜ฎ๊ธฐ๊ธฐ
    mv๋Š” move์˜ ์•ฝ์ž๋กœ, ํด๋”๋‚˜ ํŒŒ์ผ์„ ์ด๋™ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. mv ๋’ค์—๋Š” ์ˆœ์„œ๋Œ€๋กœ [ํด๋”๋‚˜ ํŒŒ์ผ์˜ ์ด๋ฆ„] [๋„์ฐฉ ํด๋”์˜ ์ด๋ฆ„]๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
    ๋ช…๋ น์–ด mv๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ [ํด๋”๋‚˜ ํŒŒ์ผ์˜ ์ด๋ฆ„]์—๋Š”, ๋ณ€๊ฒฝํ•  ํด๋”๋‚˜ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  [๋„์ฐฉ ํด๋”์˜ ์ด๋ฆ„]์„ ๋Œ€์‹ ํ•ด, ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ํŒŒ์ผ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
  • cp: ํด๋”๋‚˜ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ธฐ
    ๋ช…๋ น์–ด cp๋Š” copy์˜ ์•ฝ์ž๋กœ, ํด๋”๋‚˜ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ cp [์›๋ณธ ํŒŒ์ผ ์ด๋ฆ„] [๋ณต์‚ฌํ•  ํŒŒ์ผ ์ด๋ฆ„] ์ž…๋ ฅ

๐Ÿท๏ธํด๋” ์œ„์น˜

  • CLI์—์„œ .์€ ํ˜„์žฌ ํด๋”๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ..์€ ํ˜„์žฌ ํด๋”(.)์„ ๊ธฐ์ค€์œผ๋กœ, ์•ž์— .์ด ํ•˜๋‚˜ ๋” ๋ถ™๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ..์€ ํ˜„์žฌ ํด๋”๋ณด๋‹ค ์•ž์— ์žˆ๋Š” ํด๋”๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • ~์€ home directory๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • cd/์€ root directory๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๐Ÿ“–๊ด€๋ฆฌ์ž ๊ถŒํ•œ๊ณผ ๊ฒฝ๋กœ

๐Ÿท๏ธ์‚ฌ์šฉ์ž์™€ ๊ด€๋ฆฌ์ž

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

๐Ÿท๏ธ์ ˆ๋Œ€ ๊ฒฝ๋กœ์™€ ์ƒ๋Œ€ ๊ฒฝ๋กœ

  • ๊ฒฝ๋กœ๋Š” ๋ช…๋ น์–ด pwd๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ
  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ๊ธฐ์ค€์ ์œผ๋กœ๋ถ€ํ„ฐ์˜ ์ ˆ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ, ์ด ๊ธฐ์ค€์ ์€ ๋ฃจํŠธ ํด๋”(/)์ด๋‹ค. /home/[username]/helloWorld/hello/
  • ํ˜„์žฌ ์œ„์น˜๋กœ๋ถ€ํ„ฐ ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ๋Œ€ ๊ฒฝ๋กœ
  • ์ƒ๋Œ€ ๊ฒฝ๋กœ๋Š” ํŠน์ • ํด๋” ๋˜๋Š” ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ˜„์žฌ ์œ„์น˜ํ•œ ํด๋”๋Š” ์ (.)์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ , ์ƒ์œ„ ํด๋”๋Š” ๋‘ ๊ฐœ์˜ ์ (..)์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

๐Ÿท๏ธ๊ด€๋ฆฌ์ž(root) ๊ถŒํ•œ

  • <์ฃผ์˜>๊ด€๋ฆฌ์ž ์˜์—ญ์„ ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด, ์šด์˜์ฒด์ œ(Operating System)์ด ๋จนํ†ต์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ๋ง๊ฐ€์ง€๋ฉด, ์šด์˜์ฒด์ œ๋ฅผ ์žฌ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฃจํŠธํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ๋ช…๋ น์–ด mkdir์„ ์ด์šฉํ•ด ํด๋” test๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, "Read-only file system" ์ด๋ผ๋Š” ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚œ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ(Read-only)์ด๋ผ๋Š” ๋ง์€, ํด๋”๋‚˜ ํŒŒ์ผ์„ ์ƒ์„ฑ, ๋ณ€๊ฒฝ ๋˜๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋ฉฐ, ๋ฃจํŠธํด๋”๋Š” ๊ด€๋ฆฌ์ž์˜ ์˜์—ญ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ๋Š” ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์—†๋‹ค.
  • sudo: ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์ผ์‹œ์ ์œผ๋กœ ํš๋“ํ•˜๋Š” ๋ช…๋ น์–ด
    • ์‚ฌ์šฉ์ž ํด๋”์˜ ๊ฒฝ๋กœ(Path)๋Š” ~/๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๊ฒฐ ๊ธฐํ˜ธ(~)๋Š” ๋ฃจํŠธํด๋”(/)๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ํด๋”(username)๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ถ•์•ฝํ•œ ํ˜•ํƒœ์ด๋‹ค.

๐Ÿ“–ํ…์ŠคํŠธ ์—๋””ํ„ฐ nano

  • CLI์—์„œ ํ™˜๊ฒฝ์—์„œ ์œ ๋ช…ํ•œ ์—๋””ํ„ฐ๋Š” vim(vi), emacs ๋“ฑ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์—๋””ํ„ฐ๋Š” ๋‹ค๋ฆ„ ์•„๋‹Œ nano ์—๋””ํ„ฐ์ด๋‹ค.
nano hello.js  # hello.js ๋ฅผ nano์—์„œ ์—ฝ๋‹ˆ๋‹ค.
nano # ๊ทธ๋ƒฅ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


(A) ํŒŒ์ผ ์ด๋ฆ„ ์•ˆ๋‚ด
(B) ํŒŒ์ผ ํŽธ์ง‘ ํ™”๋ฉด, ์‹ค์ œ๋กœ ์—ฌ๊ธฐ์„œ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(C) ์‚ฌ์šฉ์— ํ•„์š”ํ•œ ๊ฐ์ข… ๋‹จ์ถ•ํ‚ค
์‚ฌ์‹ค์ƒ ์—ฌ๊ธฐ์— ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋„์›€์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์— ํ‘œ์‹œ๋œ ^X ์™€ ๊ฐ™์€ ๋‚ด์šฉ์€ Ctrl + X ํ‚ค ์กฐํ•ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • ํŒŒ์ผ์ €์žฅ: Ctrl + X -> Y ๋˜๋Š” ^O WriteOut

๐Ÿ“–ํŒจํ‚ค์ง€์™€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

  • ํŒจํ‚ค์ง€๋Š” ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋ชจ์•„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์••์ถ•ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ํŒŒ์ผ์˜ ๊ตฌ์„ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

    ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผ
    ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ํŒŒ์ผ
    ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ์„ค๋ช…์„œ
    ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ํŒŒ์ผ

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

๐Ÿท๏ธ apt

  • ์šฐ๋ถ„ํˆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ apt๋ผ๋Š” ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ๋‹ค.
  • apt ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์˜ ์ฃผ์š” ๋ช…๋ น์–ด
    • ํŒจํ‚ค์ง€ ๋ชฉ๋ก ๊ฐฑ์‹ : apt update(๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”)
      • ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ์ €์žฅ์†Œ์˜ ์ตœ์‹  ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „, ์ตœ์‹  ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.
      • ์„ค์น˜๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.
    • ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ถœ๋ ฅ: apt list -โ€”upgradable
    • ์ „์ฒด ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ(๋ฒ„์ „ ์—…): apt upgrade (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”)
    • ํŠน์ • ํŒจํ‚ค์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ(๋ฒ„์ „ ์—…): apt --only-upgrade install ํŒจํ‚ค์ง€ ์ด๋ฆ„ (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”)
    • ํŒจํ‚ค์ง€ ์„ค์น˜: apt install ํŒจํ‚ค์ง€ ์ด๋ฆ„ (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”)
    • ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ณด๊ธฐ: apt list --installed
    • ํŒจํ‚ค์ง€ ๊ฒ€์ƒ‰: apt search ๊ฒ€์ƒ‰์–ด
    • ํŒจํ‚ค์ง€ ์ •๋ณด ํ™•์ธ: apt show ํŒจํ‚ค์ง€ ์ด๋ฆ„
    • ํŒจํ‚ค์ง€ ์‚ญ์ œ: apt remove ํŒจํ‚ค์ง€ ์ด๋ฆ„(๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”)
  • ํŒจํ‚ค์ง€ ์„ค์น˜/์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๋•Œ sudo ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ํš๋“ํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ“–Node.js

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

๐Ÿ“–nvm

  • nvm์€ Node.js์˜ ๋‹ค์–‘ํ•œ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.
  • ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ฒ˜๋Ÿผ node.js์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก nvm(Node Version Manager)์œผ๋กœ Node.js๋ฅผ ์„ค์น˜ํ•œ๋‹ค. nvm์„ ์‚ฌ์šฉํ•˜๋ฉด Node.js์˜ ๋‹ค์–‘ํ•œ ๋ฒ„์ „์„ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ , ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • nvm ls ํ˜„์žฌ nvm์„ ํ†ตํ•ด ์„ค์น˜ํ•œ Node.js version๋“ค์ด ๋‚˜์˜จ๋‹ค
  • nvm install 12.18.3 ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ด๋ฏธ ์„ค์น˜๋œ ๋ฒ„์ „์„ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” Node.js version์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • nvm use ๋ฒ„์ „ ๋„˜๋ฒ„ ์˜ˆ๋ฅผ ๋“ค์–ด nvm use 14.15.5 ์ž…๋ ฅํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿท๏ธnvm์™€ Node.js ์„ค์น˜

  1. wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ nvm์„ค์น˜
  2. ์™„๋ฃŒ ํ›„ nvm --version์œผ๋กœ ๋ฒ„์ „ํ™•์ธ ๊ฐ€๋Šฅ
  3. nvm install --lts ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ Node.js์„ค์น˜
  4. ์™„๋ฃŒ ํ›„ node -v์œผ๋กœ ๋ฒ„์ „ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿท๏ธNode.js๋กœ JavaScriptํŒŒ์ผ ์‹คํ–‰ํ•˜๊ธฐ

# helloWorld.js ํŒŒ์ผ์„ node ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
node helloWorld.js

๐Ÿ“–npm๊ณผ package.json

  • ๋‚จ์ด ๋งŒ๋“ค์–ด๋†“์€ ๋ชจ๋“ˆ์„ node.js ์—์„œ๋Š” npm ๋ชจ๋“ˆ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ถ€๋ฅด๋ฉฐ, ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์•„๋‘” ๊ณณ์ด ๋ฐ”๋กœ package.json์ด๋‹ค.
  • node.js ํ™˜๊ฒฝ์—์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์€ ๋ฐ”๋กœ npm์ด๋‹ค. npm์€ Node Package Manager๋กœ ์ผ์ข…์˜ ์•ฑ์Šคํ† ์–ด์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š”, ๋ชจ๋“ˆ๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ๋ชจ๋“ˆ ์Šคํ† ์–ด์ž…๋‹ˆ๋‹ค.
  • package.json์—๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์ด ๋ฌด์—‡์ธ์ง€, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•, ํ”„๋กœ๊ทธ๋žจ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์ด ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค. (ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹ค์ œ ๋ชจ๋“ˆ์€ ๋”ฐ๋กœ node_modules์ด๋ผ๋Š” ํด๋”์— ์ €์žฅ๋œ๋‹ค.)
  • npm install ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, package.json์—์„œ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค. npm install์ด ์™„๋ฃŒ๋˜๋ฉด node_modules ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ๊ธด ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • devDependencies: ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ ๊ด€๊ณ„์—†๋Š” ์˜ค๋กœ์ง€ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์˜์กด์„ฑ ๋ฌ˜๋“ˆ
      • --save-dev ์˜ต์…˜๊ณผ ํ•จ๊ป˜ install ์‹คํ–‰์‹œ ์ž๋™์œผ๋กœ devDependencies์— ์ถ”๊ฐ€๋จ
    • dependencies: ํ”„๋กœ์ ํŠธ ์‹คํ–‰์„ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ
      • --save ์˜ต์…˜๊ณผ ํ•จ๊ป˜ (์ƒ๋žต ๊ฐ€๋Šฅ) install ์‹คํ–‰์‹œ ์ž๋™์œผ๋กœ dependencies์— ์ถ”๊ฐ€๋จ
    • scripts ํ•ญ๋ชฉ์€ CLI์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์„ ๊ธฐ์ˆ ํ•œ๋‹ค.
      • CLI์—์„œ ์‹คํ–‰ํ•  ๋•Œ์—๋Š” npm run <์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„> ์œผ๋กœ ์‹คํ–‰

๐Ÿ”Ž๊ณผ์ œ ์ œ์ถœํ•˜๋Š” ๋ฒ•

  1. npx codestates-assignment-manager login ์ž…๋ ฅ
  2. Github ์ธ์ฆ
  3. npm run test
  4. npm run submit
    *1๋ฒˆ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋ฉด ๊ธฐ๋กํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿท๏ธpackage.json ์ƒ์„ฑํ•˜๊ธฐ

  1. npm init ์ƒˆ๋กœ์šด package.json ํŒŒ์ผ์„ ์ƒ์„ฑ
{ "name": "codestates",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"}
  1. ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ
ls
cat package.json
  • ์œ„ ๊ณผ์ •์„ ๋ชจ๋‘ ์ƒ๋žตํ•˜๋ฉด์„œ package.json์„ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด npm init -y๋ฅผ ์ž…๋ ฅ

๐Ÿ“–git ์„ค์ •

  • ์‚ฌ์šฉ์ž ์ •๋ณด
$ git config --global user.name "๋‚˜์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„"
$ git config --global user.email "๋‚ด ์ด๋ฉ”์ผ ์ฃผ์†Œ"
  • ์—๋””ํ„ฐ(nano)
$ git config --global core.editor nano
  • SHHํ‚ค ์ƒ์„ฑ
    ssh๋Š” Secure shell์˜ ์ค„์ž„๋ง(Secure SHell)๋กœ, ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ shell ์ ‘์†์„ ๋œปํ•œ๋‹ค. CLI ํ™˜๊ฒฝ(ํ„ฐ๋ฏธ๋„)์—์„œ ๋‹ค๋ฅธ PC์— ์ ‘์†ํ•˜๊ฑฐ๋‚˜ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋น„๋Œ€์นญํ‚ค๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•œ๋‹ค.
  1. ssh-keygen ์ž…๋ ฅ ํ›„ ๋ช‡ ๋ฒˆ ์—”ํ„ฐ
    ssh-keygen ๋ช…๋ น์–ด๋Š” ๊ฒฝ๋กœ ~/.ssh./ ์— ๋‘ ํŒŒ์ผ id_rsa ์™€ id_rsa.pub ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด ๋‘ ํŒŒ์ผ์€ ssh ํ‚ค ํŽ˜์–ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ์ค‘ id_rsa.pub๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๊ณต๊ฐœํ•ด๋„ ๋˜๋Š” ๊ณต๊ฐœํ‚ค(Public Key) ๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  id_rsa๋Š” ๊ณต๊ฐœ๋˜๋ฉด ์•ˆ ๋˜๊ณ  ๋‚˜๋งŒ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ํ‚ค๋ผ๊ณ  ํ•˜์—ฌ ๊ฐœ์ธํ‚ค(Private Key) ๋˜๋Š” ๋น„๋ฐ€ํ‚ค(Secret Key) ๋ผ๊ณ  ํ•œ๋‹ค.

  2. cat ~/.ssh/id_rsa.pub ์ž…๋ ฅ ํ›„ ๊ณต๊ฐœํ‚ค ๋ณต์‚ฌ
    github์—์„œ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€->settings-> SSH and GPG keys->์ดˆ๋ก์ƒ‰ ๋ฒ„ํŠผ New SSH Key-> ์‚ฌ์šฉ์ž ์ž„์˜๋กœ Title์„ ์ž‘์„ฑ, Key์—๋Š” ๋ณต์‚ฌํ•ด๋‘” ๊ณต๊ฐœํ‚ค๋ฅผ ๋ถ™์—ฌ ๋„ฃ๊ณ , Add SSH Key ๋ฒ„ํŠผ์„ ํด๋ฆญ

profile
๊ธ์ •์ ์œผ๋กœ~โœ๏ธ(โ—”โ—กโ—”)

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