[컴퓨터과학 개둠] 11κ°• - ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄(1)

2025. 11. 10. 19:08Β·πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅/πŸ’»μ»΄ν“¨ν„°κ³Όν•™ 개둠

βœ… 1. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ κ°œμš”

(1) ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ κ°œλ…

  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” μ‚¬λžŒμ˜ μ˜λ„λ₯Ό μ»΄ν“¨ν„°μ—κ²Œ μ „λ‹¬ν•˜μ—¬ μ»΄ν“¨ν„°μ—κ²Œ μž‘μ—…μ„ μˆ˜ν–‰μ‹œν‚€κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§.
  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” μ‚¬λžŒμ˜ μ˜λ„λ₯Ό μΆ”μƒν™”ν•˜μ—¬ μ••μΆ•λœ μ–Έμ–΄λ‘œ 컴퓨터에 μ „λ‹¬λ˜μ–΄μ•Ό 함.
  • λ™μ‹œμ— μ»΄ν“¨ν„°μ—μ„œ 싀행될 수 μžˆλŠ” 이진 μ½”λ“œ(binary code)둜 λ²ˆμ—­λ˜μ–΄μ•Ό 함.

[ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ λͺ©μ  ]

  • 일상 μ–Έμ–΄λ‘œ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 μžˆλ‹€λ©΄ λˆ„κ΅¬λ‚˜ μžμ‹ μ˜ ν•„μš”μ— 따라 ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 있음
  • ν•˜μ§€λ§Œ, 일상 μ–Έμ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ€ μ• λ§€λͺ¨ν˜Έν•œ 의미λ₯Ό κ°€μ§ˆ 수 있음
  • 즉, ν•˜λ‚˜μ˜ λ¬Έμž₯μ—μ„œ 두 개의 의미둜 해석이 될 μˆ˜λ„ μžˆλ‹€λŠ” μ˜λ―Έμž„.
  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” 의미적으둜 μ• λ§€λͺ¨ν˜Έν•¨μ΄ μ—†κ³ , μ–΄λ–€ κ²½μš°μ—λ„ λ™μΌν•œ 의미둜 ν•΄μ„λ˜μ–΄μ•Ό 함
  • 결둠은 μ΄λ ‡κ²Œ μ• λ§€λͺ¨ν˜Έν•œ 의미λ₯Ό κ°€μ§ˆ 수 있기 λ•Œλ¬Έμ— ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό 사전에 μ •μ˜λ₯Ό 해두고, 그거에 맞게 μ‚¬μš©μ„ ν•¨μœΌλ‘œμ¨ μ• λ§€λͺ¨ν˜Έν•¨μ„ μ—†μ• λŠ” 것이 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ λͺ©μ μ΄λΌκ³  λ³Ό 수 있음.

[ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ ν•„μˆ˜ μš”κ±΄ ]

  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” 의미적으둜 μ• λ§€λͺ¨ν˜Έν•¨μ΄ μ—†κ³  μ–΄λ–€ κ²½μš°μ—λ„ λ™μΌν•œ 의미둜 ν•΄μ„λ˜μ–΄μ•Ό 함
  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” ꡬ문둠적 μΈ‘λ©΄μ—μ„œ λͺ…ν™•ν•˜κ²Œ μ •μ˜λ˜μ–΄μ•Ό ν•˜λ©°, 의미둠적 μΈ‘λ©΄μ—μ„œ μ–Έμ œλ‚˜ λ™μΌν•˜κ²Œ ν•΄μ„λ˜μ–΄μ•Ό 함.
  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” λ…Όλ¦¬μ μœΌλ‘œ μ„€κ³„λ˜μ–΄ 컴퓨터가 μ²˜λ¦¬ν•  수 μžˆλŠ” μ΄μ§„μ½”λ“œλ‘œμ˜ λ³€ν™˜μ΄ λͺ…ν™•ν•˜κ²Œ μ •ν™•ν•˜κ²Œ λ˜μ–΄μ•Ό 함.
  • μ»΄νŒŒμΌλŸ¬λŠ” ꡬ문둠적, 의미둠적 μΈ‘λ©΄μ—μ„œ μ˜³μ€κ±΄μ§€ μ•„λ‹Œμ§€ νŒŒμ•…μ„ ν•΄μ£Όκ³  이진 μ½”λ“œλ‘œ λ²ˆμ—­μ„ ν•΄μ£ΌλŠ” μ—­ν• μž„.

(2) ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ μ „ν˜•

  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” 이진 μ½”λ“œμ— κ°€κΉŒμš΄ μ–΄μ…ˆλΈ”λ¦¬μ–΄μ™€ μžμ—°μ–΄μ— κ°€κΉŒμš΄ κ³ κΈ‰μ–Έμ–΄λ‘œ λΆ„λ₯˜κ°€ λœλ‹€.
  • 즉, μ–΄μ…ˆλΈ”λ¦¬μ–΄μ™€ 고급언어사이에 λ‹€μ–‘ν•œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ μ‘΄μž¬ν•¨.

