Vanilla js / Ecma script / Typescript μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό λ‘˜λŸ¬μ‹Ό λͺ…μΉ­ μ΄ν•΄ν•˜κΈ°!

1. 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈ (Vanilla js)

아무 것도 μ„žμ΄μ§€ μ•Šμ€ 바닐라 μ•„μ΄μŠ€ν¬λ¦Όμ²˜λŸΌ, μˆœμˆ˜ν•œ μžλ°”μŠ€ν¬λ¦½νŠΈλ§Œμ„ μΌμ»«μŠ΅λ‹ˆλ‹€.
λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  μžλ°”μŠ€ν¬λ¦½νŠΈλ§ŒμœΌλ‘œ κ΅¬ν˜„μ„ ν•œλ‹€λ©΄, 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ κ°œλ°œν•˜μ˜€λ‹€ 말 ν•  수 있겠죠.
React λ“±μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ ν”„λ ˆμž„μ›Œν¬κ°€ μ£Όλͺ©μ„ λ°›μœΌλ©΄μ„œ, κ·Έ 기반이 λ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈλ„ μ€‘μš”ν•΄μ§€λ‹€λ³΄λ‹ˆ μƒκ²¨λ‚œ μš©μ–΄κ°€ μ•„λ‹κΉŒ 좔츑이 λ©λ‹ˆλ‹€.


2. μ—ν¬λ§ˆ 슀크립트 (Ecma Script)

μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ κ°€μž₯ 많이 ν˜Όμš©ν•˜μ—¬ μ‚¬μš©λ˜λŠ” ECMA Scriptμž…λ‹ˆλ‹€.
본래 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λ„·μŠ€μΌ€μ΄ν”„λΌλŠ” νšŒμ‚¬μ—μ„œ livescript(라이브 슀크립트)λΌλŠ” μ΄λ¦„μœΌλ‘œ 개발이 λ˜μ—ˆλ‹€κ°€ 후에, μžλ°”μŠ€ν¬λ¦½νŠΈλΌλŠ” 이름을 μ‚¬μš©ν•˜κ²Œλœ μ–Έμ–΄μž…λ‹ˆλ‹€. 그리고 이 μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ 성곡을 ν•˜μž, λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ—μ„œ jscriptλΌλŠ” μ΄λ¦„μœΌλ‘œ 인터넷 μ΅μŠ€ν”Œλ‘œμ–΄μ— ν˜Έν™˜λ˜λŠ” νŒŒμƒ μ–Έμ–΄λ₯Ό λ‚΄λ†“μŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ νŒŒμƒλ˜λŠ” μ–Έμ–΄κ°€ μƒκΈ°μž ν‘œμ€€ν™”(κΈ°μ€€ κ·œκ²©μ„ μ •μ˜ν•˜λŠ” 것)κ°€ ν•„μš”ν•΄μ‘Œκ³ , Ecma 인터내셔널(정보와 톡신 μ‹œμŠ€ν…œμ„ μœ„ν•œ ꡭ제적 ν‘œμ€€ν™” 기ꡬ)을 톡해 κ³΅ν‘œλœ ν‘œμ€€μ΄ ECMA Script라고 ν•©λ‹ˆλ‹€.

κ°„λ‹¨νžˆ μ •λ¦¬ν•˜μžλ©΄, 슀크립트 μ–Έμ–΄λ₯Ό μœ„ν•œ ν‘œμ€€ = ECMA Script, κ·Έ ν‘œμ€€μ„ λ”°λ₯΄λŠ” 슀크립트 μ–Έμ–΄ = Javascriptκ°€ λ˜κ² μŠ΅λ‹ˆλ‹€.
ν”νžˆ "ES6 κΈ°λ°˜μ΄λ‹€", "Ecma script 6둜 κ°œλ°œν–ˆλ‹€"라고 ν•œλ‹€λ©΄ Ecma script 6μ—μ„œ μ •μ˜λœ λ¬Έλ²•μ΄λ‚˜ κΈ°μˆ μ„ μ΄μš©ν•΄ κ°œλ°œν–ˆλ‹€λΌκ³  μ΄ν•΄ν•˜μ‹œλ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€.

μ•„μ£Ό ꡬ체적으둜 μ •λ¦¬λœ 포슀트λ₯Ό λ§ν¬ν•΄λ“œλ¦¬λ‹ˆ, 더 μžμ„Έν•œ μ„€λͺ…이 ν•„μš”ν•˜λ©΄ μ°Έκ³ ν•΄λ³΄μ„Έμš”. :)


3. νƒ€μž… 슀크립트 (Typescript)

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μŠˆνΌμ…‹μΈ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ, λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ—μ„œ κ°œλ°œν–ˆλ‹€κ³  ν•©λ‹ˆλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ ν™•μ‹€νžˆ κ΅¬λΆ„λ˜λŠ” μƒˆλ‘œμš΄ μ–Έμ–΄λΌλŠ” 것이죠. 'μŠˆνΌμ…‹'μ΄λž€ μ„œλΈŒμ…‹μ΄λΌλŠ” ν•˜μœ„ ν•­λͺ©μ΄ 있고, 그것을 ν¬ν•¨ν•΄μ„œ 더 ν™•μž₯된 것을 μ˜λ―Έν•©λ‹ˆλ‹€. μ•„λž˜ 이미지 μ²˜λŸΌμš”. νƒ€μž…μŠ€ν¬λ¦½νŠΈλ‘œ μž‘μ„±λœ μ½”λ“œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ μ»΄νŒŒμΌν•˜μ—¬ μ‚¬μš©ν•˜λ©΄ 되고, μžλ°”μŠ€ν¬λ¦½νŠΈμ™€μ˜ λŒ€ν‘œμ μΈ μ°¨μ΄λŠ” 'type' 즉, μžλ£Œν˜•μ„ κ΅¬λΆ„ν•œλ‹€λŠ” 점이라고 ν•©λ‹ˆλ‹€. javascript + type = typescript!

