[λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive] 4μž₯ λ³€μˆ˜
Programming Language/JavaScript

[λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive] 4μž₯ λ³€μˆ˜

728x90
πŸ‘©‍πŸ’» Java 개발자의 JavaScript 곡뢀 기둝

JavaScriptλ₯Ό 처음 κ³΅λΆ€ν•˜λŠ” μž…μž₯μ—μ„œ
Java 언어와 λΉ„κ΅ν•˜μ—¬ λ‹€λ₯Έ μ μ΄λ‚˜, ν”„λ‘œκ·Έλž˜λ° 곡뢀λ₯Ό ν•˜λ©° μƒˆλ‘­κ²Œ μ•Œκ²Œ 된 λ‚΄μš©μ„ μœ„μ£Όλ‘œ μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.

 

πŸ“‘ 4.1 λ³€μˆ˜λž€ 무엇인가? μ™œ ν•„μš”ν•œκ°€?

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 개발자의 직접적인 λ©”λͺ¨λ¦¬ μ œμ–΄λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” κΈ°μ–΅ν•˜κ³  싢은 값을 λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜κ³ , μ €μž₯된 값을 읽어 λ“€μ—¬ μž¬μ‚¬μš©ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜λΌλŠ” λ©”μ»€λ‹ˆμ¦˜μ„ μ œκ³΅ν•œλ‹€.

λ³€μˆ˜λŠ” ν•˜λ‚˜μ˜ 값을 μ €μž₯ν•˜κΈ° μœ„ν•΄ ν™•λ³΄ν•œ λ©”λͺ¨λ¦¬ 곡간 자체 λ˜λŠ” κ·Έ λ©”λͺ¨λ¦¬ 곡간을 μ‹λ³„ν•˜κΈ° μœ„ν•΄ 뢙인 이름을 λ§ν•œλ‹€.

 

λ³€μˆ˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ 컴파일러 λ˜λŠ” 인터프리터에 μ˜ν•΄ 값이 μ €μž₯된 λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ£Όμ†Œλ‘œ μΉ˜ν™˜λ˜μ–΄ μ‹€ν–‰λœλ‹€.

λ”°λΌμ„œ κ°œλ°œμžκ°€ 직접 λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό 톡해 값을 μ €μž₯ν•˜κ³  μ°Έμ‘°ν•  ν•„μš”κ°€ μ—†κ³ , λ³€μˆ˜λ₯Ό 톡해 μ•ˆμ „ν•˜κ²Œ 값에 μ ‘κ·Όν•  수 μžˆλ‹€.

 

λ³€μˆ˜μ— 값을 μ €μž₯ν•˜λŠ” 것을 ν• λ‹Ή(assignment)이라 ν•˜κ³ ,

λ³€μˆ˜μ— μ €μž₯된 값을 읽어 λ“€μ΄λŠ” 것을 μ°Έμ‘°(reference)라 ν•œλ‹€.

 

πŸ“‘ 4.2 μ‹λ³„μž

μ‹λ³„μžλŠ” 값이 μ €μž₯λ˜μ–΄ μžˆλŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œμ™€ 맀핑 관계λ₯Ό 맺으며,

이 맀핑 정보도 λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜μ–΄μ•Ό ν•œλ‹€.

 

μ‹λ³„μžλŠ” 값이 μ•„λ‹ˆλΌ λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό κΈ°μ–΅ν•˜κ³  μžˆλ‹€.

μ‹λ³„μžλ‘œ 값을 κ΅¬λ³„ν•΄μ„œ μ‹λ³„ν•œλ‹€λŠ” 것은 μ‹λ³„μžκ°€ κΈ°μ–΅ν•˜κ³  μžˆλŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό 톡해

λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯된 값에 μ ‘κ·Όν•  수 μžˆλ‹€λŠ” μ˜λ―Έλ‹€.

즉, μ‹λ³„μžλŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œμ— 뢙인 이름이라고 ν•  수 μžˆλ‹€.

 

πŸ“‘ 4.3 λ³€μˆ˜ μ„ μ–Έ

λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ λ°˜λ“œμ‹œ 선언이 ν•„μš”ν•˜λ‹€.

λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•ŒλŠ” var, let, const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.

 

var ν‚€μ›Œλ“œλŠ” μ—¬λŸ¬ 단점이 μžˆλ‹€.