(3) 기계어

  • 0κ³Ό 1의 μ΄μ§„μˆ˜λ‘œ κ΅¬μ„±λ˜λŠ” μ–Έμ–΄λ‘œ 컴퓨터 ν•˜λ“œμ›¨μ–΄λ₯Ό μ§μ ‘μ μœΌλ‘œ μ œμ–΄ν•˜κΈ° μœ„ν•œ μ „κΈ° μ‹ ν˜Έμ˜ ν‘œν˜„ ν˜•νƒœλ‘œ 전달될 수 μžˆλŠ” μˆ˜μ€€μ˜ 언어이닀.
  • 0κ³Ό 1둜 이루어지기 λ•Œλ¬Έμ— μ‚¬λžŒμ΄ 의미λ₯Ό μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ³ , ν”„λ‘œκ·Έλž¨ μž‘μ„±μ΄ 맀우 어렀움
  • ν•˜λ“œμ›¨μ–΄λ‚˜ 컴퓨터 ꡬ쑰에 따라 κΈ°κ³„μ–΄μ˜ ꡬ성과 λͺ…λ Ήμ–΄(0κ³Ό 1의 λ‚˜μ—΄)κ°€ 달라지기 λ•Œλ¬Έμ— λ²”μš©μ„±μ΄ 떨어짐.
  • κΈ°κ³„μ–΄λŠ” 두 κ°€μ§€ 성격을 λ™μ‹œμ— κ°€μ§„λ‹€κ³  ν•  수 있음.
  • 좔상적(논리적): 인간이 ‘0κ³Ό 1’에 의미λ₯Ό λΆ€μ—¬ν•΄ λͺ…λ ΉμœΌλ‘œ ν•΄μ„ν•˜λŠ” 언어적 ν‘œν˜„
  • 물리적(전기적): μ‹€μ œλ‘œλŠ” ν•˜λ“œμ›¨μ–΄ λ‚΄λΆ€μ˜ μ „μ••μ˜ 쑴재(1) λ˜λŠ” λΆ€μž¬(0) 둜 κ΅¬ν˜„λ˜λŠ” μ‹ ν˜Έ

(4) μ–΄μ…ˆλΈ”λ¦¬μ–΄

  • κΈ°κ³„μ–΄μ˜ 0κ³Ό 1둜 이루어진 λͺ…λ Ήμ–΄λ₯Ό μ‚¬λžŒμ˜ 언어와 μœ μ‚¬ν•œ μ•ŒνŒŒλ²³ μ‹¬λ²Œ ν˜•νƒœλ‘œ λ°”κΎΌ 언어이닀.
  • κΈ°κ³„μ–΄λ³΄λ‹€λŠ” 훨씬 읽기 νŽΈν•˜μ§€λ§Œ ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 논리λ₯Ό 컴퓨터가 μ‹€ν–‰ν•˜λŠ” 논리 μˆœμ„œμ— λ§žμΆ”μ–΄ 생각해야 ν•˜κΈ° λ•Œλ¬Έμ— μ΄ν•΄ν•˜κΈ° 쉽지 μ•ŠμŒ.
  • 즉, 기계어보단 μ‰¬μšΈμˆœ μžˆμ§€λ§Œ 일반 κ³ κΈ‰ μ–Έμ–΄λ³΄λ‹€λŠ” 어렀움.

(5) 초창기의 κ³ κΈ‰ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

  • μ—°μ‚°, μˆ˜ν–‰ μ œμ–΄, λ©”λͺ¨λ¦¬ μ ‘κ·Ό λ“±μ˜ ν”„λ‘œκ·Έλž¨μ„ μ‚¬λžŒμ˜ μžμ—°μ–΄μ— μœ μ‚¬ν•œ ν˜•νƒœλ‘œ ν‘œν˜„ν•¨
  • ν¬νŠΈλž€(FORTRAN, κ³Όν•™/곡학 κ³„μ‚°μš© μ–Έμ–΄, 졜초의 κ³ κΈ‰μ–Έμ–΄)μ΄λ‚˜ μ½”λ³Ό(COBOL, λΉ„μ§€λ‹ˆμŠ€μš© μ–Έμ–΄)등이 초기의 κ³ κΈ‰ ν”„λ‘œκ·Έλž˜λ° 언어에 해당이 λœλ‹€. ( 1950λ…„λŒ€ 말 )
  • 1960λ…„λŒ€ μ€‘λ°˜μ— λ“±μž‘ν•œ 베이직(Basic)도 1980λ…„λŒ€ λ§ˆμ΄ν¬λ‘œμ»΄ν“¨ν„°μ—μ„œ 많이 μ‚¬μš©μ΄ 됨.
  • μ΄λŸ¬ν•œ κ³ κΈ‰μ–Έμ–΄κ°€ λ°œμ „ν•˜λ©΄μ„œ νŠΉμ • λͺ©μ μ— λΆ€ν•©ν•˜λŠ” 언어듀도 λ‚˜μ˜€κ²Œ 됨. ( ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ λ“± )

(6) ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

  • μˆ˜ν•™μ  ν•¨μˆ˜ κ°œλ…μ— κΈ°λ°˜ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•˜λŠ” λ°©μ‹μ˜ ν”„λ‘œκ·Έλž˜λ° 언어이닀.
  • μ‰½κ²Œλ§ν•΄, μž…λ ₯값이 λ“€μ–΄μ˜€λ©΄ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ νŠΉμ • μ½”λ“œκ°€ μ‹€ν–‰ 되고 이후 결과값을 λ°˜ν™˜ν•΄μ£ΌλŠ” ν•¨μˆ˜ κ³„μ‚°μž„.
  • 기본적으둜 μˆ˜μ‹(expression)의 μ—°μ†μœΌλ‘œ 이루어져 있고 ν•¨μˆ˜λ“€μ„ μ‚¬μš©ν•΄ μˆ˜μ‹μ„ λ³€ν™˜ν•œλ‹€.
  • μˆ˜μ‹μ€ 사칙 μ—°μ‚° 뿐만 μ•„λ‹ˆλΌ 일반적인 의미의 λͺ¨λ“  ν•¨μˆ˜λ₯Ό μ˜λ―Έν•˜κ³ , ν•¨μˆ˜μ˜ κ²°κ³Όλ₯Ό λ‹€λ₯Έ ν•¨μˆ˜μ˜ μž…λ ₯ κ°’μœΌλ‘œ μ‚¬μš©ν•¨.
  • λ¦¬μŠ€ν”„(LISP, 1950λ…„λŒ€ 말)와 같이 μ‹¬λ²Œμ˜ 리슀트λ₯Ό μ—°μ‚°μ˜ κΈ°λ³Έ λ‹¨μœ„λ‘œ ν•˜κΈ°λ„ 함.
  • μŠ€ν‚΄9Scheme), ML λ“±μ˜ κ³ κΈ‰ 언어도 ν•¨μˆ˜ν˜• 언어에 포함됨.

