๐Ÿ‘ฉ‍๐Ÿ’ป Learn programming

[์ŠคํŒŒ๋ฅดํƒ€] 1์‹œ๊ฐ„๋งŒ์— ๋๋‚ด๋Š” ์ง์žฅ์ธ ์ฝ”๋”ฉ ์šฉ์–ด ํ•ด์„ค ์ •๋ฆฌ

๋””์ž์ธ ๋ฝ€์†ก์ด 2021. 12. 23. 22:16
๋ฐ˜์‘ํ˜•


 1๊ฐ•. ์ปดํ“จํ„ฐ์™€ ์ธํ„ฐ๋„ท 

 

  • ์ปดํ“จํ„ฐ : ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๊ณ„๋ฅผ ๋ชจ์•„๋‘” ๊ฒƒ
    - CPU : ๊ณ„์‚ฐํ•˜๊ธฐ
    - RAM : ๊ธฐ์–ตํ•˜๊ธฐ
    - ํ•˜๋“œ๋””์Šคํฌ : ์ ์–ด๋‘๊ธฐ
    - ๋ฉ”์ธ๋ณด๋“œ : ๊ฝ‚์•„๋‘๊ธฐ

 

  • OS (์šด์˜์ฒด์ œ) : ์ธ๊ฐ„์ด ๊ธฐ๊ณ„์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ
    ex) ์•ˆ๋“œ๋กœ์ด๋“œ, ios, Window, Linux ···
    โ€ป Linux๋Š” '์˜คํ”ˆ์†Œ์Šค'

 

  • ์ฝ”๋”ฉ : OS์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
    ex) Python, JS, PHP, JAVA, C++ ···
  • ํ”„๋กœ๊ทธ๋žจ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ฏธ๋ฆฌ ์ฝ”๋”ฉํ•ด์„œ ๋งค๋ฒˆ ๋˜‘๊ฐ™์ด ์›€์ง์ด๋Š” ๊ฒƒ
    ex) ํ•œ๊ธ€, ์—‘์…€, ํŒŒ์›Œํฌ์ธํŠธ ···

 

  • ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ๋Œ€ํ™”๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ  ์‹ถ์œผ๋ฉด? → ์ธํ„ฐ๋„ท ํ•„์š”!
  • ๋˜, ๋Œ€ํ™”๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ ค๋ฉด ๊ทœ์น™์ด ํ•„์š” → ๊ทœ์น™ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์›น = http
  • [http://dearest-mingyeong.tistory.com/] ์—์„œ http๋Š” ์›น ํ†ต์‹ ์„ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ
  • ์•”๊ตฌํ˜ธ ํ‘œ๋ฅผ ์„œ๋กœ ๊ฐ€์ ธ์„œ ๊ฐ€์šด๋ฐ์„œ ๋ชป๋“ฃ๊ฒŒ ํ•˜๋Š”๊ฒŒ = https

 

  • "์ž˜ ๋“ฃ๊ณ  ์žˆ๋‹ค๊ฐ€ ๋ˆ„๊ฐ€ http๋ฅผ ์š”์ฒญํ•˜๋ฉด ์ด ํŒŒ์ผ์„ ๋Œ๋ ค์ค˜" ๋ช…๋ น
    = "์›น์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค"๊ณ  ํ•˜๋Š” ๊ฒƒ

 


 

 2๊ฐ•. ์›น ์„œ๋น„์Šค ๋™์ž‘ ๋ฐฉ์‹

 

  • ์ ‘์†์ž ํญ์ฃผ → "์„œ๋ฒ„ ํ„ฐ์กŒ๋‹ค"
  • ์„œ๋ฒ„์˜ ์—ญํ•  : ๊ฐ€์šด๋ฐ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ฃผ๋Š” ๊ฒƒ
    (๊ทธ๋ž˜์„œ, ์‚ฌ๋žŒ์ด ๋งŽ์•„์ง€๋ฉด ํž˜๋“ค๋‹ค)
  • ์„œ๋ฒ„ : "์ปดํ“จํ„ฐ:๋ผ๋Š” ์‚ฌ๋žŒ์˜ ์ง์—…๊ณผ ๊ฐ™์€ ๊ฒƒ
    (DB, ์›น ์„œํ•‘ ๋“ฑ ํˆฌ์žก, ..., N์žก ๊ฐ€๋Šฅ!)
  • ๋ธŒ๋ผ์šฐ์ € ์—ญํ•  : ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ๋ฐ›์•„์™€์„œ ๊ทธ๋Œ€๋กœ ๊ทธ๋ ค์ฃผ๋Š” ๊ฒƒ
    - HTML : ๋ผˆ๋Œ€
    - CSS : ์˜ˆ์˜๊ฒŒ
    - JS : ์›€์ง์ž„

 

  • ๊ทธ๋Ÿฐ๋ฐ, ๊ผญ ์ด๋ ‡๊ฒŒ ํŽ˜์ด์ง€๋ฅผ ์ค˜์•ผํ• ๊นŒ?
    โ‰ซ ํŽ˜์ด์ง€ ๋กœ๋”ฉ์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐˆ์•„๋ผ์šธ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ, ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์ค„ ์ˆ˜ ์—†์œผ๋‹ˆ, ๊ทœ์น™์ด ํ•„์š”ํ•˜๋‹ค.
    โ‰ซ JSON ๋ฐฉ์‹ (ํŠน์ง• : {key : value})

 

  • ์•ฑ์—์„œ ์ด ๋ฐฉ์‹์„ ๋งŽ์ด ์”€
    : ๊ป๋ฐ๊ธฐ๋Š” ๋‹ค ๊ฐ–๊ณ  ์žˆ๋‹ค๊ฐ€, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ
    โ‰ซ ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ!
  • ์›น์—์„œ๋Š” ์„œ๋ฒ„์—์„œ ๊ป๋ฐ๊ธฐ๊นŒ์ง€ ๋‹ค ๋ฐ›์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ ํ•„์š” X

 

  • ์›น์€ ๋‹ค ๋ฐ›๊ณ , ์•ฑ์€ ๋ฐ์ดํ„ฐ๋งŒ!

 


 

 3๊ฐ•. ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ํ†ต์‹  

 

  • ๋Œ€์ฒด ๋ฌด์Šจ ๊ทœ์น™์œผ๋กœ, ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

 

  • ๋ฐฐ๋‹ฌ ์•ฑ API ์˜ˆ์‹œ
    - A : ์•„์ด๋”” ๊ฐ€์ ธ์™€, ์ฃผ๋ฌธ๋‚ด์—ญ์„ ๋ณด์—ฌ์ค„๊ป˜.
    - B : ์ฃผ์†Œ ๊ฐ€์ ธ์™€, ์Œ์‹์  ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค„๊ป˜.
    - C : ์ฃผ๋ฌธ๋ฒˆํ˜ธ ๊ฐ€์ ธ์™€, ๋ฐฐ๋‹ฌํ˜„ํ™ฉ์„ ๋ณด์—ฌ์ค„๊ป˜.

 

  • API : ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ๊ธฐ๋Šฅ
    (= ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐ”์ž์™€ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž์˜ ์•ฝ์†)
    → ๋ฌธ์„œ๋กœ ์ ์–ด๋‘” ๊ฒƒ : API ๋ช…์„ธ์„œ
๋”๋ณด๊ธฐ

https://movie.naver.com/movie/bi/mi/basic.naver?code=208077

http:// ์„œ๋ฒ„ ์œ„์น˜ / API ์ฃผ์†Œ ? ๊ฐ€์ ธ๊ฐ€๊ธฐ๋กœ ํ•œ ๋ฐ์ดํ„ฐ

 

  • Open API : ๋ˆ„๊ตฌ๋‚˜ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ฒŒ ์—ด์–ด ๋‘” API
    ex) ๊ณต๊ณต๋ฐ์ดํ„ฐ ···

 

  • ์›น/์•ฑ ์„œ๋ฒ„๋Š” (๋ˆ„๊ฐ€ ์š”์ฒญํ•˜๋Š”์ง€) ์ƒ๊ด€์—†๋‹ค.
    (์•ฑ ์„œ๋ฒ„, ์›น ์„œ๋ฒ„, TV ์„œ๋ฒ„ ๋“ฑ์ด ๋”ฐ๋กœ ์—†์œผ๋‹ˆ๊นŒ)

 


 

 4๊ฐ•. ๊ฐœ๋ฐœ์–ธ์–ด, ํ”„๋ ˆ์ž„์›Œํฌ

 

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : OS์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ

 

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์„œ๋ฒ„๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์•„์ฃผ ์–ด๋ ค์šด ์ผ!
    → ๊ทธ๋ž˜์„œ 'ํ”„๋ ˆ์ž„์›Œํฌ'๊ฐ€ ์กด์žฌ
    ex) Java - Spring / Node.js - Express / Python - Django, Flask
        (์ด ์™ธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์—„์ฒญ ๋งŽ๊ณ , ๋Œ€์ฒด์ ์œผ๋กœ ์œ ๋ช…ํ•œ ๊ฒƒ ์‚ฌ์šฉ)

 

  • ์–ธ์–ด๋ณ„ ์šฉ์ฒ˜์™€ ํŠน์ง•

 ์›น ํ”„๋ก ํŠธ์—”๋“œ