κ°€μž₯ λŒ€ν‘œμ μΈ 것이 블둝 레벨 μŠ€μ½”ν”„λ₯Ό μ§€μ›ν•˜μ§€ μ•Šκ³  ν•¨μˆ˜ 레벨 μŠ€μ½”ν”„λ₯Ό μ§€μ›ν•œλ‹€λŠ” 것이닀.

이둜 인해 μ˜λ„μΉ˜ μ•Šκ²Œ μ „μ—­ λ³€μˆ˜κ°€ μ„ μ–Έλ˜μ–΄ μ‹¬κ°ν•œ λΆ€μž‘μš©μ΄ λ°œμƒν•˜κΈ°λ„ ν•œλ‹€.

ES6μ—μ„œ letκ³Ό const ν‚€μ›Œλ“œλ₯Όλ„μž…ν•œ μ΄μœ λŠ” var ν‚€μ›Œλ“œμ˜ μ—¬λŸ¬ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄μ„œλ‹€.

 

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λ³€μˆ˜ 선언을 λ‹€μŒκ³Ό 같은 2단계에 거쳐 μˆ˜ν–‰ν•œλ‹€.

  1. μ„ μ–Έ 단계: λ³€μˆ˜ 이름을 λ“±λ‘ν•΄μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 λ³€μˆ˜μ˜ 쑴재λ₯Ό μ•Œλ¦°λ‹€.
  2. μ΄ˆκΈ°ν™” 단계: 값을 μ €μž₯ν•˜κΈ° μœ„ν•œ λ©”λͺ¨λ¦¬ 곡간을 ν™•λ³΄ν•˜κ³  μ•”λ¬΅μ μœΌλ‘œ undefinedλ₯Ό ν• λ‹Ήν•΄ μ΄ˆκΈ°ν™”ν•œλ‹€.

 

λ³€μˆ˜ 이름을 λΉ„λ‘―ν•œ λͺ¨λ“  μ‹λ³„μžλŠ” μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ— λ“±λ‘λœλ‹€.

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μ†ŒμŠ€μ½”λ“œλ₯Ό ν‰κ°€ν•˜κ³  μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ ν™˜κ²½μ„ μ œκ³΅ν•˜κ³ 

μ½”λ“œμ˜ μ‹€ν–‰ κ²°κ³Όλ₯Ό κ΄€λ¦¬ν•˜λŠ” μ˜μ—­μ΄λ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό 톡해 μ‹λ³„μžμ™€ μŠ€μ½”ν”„λ₯Ό κ΄€λ¦¬ν•œλ‹€.

λ³€μˆ˜ 이름과 λ³€μˆ˜ 값은 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ 내에 ν‚€/κ°’ ν˜•μ‹μΈ 객체둜 λ“±λ‘λ˜μ–΄ κ΄€λ¦¬λœλ‹€.

 

λ§Œμ•½ μ„ μ–Έν•˜μ§€ μ•Šμ€ μ‹λ³„μžμ— μ ‘κ·Όν•˜λ©΄ ReferenceError(μ°Έμ‘° μ—λŸ¬)κ°€ λ°œμƒν•œλ‹€.

ReferenceErrorλŠ” μ‹λ³„μžλ₯Ό 톡해 값을 μ°Έμ‘°ν•˜λ € ν–ˆμ§€λ§Œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 λ“±λ‘λœ μ‹λ³„μžλ₯Ό 찾을 수 없을 λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬λ‹€.

 

πŸ“‘ 4.4 λ³€μˆ˜ μ„ μ–Έμ˜ μ‹€ν–‰ μ‹œμ κ³Ό λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 μ†ŒμŠ€μ½”λ“œλ₯Ό ν•œ 쀄씩 순차적으둜 μ‹€ν–‰ν•˜κΈ°μ— μ•žμ„œ λ¨Όμ € μ†ŒμŠ€μ½”λ“œμ˜ 평가 과정을 κ±°μΉ˜λ©΄μ„œ μ†ŒμŠ€μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•œ μ€€λΉ„λ₯Ό ν•œλ‹€.