(7) ꡬ쑰적 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

  • ν”„λ‘œκ·Έλž¨μ„ 순차, 선택, 반볡 μ΄λΌλŠ” μ„Έ κ°€μ§€ κΈ°λ³Έ μ œμ–΄ ꡬ쑰둜 κ΅¬μ„±λ˜μ–΄μžˆλŠ” 언어이닀.
  • λ˜ν•œ, μ œμ–΄ ꡬ쑰λ₯Ό ν™œμš©ν•΄ ν”„λ‘œκ·Έλž¨μ˜ 논리적 흐름을 λͺ…ν™•νžˆ ν‘œν˜„ν•  수 있게 ν•΄μ£ΌλŠ” 언어이닀.

  • μš°λ¦¬κ°€ ν˜„λŒ€μ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš©ν•˜λŠ” λ§Žμ€ κ°œλ…λ“€μ΄ ꡬ쑰적 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ λ„μž…μ΄ 됨.
  • 1950λ…„λŒ€ 말에 λ‚˜μ˜¨ μ•Œκ³¨ 60(Algol 60) 은 쑰건문과 λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•˜μ—¬ μ‹€ν–‰ 흐름을 μ œμ–΄ν•˜κ³ , 블둝(block) ꡬ쑰, ν•¨μˆ˜ 호좜 λ“± μ£Όμš” κ°œλ…μ„ λ„μž…ν•˜μ˜€μŒ.
  • μ΄ν›„μ˜ ꡬ쑰적인 ν”„λ‘œκ·Έλž˜λ° 언어인 파슀칼(Pascal, C, λͺ¨λ“ˆλΌ-2) 등에 영ν–₯을 쀌.

(8) λ…Όλ¦¬ν˜• ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

  • ν˜•μ‹ λ…Όλ¦¬λ‘œ 사싀(fact)λ“€κ³Ό κ·œμΉ™(rule)λ“€λ‘œ 이루어진 문제 도메인 λͺ¨λΈμ„ μ •μ˜ν•¨.
  • μ›ν•˜λŠ” κ²°κ³Όλ₯Ό μ–»κΈ° μœ„ν•΄ 문제 도메인에 λŒ€ν•œ 질의λ₯Ό μ£Όμ–΄μ„œ 논리적인 좔둠에 κΈ°μ΄ˆν•œ κ²°κ³Όκ°€ λ‚˜μ˜€κ²Œ ν•˜λŠ” μ„ μ–Έν˜• μ–Έμ–΄μž„.
  • 1970λ…„λŒ€μ— λ“±μž₯ν•˜μ—¬ 1980λ…„λŒ€μ— 인곡지λŠ₯λΆ„μ•Όμ˜ 인기와 λ”λΆˆμ–΄ λ§Žμ€ μ£Όλͺ©μ„ 받은 ν”„λ‘€λ‘œκ·Έ(Prolog)κ°€ λŒ€ν‘œμ μΈ μ˜ˆμž„

(9) 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

  • 객체(object) κ°œλ…μ„ μ •μ˜ν•˜κ³ , 객체에 λŒ€ν•œ μ—°μ‚°(λ©”μ†Œλ“œ)κ³Ό μ„±μ§ˆ(멀버 λ³€μˆ˜)을 μ •μ˜ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λŠ” 언어이닀.
  • ꡬ쑰적인 ν”„λ‘œκ·Έλž˜λ° 언어와 달리 객체 μ€‘μ‹¬μ˜ μ‚¬κ³ μ˜ 틀을 μ œκ³΅ν•΄μ€€λ‹€.
  • 1960λ…„λŒ€λ§: 졜초둜 클래슀 κ°œλ…μ„ κ°–μΆ˜ Simular 67
  • 1980λ…„λŒ€: C++, 슀λͺ°ν†‘-80 λ“±
  • 1990λ…„λŒ€ μ€‘λ°˜: Java -> ν˜„μž¬ κ°€μž₯ λŒ€ν‘œμ μΈ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μž„.

(10) 슀크립트 μ–Έμ–΄

  • μœ λ‹‰μŠ€(Unix)와 같은 운영체제의 관리와 μžλ™ν™”λ₯Ό μœ„ν•΄ λ§Œλ“€μ–΄μ Έ μ‚¬μš©λ˜κΈ° μ‹œμž‘ν•œ μ–Έμ–΄μž„.
  • μ‰˜ 슀크립트(sh, hash, csh λ“±)와 νŒ¨ν„΄ 처리 슀크립트 μ–Έμ–΄(awk, sed)λ“±μ—μ„œ μ‹œμž‘μ΄ 됨.
  • νŽ„(Perl), 파이썬(Python) λ“± 슀크립트 언어듀이 μ›Ή 기반 μ„œλΉ„μŠ€μ—μ„œ 많이 μ‚¬μš©λ˜κ³  있음.