- HTML ๋ผˆ๋Œ€, CSS ๊พธ๋ฏธ๊ธฐ, Javascript ์›€์ง์ž„
  → ์ด๊ฑฐ๋งŒ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด ๋งŒ๋“œ๋Š” ๊ฒƒ
  Javascript๋กœ ๋งŒ๋“  ํ”„๋ ˆ์ž„์›Œํฌ : Angular, vue.js, React.js

 

 ์„œ๋ฒ„ 
- ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด๋กœ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•จ.
  (HTML, CSS, JS ์ œ์™ธ)
- Java : ์–ด๋ ค์›€, ํ˜•์‹์ด ์žˆ์Œ, ํฐ ํšŒ์‚ฌ์—์„œ ๋งŽ์ด ์”€
- Python : ์‰ฝ๊ฒŒ ์ž…๋ฌธ, ์ž์œ ๋กœ์›€, ๋ฐ์ดํ„ฐ ๋ถ„์„์—๋„ ์”€
- node.js : Javascript์™€ ๊ฑฐ์˜ ๊ฐ™์Œ, ์Šคํƒ€ํŠธ์—…์—์„œ ๋งŽ์ด ์‚ฌ์šฉ
              (๋ฐฑ/ํ”„๋ก ํŠธ ์–ธ์–ด๊ฐ€ ๊ฐ™์œผ๋ฉด ํŽธํ•˜๋‹ˆ๊นŒ)