μ΄λ•Œ μ†ŒμŠ€μ½”λ“œ 싀행을 μœ„ν•œ μ€€λΉ„ 단계인 μ†ŒμŠ€μ½”λ“œμ˜ 평가 κ³Όμ •μ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λ³€μˆ˜ 선언을 ν¬ν•¨ν•œ λͺ¨λ“  μ„ μ–Έλ¬Έ(λ³€μˆ˜ μ„ μ–Έλ¬Έ, ν•¨μˆ˜ μ„ μ–Έλ¬Έ λ“±)을 μ†ŒμŠ€μ½”λ“œμ—μ„œ μ°Ύμ•„λ‚΄ λ¨Όμ € μ‹€ν–‰ν•œλ‹€.

그리고 μ†ŒμŠ€μ½”λ“œμ˜ 평가 과정이 λλ‚˜λ©΄ λΉ„λ‘œμ†Œ λ³€μˆ˜ 선언을 ν¬ν•¨ν•œ λͺ¨λ“  선언문을 μ œμ™Έν•˜κ³  μ†ŒμŠ€μ½”λ“œλ₯Ό ν•œ 쀄씩 순차적으둜 μ‹€ν–‰ν•œλ‹€.

즉, μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λ³€μˆ˜ 선언이 μ†ŒμŠ€μ½”λ“œμ˜ 어디에 μžˆλ“  상관없이 λ‹€λ₯Έ μ½”λ“œλ³΄λ‹€ λ¨Όμ € μ‹€ν–‰ν•œλ‹€.

λ”°λΌμ„œ λ³€μˆ˜ 선언이 μ†ŒμŠ€μ½”λ“œμ˜ 어디에 μœ„μΉ˜ν•˜λŠ”μ§€μ™€ 상관없이 μ–΄λ””μ„œλ“ μ§€ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  수 μžˆλ‹€.

 

λ³€μˆ˜ 선언문이 μ½”λ“œμ˜ μ„ λ‘λ‘œ λŒμ–΄ μ˜¬λ €μ§„ κ²ƒμ²˜λŸΌ λ™μž‘ν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 고유의 νŠΉμ§•μ„ λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…μ΄λΌ ν•œλ‹€.

λ³€μˆ˜ 선언뿐 μ•„λ‹ˆλΌ var, let, const, function, function*, class ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μ„ μ–Έν•˜λŠ” λͺ¨λ“  μ‹λ³„μž(λ³€μˆ˜, ν•¨μˆ˜, 클래슀 λ“±)λŠ” ν˜Έμ΄μŠ€νŒ… λœλ‹€.

λͺ¨λ“  선언문은 λŸ°νƒ€μž„ 이전 λ‹¨κ³„μ—μ„œ λ¨Όμ € μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

πŸ“‘ 4.5 κ°’μ˜ ν• λ‹Ή

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λ³€μˆ˜ μ„ μ–Έκ³Ό κ°’μ˜ 할당을 ν•˜λ‚˜μ˜ 문으둜 단좕 ν‘œν˜„ν•΄λ„ λ³€μˆ˜ μ„ μ–Έκ³Ό κ°’μ˜ 할당을 2개의 문으둜 λ‚˜λˆ„μ–΄ 각각 μ‹€ν–‰ν•œλ‹€.

μ΄λ•Œ μ£Όμ˜ν•  점은 λ³€μˆ˜ μ„ μ–Έκ³Ό κ°’μ˜ ν• λ‹Ήμ˜ μ‹€ν–‰ μ‹œμ μ΄ λ‹€λ₯΄λ‹€λŠ” 것이닀.

λ³€μˆ˜ 선언은 λŸ°νƒ€μž„ 이전에 λ¨Όμ € μ‹€ν–‰λ˜μ§€λ§Œ, κ°’μ˜ 할당은 λŸ°νƒ€μž„μ— μ‹€ν–‰λœλ‹€.

 

λ³€μˆ˜μ— 값을 ν• λ‹Ήν•  λ•ŒλŠ” 이전 κ°’ undefinedκ°€ μ €μž₯λ˜μ–΄ 있던 λ©”λͺ¨λ¦¬ 곡간을 μ§€μš°κ³  κ·Έ λ©”λͺ¨λ¦¬ 곡간에 ν• λ‹Ή κ°’ 80을 μƒˆλ‘­κ²Œ μ €μž₯ν•˜λŠ” 것이 μ•„λ‹ˆλΌ