(11) 핡심

  • CPUλŠ” μ–΄μ…ˆλΈ”λ¦¬μ–΄μ™€ λŒ€μ‘μ΄ λ˜λ„λ‘ μ΄ˆκΈ°μ— 섀계가 λœλ‹€.
  • 즉, μ–΄μ…ˆλΈ”λ¦¬μ–΄λΌλŠ” κ·œμ•½μ΄ μ‘΄μž¬ν•œλ‹€λ©΄, κ±°κΈ°μ„œ ADD MOV 와 같은 λͺ…령어와 μ΄μ§„μˆ˜μ™€ λŒ€μ‘μ΄ λ˜λ„λ‘ μ •μ˜λ₯Ό ν•΄λ‘ .
  • 즉, ν•˜λ“œμ›¨μ–΄λ₯Ό 직접 μ œμ–΄ν•  λ•Œ μ‚¬μš©ν•˜λ©΄ μ •ν™•νžˆ μ–΄λ–€ CPU λ™μž‘μ„ μ‹œν‚¬μ§€ 예츑이 κ°€λŠ₯함
  • λ˜ν•œ, κ³ κΈ‰μ–Έμ–΄μ˜ 컴파일러 같은 κ²½μš°μ—λŠ” κ²°κ΅­ λͺ…λ Ήμ–΄λ₯Ό μ΄μ§„μˆ˜λ‘œ λ³€ν™˜ν•  λ•Œ, μ–΄μ…ˆλΈ”λ¦¬μ–΄ μˆ˜μ€€ λͺ…령어에 λŒ€μ‘λ˜λŠ” μ΄μ§„μˆ˜λ‘œ λ³€ν™˜μ„ ν•˜λŠ” κ²ƒμž„.
  • 즉, μ–΄μ…ˆλΈ”λ¦¬μ–΄λ‘œ λ°”κΎΈλŠ” 것은 μ•„λ‹ˆμ§€λ§Œ, μ–΄μ°¨ν”Ό κ²°κ΅­ μ–΄μ…ˆλΈ”λ¦¬μ–΄μ˜ λŒ€μ‘λ˜λŠ” μ΄μ§„μˆ˜λ‘œ λ³€ν™˜μ„ ν•˜λŠ” 과정을 κ±°μΉ¨.
  • ν•˜μ§€λ§Œ, μ–΄μ…ˆλΈ”λ¦¬μ–΄λŠ” λ°”λ‘œ μ΄μ§„μˆ˜μ™€ 맀칭이 λ˜μ–΄ λŒ€μ‘μ΄ 되기 λ•Œλ¬Έμ— 맀우 λΉ λ₯Ό 수 있음.

βœ… 2. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ 파슀 트리

(1) κ°œμš”

  • λͺ¨λ“  μ–Έμ–΄λŠ” μ‚¬μš©λ  수 μžˆλŠ” λ‹¨μ–΄λ“€μ˜ μ§‘ν•©κ³Ό 단어듀이 λ‚˜μ—΄λœ ꡬ쑰λ₯Ό κ°€μ§„λ‹€.
  • μ΄λŸ¬ν•œ κ΅¬μ‘°λŠ” 문법에 따라 λ¬Έμž₯을 μƒμ„±ν•˜κ³ , 각각의 λ¬Έμž₯은 싀세계와 μ—°κ²°λ˜λŠ” 의미λ₯Ό κ°€μ§„λ‹€.

(2) 파슀 트리 λž€?

  • “파슀 트리(Parse Tree)”λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ λ¬Έμž₯을 ꡬ쑰적으둜 λΆ„μ„ν•œ 트리 ꡬ쑰λ₯Ό μ˜λ―Έν•¨.
  • μ‰½κ²Œλ§ν•΄, 컴퓨터가 μ†ŒμŠ€ μ½”λ“œλ₯Ό λ¬Έλ²•μ μœΌλ‘œ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ λ§Œλ“  κ΅¬μ‘°λ„λ‘œ λ³Ό 수 있음.
  • 핡심은 μ»΄νŒŒμΌλŸ¬κ°€ κ²°κ΅­ ν•΄λ‹Ή 파슀 트리 ꡬ쑰λ₯Ό ν™œμš©ν•΄μ„œ λ²ˆμ—­μ„ ν•œλ‹€κ³  이해할 수 있음.
  • 즉, ꡬ문적인 μΈ‘λ©΄μ—μ„œ 해석이 μ˜³μ€μ§€ κ·Έλ₯Έμ§€λ₯Ό μ°Ύμ•„λ‚΄λŠ” λ‹¨κ³„λ‘œ λ³Ό 수 있음.

  • λͺ¨λ“  μ–Έμ–΄λŠ” μ‚¬μš©λ  수 μžˆλŠ” λ‹¨μ–΄λ“€μ˜ μ§‘ν•©κ³Ό 단어듀이 λ‚˜μ—΄λ˜μ–΄ ꡬ쑰에 λŒ€ν•œ κ·œμΉ™(문법)에 따라 λ¬Έμž₯을 μƒμ„±ν•œλ‹€.
  • λ˜ν•œ, 각각의 λ¬Έμž₯은 싀세계와 μ—°κ²°λ˜λŠ” 의미λ₯Ό κ°€μ§€κ²Œ λœλ‹€.
  • λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” ν˜•μ‹ 문법을 μ‚¬μš©ν•΄μ„œ μ–Έμ–΄μ˜ ꡬ쑰λ₯Ό κΈ°μˆ ν•¨.

[ 파슀 트리 μž₯점 ]

  • λ¬Έμž₯의 κ΅¬μ‘°λŠ” 파슀 트리의 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜λ©΄ 이해가 λΉ λ₯΄κ³  λ¬Έλ²•μ˜ λͺ¨ν˜Έμ„±μ„ νŒŒμ•…ν•˜κΈ° 쉬움.

