โœŠ ํ•„์˜ค์˜ ๊ฐœ๋ฐœ์ผ์ง€
Back to Posts
2019๋…„ 1์›” 22์ผ

CodeSpitz77 1ํšŒ_Programming & JS elementry

CodeSpitz77 1ํšŒ_Programming & JS elementry

๐ŸŒ•๐ŸŒ‘๐ŸŒ‘

์ฝ”๋“œ์Šคํ”ผ์ธ  ๊ฐ•์˜ ์ •๋ฆฌ๋ก


1. ์™œ ์ด๋ ‡๊ฒŒ ์งฐ๋‹ˆ. - ๊ฐœ๋ฐœ ๊ธฐ๋ณธ์„ ์•Œ์•„๋ณด์ž. ์ฒ ํ•™/๊ฐ€์น˜/๋™๊ธฐ

์ฒ ํ•™

๊ธฐ์ค€ (: ์™œ ์ด๋ ‡๊ฒŒ ์งฐ๋‹ˆ?.. ์ด๊ฒƒ๋งŒ ์ง€์ผœ๋„ ๋น„์šฉ์ ˆ๊ฐ.)

  1. ๊ฐ€์น˜ : ์ด๋Ÿฌ์ด๋Ÿฌํ•œ ๊ฐ€์น˜๋ฅผ ์ถ”๊ตฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜์˜€๋‹ค.
  1. ์›์น™ (by Kent Beck)
  1. ํŒจํ„ด (์„ ๋ฐฐ๋“ค์˜ ๊ฒฝํ—˜๊ธฐ๋ฐ˜..๊ฒฝํ—˜๋„ ๋ฐ˜๋ณต๋˜๋ฉด ์ง„๋ฆฌ์— ๊ฐ€๊นŒ์›Œ์ง.)

๋™๊ธฐ


2. program๊ณผ timing

์ปดํ“จํ„ฐ๊ฐ€ ๋ญ˜๊นŒ? ํ”„๋กœ๊ทธ๋žจ์ด ๋ญ˜๊นŒ?

2-1-1. program

  1. language code
  1. machine language(๊ธฐ๊ณ„์–ด)
  1. file
  2. load: file์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋Š” ๊ณผ์ •
  1. run: ์‹คํ–‰
  1. terminate: ์ข…๋ฃŒ

2-1-2. script program ๐Ÿ˜Ž

  1. language code: ์ฝ”๋“œ์ž‘์„ฑ ํ›„
  2. file: jsํŒŒ์ผ์„
  3. load: ๋ธŒ๋ผ์šฐ์ €์— ๋กœ๋“œํ•˜๋ฉด
  4. machine language(๊ธฐ๊ณ„์–ด): ๊ธฐ๊ณ„์–ด๋กœ ๋ฐ”๊ฟ”์„œ
  5. run: ์‹คํ–‰ (๋งค๋ฒˆ ๊ธฐ๊ณ„์–ด๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์œผ๋‹ˆ, ์บ์‹œ๋ฅผ ํƒœ์›Œ๋†“๊ธฐ๋„)
  6. terminate: ์ข…๋ฃŒ

2-2-1. program runtime

์ปดํŒŒ์ผ ํƒ€์ž„์ด ์—†์–ด์„œ ๋Ÿฐํƒ€์ž„์ด ์ค‘์š” ๋Ÿฐํƒ€์ž„์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ

  1. loading
  2. instruction fetch & decoding(์™ธ๋ถ€๋ฒ„์Šค์—์„œ ๋ช…๋ น์„ ๊ฐ€์ ธ์™€ ํ•ด์„)
  3. execution (์‹คํ–‰)

๋ช…๋ น ํ•˜๋‚˜๋‹น, 2๋ฒˆ๊ณผ 3๋ฒˆ์˜ ๋ฐ˜๋ณต

๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ํ”„๋กœ๊ทธ๋žจ์„ cpu๊ฐ€ ์†Œ๊ฐœํ•œ๋‹ค. (๋…ธ์ด๋งŒ ๋จธ์‹ ์˜ ๊ตฌ์กฐย )


  1. essential definition loading: ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ์— ์ ์žฌํ•œ๋‹ค.
  2. VTable์— ๋งคํ•‘ํ•œ๋‹ค.
  3. run
  4. runtime definition loading