μƒˆλ‘œμš΄ λ©”λͺ¨λ¦¬ 곡간을 ν™•λ³΄ν•˜κ³  그곳에 ν• λ‹Ή κ°’ 80을 μ €μž₯ν•œλ‹€λŠ” 점에 μ£Όμ˜ν•˜μž.

 

πŸ“‘ 4.6 κ°’μ˜ μž¬ν• λ‹Ή

var ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•œ λ³€μˆ˜λŠ” 값을 μž¬ν• λ‹Ήν•  수 μžˆλ‹€.

μž¬ν• λ‹Ήμ€ ν˜„μž¬ λ³€μˆ˜μ— μ €μž₯된 값을 버리고 μƒˆλ‘œμš΄ 값을 μ €μž₯ν•˜λŠ” 것이닀.

var ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•œ λ³€μˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— undefined둜 μ΄ˆκΈ°ν™”λ˜κΈ° λ•Œλ¬Έμ— μ—„λ°€νžˆ λ§ν•˜μžλ©΄ λ³€μˆ˜μ— 처음으둜 값을 ν• λ‹Ήν•˜λŠ” 것도 사싀은 μž¬ν• λ‹Ήμ΄λ‹€.

 

ES6μ—μ„œ λ„μž…λœ const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ μ„ μ–Έν•œ λ³€μˆ˜λŠ” μž¬ν• λ‹Ήμ΄ κΈˆμ§€λœλ‹€.

즉, const ν‚€μ›Œλ“œλŠ” 단 ν•œ 번만 ν• λ‹Ήν•  수 μžˆλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.

λ”°λΌμ„œ const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μƒμˆ˜λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.

 

μž¬ν• λ‹ΉμœΌλ‘œ 인해 μ–΄λ–€ μ‹λ³„μžμ™€λ„ μ—°κ²°λ˜μ–΄ μžˆμ§€ μ•Šμ€ λΆˆν•„μš”ν•œ 값듀은 가비지 μ½œλ ‰ν„°μ— μ˜ν•΄ λ©”λͺ¨λ¦¬μ—μ„œ μžλ™ ν•΄μ œλœλ‹€.

단, λ©”λͺ¨λ¦¬μ—μ„œ μ–Έμ œ ν•΄μ œλ μ§€λŠ” μ˜ˆμΈ‘ν•  수 μ—†λ‹€.

 

가비지 μ½œλ ‰ν„°λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν• λ‹Ήν•œ λ©”λͺ¨λ¦¬ 곡간을 주기적으둜 κ²€μ‚¬ν•˜μ—¬ 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λ₯Ό ν•΄μ œν•˜λŠ” κΈ°λŠ₯을 λ§ν•œλ‹€.

더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λž€, μ–΄λ–€ μ‹λ³„μžλ„ μ°Έμ‘°ν•˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬ 곡간을 μ˜λ―Έν•œλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 가비지 μ½œλ ‰ν„°λ₯Ό λ‚΄μž₯ν•˜κ³  μžˆλŠ” λ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λ‘œμ„œ 가비지 μ½œλ ‰ν„°λ₯Ό 톡해 λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό λ°©μ§€ν•œλ‹€.

 

μžλ°”μŠ€ν¬λ¦½νŠΈ 같은 λ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λŠ” λ©”λͺ¨λ¦¬μ˜ ν• λ‹Ή 및 ν•΄μ œλ₯Ό μœ„ν•œ λ©”λͺ¨λ¦¬ 관리 κΈ°λŠ₯을 μ–Έμ–΄ μ°¨μ›μ—μ„œ λ‹΄λ‹Ήν•˜κ³  개발자의 직접적인 λ©”λͺ¨λ¦¬ μ œμ–΄λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

즉, κ°œλ°œμžκ°€ λͺ…μ‹œμ μœΌλ‘œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³  ν•΄μ œν•  수 μ—†λ‹€.

λ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λŠ” 개발자의 μ—­λŸ‰μ— μ˜μ‘΄ν•˜λŠ” 뢀뢄이 μƒλŒ€μ μœΌλ‘œ μž‘μ•„μ Έ μ–΄λŠ 정도 μΌμ •ν•œ 생산성을 확보할 수 μžˆλ‹€λŠ” μž₯점이 μžˆμ§€λ§Œ, μ„±λŠ₯ λ©΄μ—μ„œ μ–΄λŠ μ •λ„μ˜ 손싀은 κ°μˆ˜ν•  μˆ˜λ°–μ— μ—†λ‹€.