(3) 파슀 트리 - ν˜•μ‹λ¬Έλ²• μ΄λž€?

  • ν˜•μ‹ 문법은 μ–Έμ–΄λ₯Ό μ •μ˜ν•˜λŠ” κ·œμΉ™μ„ μ˜λ―Έν•œλ‹€. ( μžμ—°μ–΄ κ·œμΉ™μ„ ν˜•μ‹μ μœΌλ‘œ ν‘œν˜„ν•œ 것 = ν˜•μ‹ 문법 )
  • μ‰½κ²Œλ§ν•΄, μžμ—°μ–΄λ₯Ό 컴퓨터가 읽을 수 μžˆλŠ” κ·œμΉ™κ³Ό ꡬ쑰둜 λ°”κΎΌ 것을 ν˜•μ‹ 문법이라고 ν•œλ‹€.
  • ν˜•μ‹ 문법은 비단말 기호, 단말 기호, 생성 κ·œμΉ™, μ‹œμž‘ 기호 4κ°€μ§€ μš”μ†Œλ‘œ ꡬ성이 λœλ‹€.
  • μ–Έμ–΄λ‚˜ λ¬Έμž₯을 μˆ˜ν•™μ /ν˜•μ‹μ μœΌλ‘œ μ •μ˜ν•œ κ·œμΉ™μ΄λ‹€.
  • 컴퓨터가 μ΄ν•΄ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆλ„λ‘ μΆ”μƒν™”ν•œ λ¬Έλ²•μž„.
  • νŒŒμŠ€νŠΈλ¦¬λŠ” μ΄λŸ¬ν•œ ν˜•μ‹ 문법을 μ΄μš©ν•΄ λ¬Έμžμ—΄μ„ μƒμ„±ν•œ ꡬ쑰적 ν‘œν˜„μ„ μ˜λ―Έν•œλ‹€.

(4) 파슀 트리 - ν˜•μ‹λ¬Έλ²•μ˜ μš”μ†Œ

[ 단말 μ‹¬λ²Œ ]

  • λ¬Έμž₯을 μ΄λ£¨λŠ” 단어듀을 단말 μ‹¬λ²Œμ΄λΌ 함.(파슀 트리의 λ‹¨λ§λ…Έλ“œμ— 해당됨.)
  • 즉, μ•„λž˜μ˜ ν•˜λ‚˜μ˜ λ…Έλ“œλ§Œ κ°€μ§€κ³  μžˆλŠ” 관사-The , λͺ…사-cat 와 같은 λ…Έλ“œλ“€μ΄ 단말 λ…Έλ“œμ— ν•΄λ‹Ή ν•  수 있음.
  • μžμ—°μ–΄μ—μ„œλŠ” 사전에 λ‚˜μ˜€λŠ” λͺ¨λ“  단어가 단말 μ‹¬λ²Œμ΄ 됨.

[ 비단말 μ‹¬λ²Œ ]

  • 비단말 μ‹¬λ²Œμ€ 단말 μ‹¬λ²Œμ΄ μ•„λ‹ˆλ©΄μ„œ λ³΅ν•©μ μœΌλ‘œ λ‚˜μ—΄λœ 단말 μ‹¬λ²Œκ³Ό 비단말 μ‹¬λ²Œμ˜ μ‘°ν•©μœΌλ‘œ ꡬ성이 됨.
  • 파슀 트리의 λ‚΄λΆ€ λ…Έλ“œμ— 해당이 λœλ‹€. ( 즉, 단말 λ…Έλ“œλ₯Ό μ œμ™Έν•œ λͺ¨λ“  λ…Έλ“œλ‘œ λ³Ό 수 μžˆμ„ λ“― )
  • μžμ—°μ–΄μ—μ„œλŠ” <λͺ…사ꡬ>, <동사ꡬ>, <λ¬Έμž₯> 등이 비단말 μ‹¬λ²Œμž„.

[ 생성 κ·œμΉ™ ]

  • ν•˜λ‚˜μ˜ 비단말 μ‹¬λ²Œμ΄ λ‹€λ₯Έ 단말 μ‹¬λ²Œμ΄λ‚˜ 비단말 μ‹¬λ²Œλ‘œ λŒ€μ²΄λ˜λŠ” κ·œμΉ™μ„ μ˜λ―Έν•œλ‹€.
  • μ‰½κ²Œλ§ν•΄, μœ„μ˜ 관사, λͺ…사, 동사 λ“±μ˜ 단말 μ‹¬λ²Œλ“€μ„ μ‘°ν•©ν•΄μ„œ λ¬Έμž₯을 λ§Œλ“€μ–΄μ£ΌλŠ” κ·œμΉ™μ„ μ˜λ―Έν•œλ‹€.
  • 단말 λ…Έλ“œμ— 'the' 'cat' 'chased' 'the' 'mouse' 이런 단어가 있으면 κ·œμΉ™μ— 맞게 “the cat chased the mouse” μ΄λ ‡κ²Œ λ§Œλ“€μ–΄μ€Œ.

[ μ‹œμž‘ μ‹¬λ²Œ ]

  • κ°€μž₯ μƒμœ„ κ³„μΈ΅μ˜ 비단말 μ‹¬λ²Œλ‘œ 보톡 <λ¬Έμž₯>이 μ‹œμž‘ μ‹¬λ²Œμ΄ λœλ‹€.
  • 파슀 트리의 κ·Έλƒ₯ 루트 λ…Έλ“œμ— 해당이 λœλ‹€κ³  보면 됨.