νƒ€μž… 슀크립트 둜고


Bonus.

μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ κ΄€λ ¨ν•œ κ°œλ…λ“€μ— λŒ€ν•œ μ„€λͺ…!

1. 제이쿼리 (jquery)

μ œμ΄μΏΌλ¦¬λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. κ³Όκ±° λ³΅μž‘ν•˜κ³  κΉ”λ”ν•˜μ§€ μ•Šμ•˜λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό κ°œμ„ ν•˜μ—¬, 비ꡐ적 μ‰½κ²Œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ κΈ°λŠ₯을 μ“Έ 수 있게 ν–ˆλ‹€κ³  ν•©λ‹ˆλ‹€. λŒ€ν‘œμ μœΌλ‘œ 간결해진 DOM selectκ°€ μž₯μ μ΄μ—ˆλ˜ 것 κ°™μ•„μš”.

ex. document.document.getelementbyid('main') => $('#main')

2. μ—μ΄μ μŠ€ (Ajax)

μ—μ΄μ μŠ€λŠ” 개발 기법에 μ†ν•΄μš”. 일반적인 μ›Ήμ‚¬μ΄νŠΈλŠ” νŽ˜μ΄μ§€λ₯Ό μ΄λ™ν•˜κ±°λ‚˜, κ²Œμ‹œλ¬Όμ„ μ‘°νšŒν•˜λŠ” λ“±μ˜ λ™μž‘μ„ 일어날 λ•Œ νŽ˜μ΄μ§€ 전체가 κ°±μ‹ λ˜λŠ”λ°, ajax 기법을 μ΄μš©ν•˜λ©΄ μΌλΆ€λΆ„μ˜ λ°μ΄ν„°λ§Œ λ³€κ²½λ˜λ©΄μ„œ μ’€ 더 κΉ”λ”ν•˜κ²Œ μ‚¬μš©μ„±μ„ μ œκ³΅ν•  수 μžˆμ–΄μš”. ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ—μ„œ 주둜 μ„œλ²„μ™€ 데이터 ꡐλ₯˜λ₯Ό ν•΄μ•Όν•  λ•Œ μ‚¬μš©λΌμš”.

3. SPA ν”„λ ˆμž„μ›Œν¬

λŒ€ν‘œμ μœΌλ‘œ λ¦¬μ•‘νŠΈ(React), μ•΅κ·€λŸ¬(Angular), λ·°μ œμ΄μ—μŠ€(Vuejs) λ“±μ˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ§€μΉ­ν•΄μš”. λ¦¬μ•‘νŠΈμ™€ λ·°μ œμ΄μ—μŠ€λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 기반, μ•΅κ·€λŸ¬λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ κΈ°λ°˜μ΄κ³ μš”, 기반 μ–Έμ–΄λ₯Ό μ•Œκ³  μžˆμ–΄μ•Ό 더 잘 μ‚¬μš©ν•  수 μžˆλŠ” λ„κ΅¬μ˜ˆμš”.
그리고 SPAλŠ” μ‹±κΈ€ νŽ˜μ΄μ§€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λΌλŠ” 뜻으둜, μƒˆλ‘œμš΄ νŽ˜μ΄μ§€λ₯Ό λΆˆλŸ¬μ˜€μ§€ μ•Šκ³  ν˜„μž¬μ˜ νŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ λ‹€μ‹œ μž‘μ„±ν•¨μœΌλ‘œμ¨ μ‚¬μš©μžμ™€ μ†Œν†΅ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‚˜ μ›Ήμ‚¬μ΄νŠΈλ₯Ό λœ»ν•©λ‹ˆλ‹€.(좜처. μœ„ν‚€λ°±κ³Ό)

더 읽어보면 쒋을 κΈ€
ν”„λ ˆμž„μ›Œν¬μ™€ 라이브러리 차이점(Framework vs Library)
https://zinee-world.tistory.com/125


μ œκ°€ μ ‘ν–ˆλ˜ λͺ…μΉ­, μš©μ–΄ 쀑에 ν—·κ°ˆλ¦¬κ³  μ •ν™•ν•œ κ°œλ… μ •μ˜κ°€ μ•ˆλλ˜ 것듀을 μ •λ¦¬ν•΄λ΄€μŠ΅λ‹ˆλ‹€.
ν‹€λ¦° λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ§€μ ν•΄μ£Όμ„Έμš” πŸ˜„πŸ‘‹

← 이전 κ²Œμ‹œλ¬Όν† μ΄ ν”„λ‘œμ νŠΈ: λ²„μŠ€μ•Ό μ–΄λ””μžˆλ‹ˆ? 진행 상황 정리
λ‹€μŒ κ²Œμ‹œλ¬Ό β†’2019/09/25 TIL(Today I Learn) - 크둜슀 도메인 μš”μ²­ CORS
λͺ©λ‘