2-2-2. script program runtime


3. Memory, Address, Pointer, Variables, Dispatch ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ๋ฌด์Šจ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์›€์ง์ด๋Š”์ง€. ์ฐธ์กฐ์˜ ์ฐธ์กฐ๋ฅผ ์™œ ์“ฐ๋Š”์ง€๋ฅผ ๋ฐฐ์šฐ๋Š”๊ฒŒ ํ•ต์‹ฌ - (linked list, decorator, โ€ฆ) - ์ง์ ‘ ์•Œ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์•„์ด๋ฅผ ํ†ตํ•ด์„œ ์•Œ๋ ค๊ณ  ํ•˜์ง€?

3-1. Memory

๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋ฅผ ์ฃผ์†Œ๋กœ ๊ฐ–๋Š” ๋ธ”๋Ÿญ์ฒด๊ณ„๋กœ ๋˜์–ด์žˆ๋‹ค. ๋ธ”๋Ÿญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์†Œ๋Š” ๋ช‡์ž๋ฆฌ์ผ๊นŒ? => 64bit์ธ์ง€ 32bit์ธ์ง€

3-2. ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ

(ํฌ์ธํ„ฐ ๊ฐœ๋…)

  1. A = "TEST"
  2. &A = 11 (C์–ธ์–ด์—์„œ ์ฃผ์†Œ๊ฐ’์˜ ๋ณ€์ˆ˜ ์•ž์— &๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.)
  3. B = &A
  4. *B = "TEST"

์ง์ ‘์ฐธ์กฐ์˜ ์œ„ํ—˜์„ฑ

  1. C = B, D = B, ... : C์™€ D๋Š” B๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ ์žˆ๋‹ค.
  2. B์˜ ๋ฐฐ์‹ .. B = &K : ์ฃผ์†Œ๊ฐ’์ด ๋ฐ”๊พธ์—ˆ๋‹ค.

double dispatch๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.


B = { value: &A, V: 3 } C = B, D = B, ...

B๊ฐ€ ์ง์ ‘์ฐธ์กฐํ•˜์ง€์•Š๊ณ , ๊ฐ„์ ‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. Dispatch: ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์–ป๋Š” ํ–‰์œ„

B๊ฐ€ ๋ฐฐ์‹ ์„ ๋•Œ๋ ค๋„ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.


3-3. Lexical Grammar (์–ดํœ˜์ ์ธ ์ธก๋ฉด์˜ ๋ฌธ๋ฒ•)


3-4. Language Element

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์•„๋ž˜์˜ ํฐ 3๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

3-4-1. Statements: ๋ฌธ

๋ฌธ์„ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. ๊ณต๋ฌธ, ์‹๋ฌธ, ์ œ์–ด๋ฌธ, ์„ ์–ธ๋ฌธ
  1. ๋‹จ๋ฌธ, ์ค‘๋ฌธ

3-4-2. Expresssion: ์‹

3-4-3. Identifier ์‹๋ณ„์ž


4. ํ๋ฆ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด์žˆ๋Š” ๋ช…๋ น์–ด์˜ ์—ฐ์‡„(flow) Sync Flow / Flow Control / Sub Flow

4-1. Sync Flow - ๋ฉ”๋ชจ๋ฆฌ์— ์ ๋Œ€๋˜์–ด์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์šฐ๋ฆฌ๋Š”** ๊ฐ„์„ญ์„ ๋ชปํ•œ๋‹ค.** - ๋™๊ธฐํ™”

ํ๋ฆ„, ๋™๊ธฐํ™” ๋กœ์ง ์ด๋ผ๊ณ  ํ•œ๋‹ค.

4-2. ํ๋ฆ„์ œ์–ด (flow control)

4-3. sub flow

PreviousGit Submodule๋กœ ๊ณต์šฉ๋กœ์ง ๊ณต์œ ํ•˜๊ธฐ
Next์•ˆ๋…• 2018, ์•ˆ๋…• 2019

Related

ยฉ 2025 Felix