(5) 파슀트리 - ꡬ문 뢄석

  • μœ„μ™€ 같이 νŒŒμŠ€νŠΈλ¦¬λŠ” λ¬Έμž₯의 ꡬ쑰λ₯Ό νŒŒμ•…ν•˜κΈ° μœ„ν•œ ꡉμž₯히 쒋은 방법이닀. ( 트리 ꡬ쑰의 자료ꡬ쑰 ν•œ ν˜•νƒœλ‘œ λ³Ό 수 있음. )
  • 이 처럼 파슀트리λ₯Ό ν™œμš©ν•΄ λ¬Έμž₯을 λ§Œλ“€μ–΄λ‚΄λŠ” 과정을 ꡬ문 뢄석 과정이라고 ν•œλ‹€.
  • 파슀트리둜 λ§Œλ“€μ–΄μ§€λŠ” μƒμ„±κ·œμΉ™λ“€μ΄ λͺ…ν™•ν•˜κ²Œ μ •μ˜λ˜μ–΄ μžˆμ–΄μ•Ό 였λ₯˜κ°€ μ—†μŒ.

βœ… 3. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ 뢄석

(1) μ‹€ν–‰ κ°€λŠ₯ μ½”λ“œ

  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨ μ½”λ“œ -> μ‚¬λžŒμ΄ 읽고 μ΄ν•΄ν•˜κΈ°κ°€ 쉬움.
  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨ μ½”λ“œ -> 컴퓨터가 이해할 수 μ—†μŒ.
  • 즉, μžμ—°μ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ„ λΆ„μ„ν•˜μ—¬ κΈ°κ³„μ–΄μ˜ 이진 μ½”λ“œλ‘œ λ°”κΎΈλŠ” λ³€ν™˜ 과정을 거쳐야함.
  • 이 κ³Όμ •μ—μ„œ μ–΄νœ˜ 뢄석을 ν•΄μ•Ό λͺ¨ν˜Έν•¨μ΄ μ—†μ–΄μ Έ μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œλ‘œ λ°”κΏ€ 수 있음.

[ μ–΄νœ˜ 뢄석 ]

[ μ–΄νœ˜ 뢄석 ]
μ˜ˆμ‹œ λ¬Έμž₯: "the cat chased the mouse"
[ κ³Όμ • ]
1. λ¬Έμžμ—΄μ„ 단어 λ‹¨μœ„λ‘œ 뢄리
- 'the , 'cat' , 'chased' , 'the' , 'mouse'
2. 각 단어에 토큰 λΆ€μ—¬
- 'the'= DET(관사), 'cat'= N(λͺ…사), 'chased'= V(동사), 'mouse'= N(λͺ…사)
  • μž…λ ₯된 λ¬Έμžμ—΄μ„ 의미 μžˆλŠ” λ‹¨μœ„(Token)둜 λ‚˜λˆ„λŠ” 과정이닀.
[ μ–΄νœ˜ 뢄석 ]
int x = 5 + 3;
int : ν‚€μ›Œλ“œ(KEYWORD)
x : μ‹λ³„μž(IDENTIFIER)
= : μ—°μ‚°μž(ASSIGN_OP)
5 : μƒμˆ˜(NUMBER)
+ : μ—°μ‚°μž(ADD_OP)
3 : μƒμˆ˜(NUMBER)
; : κ΅¬λΆ„μž(SEMICOLON)
  • 이런 μ½”λ“œ μžμ²΄λ„ λ§ˆμ°¬κ°€μ§€λ‘œ λ¬Έμžμ—΄λ‘œ 보고 의미 μžˆλŠ” λ‹¨μœ„(Token)둜 λ‚˜λˆ„κ²Œ λœλ‹€.
  • 생성 κ·œμΉ™μ€ μ‚¬μ „μœΌλ‘œ λ³Ό 수 있으며, int = ν‚€μ›Œλ“œ μ΄λŸ°μ‹μœΌλ‘œ μ •μ˜ λ˜μ–΄μžˆμ–΄μ„œ, λΉ„κ΅ν•˜λ©΄μ„œ μ–΄νœ˜λ₯Ό λΆ„μ„ν•˜κ²Œ 됨.
  • 즉, 생성 κ·œμΉ™μ— μ •μ˜λ˜μ§€ μ•Šμ€ λ‚΄μš©μ˜ 단어λ₯Ό μ‚¬μš©ν•˜κ²Œ 되면, 였λ₯˜λ₯Ό 내뱉을 수 있음.

(2) ν”„λ‘œκ·Έλž¨ μ½”λ“œμ˜ 뢄석

  • μ‚¬λžŒμ΄ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨μ€ μ–΄νœ˜ 뢄석과 ꡬ문 뢄석을 톡해 ν”„λ‘œκ·Έλž¨μ— λ¬Έμ œκ°€ μ—†μŒμ„ ν™•μΈν•˜κ²Œ λœλ‹€.
  • μ–΄νœ˜ 뢄석 및 ꡬ문 뢄석 과정을 ν†΅κ³Όν•˜λ©΄ μ½”λ“œ 생성 λ‹¨κ³„μ—μ„œ μ‹€μ œ μ‹€ν–‰ κ°€λŠ₯ν•œ 이진 기계어 μ½”λ“œκ°€ 생성이 됨.
  • μˆœμ„œ: μ–΄νœ˜ 뢄석 -> ꡬ문 뢄석 -> μ½”λ“œ 생성
  • 참고둜 ꡬ문 뢄석 λ‹¨κ³„μ—μ„œ 생성 κ·œμΉ™μ„ μ‚¬μš©ν•΄μ„œ 토큰을 μ‘°ν•©ν•˜κ²Œ λ˜λŠ” κ²ƒμž„. ( μ–΄νœ˜ λΆ„μ„μ—μ„œ 생성 κ·œμΉ™ μ‚¬μš© x )