- C์–ธ์–ด : ์ž„๋ฒ ๋””๋“œ ์นฉ, IoT์—์„œ, C๋กœ ์„œ๋ฒ„ ๋งŒ๋“œ๋Š” ๊ณณ์€ ๊ฑฐ์˜ X (๊ฐ€๋” ๊ฒŒ์ž„ํšŒ์‚ฌ?)
- GO : ์ตœ๊ทผ ์ธ๊ธฐ, ์‰ฌ์šด๋ฐ ์ ๋‹นํžˆ ํ˜•์‹์ด ์žˆ์Œ

- Typescript : Javascript์— ํƒ€์ž…์„ ๋„ฃ์Œ

 

 ๊ทธ ์™ธ ์•ฑ 
- ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ : Kotlin

- ์•„์ดํฐ ์•ฑ : Swift
- ํ•œ๋ฒˆ์— ๊ฐœ๋ฐœ : Flutter or React Native

 

  • ์–ธ์–ด์—๋Š” ํŠน์„ฑ๋งŒ ์žˆ์„ ๋ฟ, ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ด ์„ ํƒ!

 


 

 5๊ฐ•. ์•„ํ‚คํ…์ณ/DB 

 

  • ์„œ๋ฒ„, ํด๋ผ์šฐ๋“œ ๋“ฑ ์•„ํ‚คํ…์ณ๊ฐ€ ๋งค์šฐ ๋ณต์žกํ•จ.
  • ๊ทธ๋ž˜์„œ, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉ
    ex) AWS
    → ์ด๋ฏธ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ž˜ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์ค‘์š”ํ•ด์ง (์‹ค๋ ฅ)

 

  • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค : ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ฐพ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ
  • DB ์ •๋ ฌ๋œ ์ƒํƒœ๋Œ€๋กœ ์ฐพ์•„์•ผ ๋น ๋ฅด๊ฒŒ ์ฐพ์Œ
  • ์ •๋ฆฌ๋œ ํ•ญ๋ชฉ : ์ธ๋ฑ์Šค, ์ธ๋ฑ์Šค๋ฅผ ํƒ€์•ผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์˜ด

 

  • DB / SQL vs NoSQL
  • ์ •ํ˜•ํ™”๋œ SQL (ORACLE, MySQL) VS ๋น„์ •ํ˜•ํ™”๋œ Not-Only SQL (mongoDB)

 

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด SQL์„ ๋ฐฐ์šด๋‹ค
    = SQL DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šด๋‹ค

 


 

 6๊ฐ•. ํ˜‘์—… 

 

  • ๊ฐœ๋ฐœ์ž๋“ค์€ ์–ด๋–ป๊ฒŒ ์ผ์„ ๊ฐ™์ด ํ• ๊นŒ?
    → ์šฐ์„  ํŒŒ์ผ์ด ๋งŽ๊ณ , ํŒŒ์ผ ์•ˆ์— ๋‚ด ์ฝ”๋“œ๋„, ๋‚จ์˜ ์ฝ”๋“œ๋„ ์žˆ์Œ.
    โ‰ซ ๋ถ€๋ถ„์„ ๋‚˜๋ˆ ์„œ ์ž‘์—…ํ•˜๊ณ , ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”
    โ‰ซ Git์œผ๋กœ

 

  • ์ฝ”๋“œ๋ฅผ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•  ์ปดํ“จํ„ฐ๋ฅผ ์ธํ„ฐ๋„ท์—์„œ ๋นŒ๋ฆฌ์ž!
    โ‰ซ GitHub

    (1) ์„ธ์ด๋ธŒ ํฌ์ธํŠธ (cummit)
    (2) ์—…๋กœ๋“œ (push)
    (3) ๋‹ค์šด๋กœ๋“œ (pull)
    (4) ๋ธŒ๋žœ์น˜ ๋”ฐ๊ธฐ (branch)
    (5) ๋จธ์ง€ํ•˜๊ธฐ(ํ•ฉ์น˜๊ธฐ) (merge)
๋ฐ˜์‘ํ˜•