반면, C 언어와 같은 μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λŠ” λ©”λͺ¨λ¦¬ μ œμ–΄λ₯Ό κ°œλ°œμžκ°€ 주도할 수 μžˆμœΌλ―€λ‘œ 개발자의 μ—­λŸ‰μ— 따라 졜적의 μ„±λŠ₯을 확보할 수 μžˆμ§€λ§Œ, κ·Έ λ°˜λŒ€μ˜ 경우 치λͺ…적 였λ₯˜λ₯Ό 생산할 κ°€λŠ₯성도 μžˆλ‹€.

 

πŸ“‘ 4.7 μ‹λ³„μž 넀이밍 κ·œμΉ™

μ‹λ³„μžλŠ” μ–΄λ–€ 값을 κ΅¬λ³„ν•΄μ„œ 식별해 λ‚Ό 수 μžˆλŠ” κ³ μœ ν•œ 이름을 λ§ν•œλ‹€.

 

μ‹λ³„μžλŠ” λ‹€μŒκ³Ό 같은 넀이밍 κ·œμΉ™μ„ μ€€μˆ˜ν•΄μ•Ό ν•œλ‹€.

  • μ‹λ³„μžλŠ” 특수문자λ₯Ό μ œμ™Έν•œ 문자, 숫자, μ–Έλ”μŠ€μ½”μ–΄(_), λ‹¬λŸ¬ 기호($)λ₯Ό 포함할 수 μžˆλ‹€.
  • 단, μ‹λ³„μžλŠ” 숫자둜 μ‹œμž‘ν•˜λŠ” 것은 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ˜ˆμ•½μ–΄λŠ” μ‹λ³„μžλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€.

λ³€μˆ˜ 이름도 μ‹λ³„μžμ΄λ―€λ‘œ 넀이밍 κ·œμΉ™μ„ 따라야 ν•œλ‹€.

 

λ³€μˆ˜ 이름은 λ³€μˆ˜μ˜ 쑴재 λͺ©μ μ„ μ‰½κ²Œ 이해할 수 μžˆλ„λ‘ 의미λ₯Ό λͺ…ν™•νžˆ ν‘œν˜„ν•΄μ•Ό ν•œλ‹€.

쒋은 λ³€μˆ˜ 이름은 μ½”λ“œμ˜ 가독성을 높인닀.

λ³€μˆ˜ 선언에 λ³„λ„μ˜ 주석이 ν•„μš”ν•˜λ‹€λ©΄ λ³€μˆ˜μ˜ 쑴재 λͺ©μ μ„ λͺ…ν™•νžˆ λ“œλŸ¬λ‚΄μ§€ λͺ»ν•˜λŠ” 것이닀.

 

넀이밍 μ»¨λ²€μ…˜μ€ ν•˜λ‚˜ μ΄μƒμ˜ μ˜μ–΄ λ‹¨μ–΄λ‘œ κ΅¬μ„±λœ μ‹λ³„μžλ₯Ό λ§Œλ“€ λ•Œ 가독성 μ’‹κ²Œ 단어λ₯Ό ν•œλˆˆμ— κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ κ·œμ •ν•œ λͺ…λͺ… κ·œμΉ™μ΄λ‹€.

넀이밍 μ»¨λ²€μ…˜μ„ 잘 지킀면 읽기 쒋은 이름을 λ§Œλ“€ 수 μžˆλ‹€.

// 카멜 μΌ€μ΄μŠ€
var firstName;

// μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€
var first_name;

// 파슀칼 μΌ€μ΄μŠ€
var FirstName;

// 헝가리언 μΌ€μ΄μŠ€
var strFirstName; // type + identifier

일관성을 μœ μ§€ν•œλ‹€λ©΄ μ–΄λ–€ 넀이밍 μ»¨λ²€μ…˜μ„ μ‚¬μš©ν•΄λ„ μ’‹μ§€λ§Œ,

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” 일반적으둜 λ³€μˆ˜λ‚˜ ν•¨μˆ˜μ˜ μ΄λ¦„μ—λŠ” 카멜 μΌ€μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜κ³ 

클래슀의 μ΄λ¦„μ—λŠ” 파슀칼 μΌ€μ΄μŠ€λ₯Ό μ‚¬μš©ν•œλ‹€.

728x90