[ ꡬ문 뢄석 ]

          S
          β”‚
     Declaration
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
 TYPE IDENTIFIER '='  Expression   ';'
  β”‚       β”‚       β”‚        β”‚
 'int'   'x'      β”‚       '+'
                  β”‚      /   \
                 '5'   '3'
  • μ–΄νœ˜ λΆ„μ„μ˜ 결과둜 λ‚˜μ˜¨ 토큰듀을 생성 κ·œμΉ™μ„ μ‚¬μš©ν•΄ 토큰을 μ‘°ν•©ν•˜λŠ” κ³Όμ •μž„.
  • 즉, 토큰듀을 생성 κ·œμΉ™μ— 따라 문법을 검증 ν•˜κ³  μ‘°ν•©ν•˜μ—¬ 파슀 트리λ₯Ό λ§Œλ“œλŠ” κ³Όμ •μž„.

(3) μ‹€ν–‰μ½”λ“œμ˜ 생성

  • ν”„λ‘œκ·Έλž˜λ° 언어에 λŒ€ν•œ μ–΄νœ˜ 뢄석 미치 ꡬ문 λΆ„μ„μ˜ 결과둜 파슀 트리 ꡬ쑰가 μƒκΈ°κ²Œ 됨.
  • 이후, λ³€μˆ˜ μƒμˆ˜ μ œμ–΄ 흐름 등이 결정이 되면 기계어 이진 μ½”λ“œκ°€ 생성이 됨.

(4) 핡심 정리

  • μ–΄νœ˜ 뢄석: 토큰을 생성 κ·œμΉ™κ³Ό 같은 사전을 ν†΅ν•΄μ„œ μ •μ˜λœ 문법을 λ§€μΉ­μ‹œμΌœμ€˜μ„œ 토큰을 λ§Œλ“€μ–΄λ‚΄λŠ” μ—­ν• μž„.
  • ꡬ문 뢄석: μ–΄νœ˜ λΆ„μ„μœΌλ‘œ λ§Œλ“€μ–΄μ§„ 토큰을 파슀 트리 ν˜•μ‹μœΌλ‘œ λ§Œλ“€μ–΄μ„œ ꡬ쑰화 μ‹œμΌœμ£ΌλŠ” 역할을 함.
  • 의미 뢄석: νŠΈλ¦¬κ°€ 의미적으둜 λ§žλŠ”μ§€ ν™•μΈν•˜λŠ” 과정이며, νƒ€μž… 검사, λ³€μˆ˜ μ„ μ–Έ μ—¬λΆ€ 확인등을 함.
  • μ½”λ“œ 생성: 트리 기반으둜 기계가 μ‹€ν–‰ν•  λͺ…λ Ήμ–΄ 생성 -> μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œλ‘œ λ³€ν™˜ν•¨.
  • 이것듀은 컴파일러 λ‚΄λΆ€μ—μ„œ μΌμ–΄λ‚˜λŠ” μžμ—°μ–΄ -> κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•˜λŠ” 과정이닀.

βœ… 4. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ 곡톡 κ°œλ…

  • μ–Έμ–΄λ§ˆλ‹€ 문법은 달라도 λŒ€λΆ€λΆ„ κ³΅ν†΅μ μœΌλ‘œ κ°€μ§€λŠ” 기본적인 μš”μ†Œλ‚˜ ꡬ쑰λ₯Ό μ˜λ―Έν•œλ‹€.
  • λŒ€ν‘œμ μœΌλ‘œ λŒ€μž…λ¬Έ, λ³€μˆ˜, 데이터 νƒ€μž…, μ œμ–΄λ¬Έ, 반볡문, μ—°μ‚°μž, ν•¨μˆ˜ 등이 있음.

(1) λŒ€μž…λ¬Έ

[ λŒ€μž…λ¬Έ : = ]
int age = 20;
age = 30;
  • λŒ€μž…λ¬Έ(ν• λ‹Ήλ¬Έ)은 λ³€μˆ˜λ‚˜ κΈ°μ–΅μž₯치 μ£Όμ†Œμ— 값을 μ €μž₯ν•˜λŠ” 역할을 ν•œλ‹€.
  • λŒ€μž…λ¬Έμ€ λͺ…λ Ήν˜• μ–Έμ–΄μ˜ κ°€μž₯ μ£Όμš”ν•œ κΈ°λŠ₯ μ€‘μ˜ ν•˜λ‚˜μ΄λ‹€.

  • <μˆ˜μ‹1> 은 μ™Όμͺ½(l-value) 라고 ν•˜λ©°, 값이 μ €μž₯될 μœ„μΉ˜(κΈ°μ–΅μž₯치의 μ£Όμ†Œ)λ₯Ό 가리킨닀.
  • <μˆ˜μ‹2> λŠ” 였λ₯Έμͺ½(r-value) 라고 ν•˜λ©°, κ°’ λ˜λŠ” μ£Όμ†Œκ°’ 등을 μ˜λ―Έν•˜λ©°, <μˆ˜μ‹1> μ£Όμ†Œκ°’ 곡간에 데이터λ₯Ό 넣을 수 있음.

  • μœ„μ™€ 같이 x μ£Όμ†Œκ°’μ— x 의 κ°’ + 1을 λ”ν•œ 값을 x 에 λ‹€μ‹œ λ„£λŠ” κ²½μš°μ΄λ‹€.

(2) 데이터 νƒ€μž… 검사

  • 데이터 νƒ€μž…μ€ 연산에 μ‚¬μš©λ˜λŠ” μƒμˆ˜ λ˜λŠ” λ³€μˆ˜μ˜ μ’…λ₯˜λ₯Ό μ§€μ •ν•΄μ£ΌλŠ” 역할을 ν•œλ‹€.
  • 데이터 νƒ€μž…μ€ ν•΄λ‹Ή λ³€μˆ˜μ˜ λ©”λͺ¨λ¦¬ 곡간 ν• λ‹Ήμ˜ 크기λ₯Ό μ •ν•˜λŠ”λ° μ‚¬μš©μ΄ 될 수 있음.
  • μ—°μ‚° μˆ˜ν–‰ μ‹œμ— ν˜Έν™˜μ„±μ΄ μ—†λŠ” λ°μ΄ν„°νƒ€μž…κ°„μ˜ 연산을 λ§‰μ•„μ„œ μ—°μ‚°μ˜ 결과둜 μ–»κ²Œ λ˜λŠ” μ •λ³΄μ˜ 손싀을 μ΅œμ†Œν™”ν• λ•Œ μ‚¬μš©.
  • 즉, 데이터 νƒ€μž…μœΌλ‘œ μ •μˆ˜, μ‹€μˆ˜, 문자 인지 등을 μ •ν•΄μ£ΌλŠ” μ—­ν• μž„.
  • μ»΄νŒŒμΌλŸ¬λŠ” μ •μˆ˜μ™€ μ‹€μˆ˜μ˜ λ§μ…ˆκ³Ό 같은 κ²ƒμ˜ ν˜•μ‹μ„ λ§žμΆ”κΈ° μœ„ν•΄μ„œ ν˜• 검사λ₯Ό ν•˜κ²Œ 됨.

[ 컴파일러 - ν˜• 검사 ]

  • 정적(static) ν˜• 검사: 컴파일 κ³Όμ •μ—μ„œ μ΄λ£¨μ–΄μ§€λŠ” ν˜• 검사 방식이닀.
  • 동적(dynamic) ν˜• 검사: ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰(run-time) 쀑에 μ΄λ£¨μ–΄μ§€λŠ” ν˜• 검사 방식이닀.
  • μ–Έμ–΄ λ§ˆλ‹€ ν˜•μ‹μ΄ λ‹¬λΌμ„œ, μžλ™μœΌλ‘œ ν˜• λ³€ν™˜μ„ ν•΄μ£ΌλŠ” 언어도 있고 μ•„λ‹Œ 언어도 있음.

'πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅ > πŸ’»μ»΄ν“¨ν„°κ³Όν•™ 개둠' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[컴퓨터과학 개둠] 13κ°• - λ°μ΄ν„°λ² μ΄μŠ€(1)  (0) 2025.11.10
[컴퓨터과학 개둠] 12κ°• - ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄(2)  (0) 2025.11.10
[컴퓨터과학 개둠] 10κ°• - 컴퓨터 ꡬ쑰(2)  (0) 2025.11.10
[컴퓨터과학 개둠] 9κ°• - 컴퓨터 ꡬ쑰(1)  (0) 2025.11.10
[컴퓨터과학 개둠] 8κ°• - 운영체제(2)  (9) 2025.11.10
'πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅/πŸ’»μ»΄ν“¨ν„°κ³Όν•™ 개둠' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [컴퓨터과학 개둠] 13κ°• - λ°μ΄ν„°λ² μ΄μŠ€(1)
  • [컴퓨터과학 개둠] 12κ°• - ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄(2)
  • [컴퓨터과학 개둠] 10κ°• - 컴퓨터 ꡬ쑰(2)
  • [컴퓨터과학 개둠] 9κ°• - 컴퓨터 ꡬ쑰(1)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    였늘
    μ–΄μ œ
    • 전체보기 (189)
      • πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅ (49)
        • βš™οΈμ»΄ν“¨ν„°μ˜ 이해 (11)
        • πŸ’»μ»΄ν“¨ν„°κ³Όν•™ 개둠 (14)
        • πŸ”’μžλ£Œκ΅¬μ‘° (9)
        • πŸŒμœ λΉ„μΏΌν„°μŠ€ μ»΄ν“¨νŒ… (11)
        • πŸ›οΈμ„Έκ³„μ˜μ •μΉ˜μ™€κ²½μ œ (3)
        • πŸ–₯️컴퓨터과학과 (1)
      • πŸ› οΈBackend (64)
        • πŸ“šλ°±μ—”λ“œ 곡뢀 (4)
        • β˜•Java (23)
        • 🌳Spring (13)
        • βš™οΈC (8)
        • ⚑Python (13)
        • JavaScript (1)
        • πŸ›’οΈDatabase (0)
        • Algorithm Problem Solving (2)
      • 🌐 Network (7)
        • πŸ“œHTTP (7)
      • πŸš€DevOps (1)
      • β›ΊμŠ€νŒŒλ₯΄νƒ€μ½”λ”©ν΄λŸ½ (64)
      • 정보 (2)
      • 정리가 ν•„μš”ν•œ κΈ€ (2)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

    • GitHub
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    ν•¨μˆ˜
    μœ λΉ„μΏΌν„°μŠ€
    λ°°μ—΄
    컴퓨터과학 개둠
    컴파일러
    spring
    λ°©ν†΅λŒ€
    자료ꡬ쑰
    C
    Python
    μ»΄ν“¨ν„°μ˜ 이해
    Cμ–Έμ–΄
    파이썬
    μžλ°”
    Java
    λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅
    μž…μΆœλ ₯
    μœ λΉ„μΏΌν„°μŠ€ μ»΄ν“¨νŒ…κ°œλ‘ 
    C μ–Έμ–΄
    λ°©μ†‘λŒ€
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.1
junbin2
[컴퓨터과학 개둠] 11κ°• - ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄(1)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”