λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ“š

(31)
[JavaScript / 비동기 처리] AJAX / Callback, Promise, async, await πŸ“Œ 동기(Synchronous) ν”„λ‘œκ·Έλž˜λ° vs 비동기(Asynchronous) ν”„λ‘œκ·Έλž˜λ° 동기 ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œκ°€ λ°˜λ“œμ‹œ μž‘μ„±λœ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ˜λŠ” 방식이닀. 비동기 ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œμ˜ μ²˜λ¦¬κ°€ μ™„λ£Œλ  λ•ŒκΉŒμ§€ 기닀리지 μ•Šκ³  λ‹€λ₯Έ μ½”λ“œλ₯Ό μ²˜λ¦¬ν•˜λŠ” 방식이닀. πŸ”— 비동기 처리 사둀 > AJAX μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•œ 비동기 톡신이며, ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°„μ˜ XML 데이터λ₯Ό μ£Όκ³ λ°›λŠ” κΈ°μˆ μ΄λ‹€. XMLHttpRequest 객체λ₯Ό μ΄μš©ν•΄μ„œ 전체 νŽ˜μ΄μ§€λ₯Ό λ¦¬λ‘œλ“œν•˜μ§€ μ•Šκ³  ν•„μš”ν•œ λ°μ΄ν„°λ§Œ λ‘œλ“œν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€. πŸ”— 비동기 처리 방법 β‘  > 콜백(Callback) ν•¨μˆ˜ ν•¨μˆ˜ μ‹€ν–‰ 결과값을 리턴이 μ•„λ‹Œ λ§€κ°œλ³€μˆ˜λ‘œ λ„˜μ–΄μ˜¨ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ λ„˜κ²¨μ£ΌλŠ” 방식이닀. πŸ”— 콜백 ν•¨μˆ˜ μ‚¬μš©ν•˜λŠ” 이유 νŠΉμ • 둜직이 끝났을 λ•Œ μ›ν•˜λŠ” λ™μž‘..
[JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', 'λ…ΌλΈ”λ‘œν‚Ή' 방식을 μ‚¬μš©ν•˜κ³  'μ‹±κΈ€ μŠ€λ ˆλ“œ' 언어이닀. μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ 언어이닀. ν•˜μ§€λ§Œ μ‹€μ œ μ‚¬μš©μ‹œμ—λŠ” λ§Žμ€ μž‘μ—…μ΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ²˜λŸΌ λ³΄μ΄λŠ”λ° μ™œ 그런 κ²ƒμΌκΉŒ? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–΄λ–»κ²Œ 'λ™μ‹œμ„±(Concurrency)'을 μ§€μ›ν•˜λŠ” κ²ƒμΌκΉŒ? λ°”λ‘œ μ—¬κΈ°μ„œ λ“±μž₯ν•˜λŠ” κ°œλ…μ΄ 이벀트 루프이닀. πŸ”— 이벀트 기반(event-driven)μ΄λž€? 이벀트 κΈ°λ°˜μ΄λž€ μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•Œ 미리 지정해둔 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식을 μ˜λ―Έν•œλ‹€. β–ͺ 이벀트 루프 이벀트 λ°œμƒ μ‹œ ν˜ΈμΆœν•  콜백 ν•¨μˆ˜λ“€μ„ κ΄€λ¦¬ν•˜κ³ , 호좜된 콜백 ν•¨μˆ˜μ˜ μ‹€ν–‰ μˆœμ„œλ₯Ό κ²°μ •ν•œλ‹€. λͺ¨λ“  μ΄λ²€νŠΈκ°€ μ’…λ£Œλ  λ•Œ κΉŒμ§€ 이벀트 처리λ₯Ό μœ„ν•œ μž‘μ—…μ„ λ°˜λ³΅ν•˜λ―€λ‘œ 루프라고 λΆˆλ¦°λ‹€. 콜 μŠ€νƒμ—μ„œ μ‹€ν–‰ 쀑인 것이 μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , 콜백 큐에 μž‘μ—…μ΄ μžˆλŠ”μ§€ ν™•μΈν•΄μ„œ 콜 μŠ€νƒμ΄ λΉ„μ—ˆλ‹€λ©΄ 콜백 큐 λ‚΄μ˜ μž‘μ—…μ„ 콜 μŠ€νƒμœΌλ‘œ ..
[JavaScript] 가비지컬렉터(Garbage Collector)λž€? / μ—­ν• , λ™μž‘ 원리 πŸ”— 가비지컬렉터(Garbage Collector)λž€? μ—¬κΈ°μ„œ κ°€λΉ„μ§€λž€ 'μ •λ¦¬λ˜μ§€ μ•Šμ€ λ©”λͺ¨λ¦¬', 'μœ νš¨ν•˜μ§€ μ•Šμ€ λ©”λͺ¨λ¦¬ μ£Όμ†Œ'λ₯Ό λ§ν•œλ‹€. 가비지 μ»¬λ ‰ν„°λŠ” μ΄λŸ¬ν•œ ν•„μš”μ—†λŠ” 정보듀, 가비지듀을 μ“Έμ–΄ λ‹΄μ•„ λ²„λ¦ΌμœΌλ‘œμ¨ λ©”λͺ¨λ¦¬λ₯Ό 관리해쀀닀. πŸ”— 가비지컬렉터 λ™μž‘ 원리 μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ λ³€μˆ˜λŠ” μ§μ ‘μ μœΌλ‘œ μ°Έμ‘° κ°’(λ¬Έμžμ—΄, 객체, λ°°μ—΄)을 λ‹΄κ³  μžˆμ§€ μ•Šκ³ , ν•΄λ‹Ή 값은 λ©”λͺ¨λ¦¬ 상에 μ €μž₯λœλ‹€. κ·Έλž˜μ„œ μ°Έμ‘° 값을 μƒμ„±ν•˜κ³  λ‚˜μ„œ 더이상 μ°Έμ‘°ν•  것이 μ—†κ±°λ‚˜ λΉ„μ–΄μ‘Œμ„ λ•Œ 가비지 컬렉터가 λ™μž‘ν•˜μ—¬ λ©”λͺ¨λ¦¬κ°€ λ°˜ν™˜λœλ‹€. (λ©”λͺ¨λ¦¬λ₯Ό λ‹€μ‹œ μž¬μ‚¬μš© ν•  수 μžˆλŠ” μƒνƒœκ°€ λœλ‹€.) πŸ”Ž μ°Έκ³  자료 가비지 컬렉터가 λ­ν•˜λŠ” κ±΄κ°€μš”? ν”„λ‘ νŠΈμ—”λ“œ 개발자 λ©΄μ ‘ 질문 정리 πŸ’‘ 같이 보면 쒋을 Post [JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', ..
[JavaScript] λ©”λͺ¨λΌμ΄μ œμ΄μ…˜(Memoization)μ΄λž€? πŸ”— λ©”λͺ¨λΌμ΄μ œμ΄μ…˜(Memoization)μ΄λž€? 컴퓨터 ν”„λ‘œκ·Έλž¨μ΄ λ™μΌν•œ 계산을 λ°˜λ³΅ν•΄μ•Ό ν•  λ•Œ, 이전에 κ³„μ‚°ν•œ 값을 λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜μ—¬ 그것을 ν™œμš©ν•¨μœΌλ‘œμ¨ 반볡 μˆ˜ν–‰μ„ μ œκ±°ν•œλ‹€. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 속도가 빨라진닀. πŸ”Ž μ°Έκ³  자료 μžλ°”μŠ€ν¬λ¦½νŠΈ λ©”λͺ¨λΌμ΄μ œμ΄μ…˜ 예제보기 πŸ’‘ 같이 보면 쒋을 Post [JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', 'λ…ΌλΈ”λ‘œν‚Ή' 방식을 μ‚¬μš©ν•˜κ³  'μ‹±κΈ€ μŠ€λ ˆλ“œ' 언어이닀. μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ 언어이닀. ν•˜μ§€λ§Œ μ‹€μ œ μ‚¬μš©μ‹œμ—λŠ” λ§Žμ€ μž‘μ—…μ΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ²˜λŸΌ λ³΄μ΄λŠ”λ° μ™œ 그런 κ²ƒμΌκΉŒ? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–΄λ–»κ²Œ 'λ™μ‹œμ„±(Concurrency)'을 μ§€μ›ν•˜ devjindev.tistory.com
[JavaScript] λ©”μ†Œλ“œ 체이닝(Method Chaining)μ΄λž€? πŸ”— λ©”μ†Œλ“œ 체이닝(Method Chaining)μ΄λž€? μ—¬λŸ¬ λ©”μ†Œλ“œλ₯Ό μ΄μ–΄μ„œ ν˜ΈμΆœν•˜λŠ” 문법이닀. λ©”μ†Œλ“œκ°€ 객체(this)λ₯Ό λ°˜ν™˜ν•˜μ—¬ μ—¬λŸ¬ λ©”μ†Œλ“œλ₯Ό 순차적으둜 μ„ μ–Έν•  수 μžˆλ„λ‘ ν•œλ‹€. πŸ”— μž₯단점 μž₯점 μ½”λ“œκ°€ κ°„κ²°ν•΄μ Έ ν•˜λ‚˜μ˜ λ¬Έμž₯처럼 읽힐 수 μžˆλ‹€. μž₯기적으둜 μœ μ§€λ³΄μˆ˜μ— 도움이 λœλ‹€. 단점 ν•˜λ‚˜μ˜ λΌμΈμ—μ„œ λ„ˆλ¬΄ λ§Žμ€ 일이 μΌμ–΄λ‚˜ 디버깅에 어렀움이 μžˆμ„ 수 μžˆλ‹€. 였λ₯˜κ°€ 났을 λ•Œ μ–΄λŠ λΆ€λΆ„μ˜ λ©”μ†Œλ“œμ—μ„œ 였λ₯˜κ°€ λ‚¬λŠ”μ§€ ν™•μΈν•˜κΈ° μ–΄λ ΅λ‹€. πŸ”Ž μ°Έκ³  자료 λ©”μ†Œλ“œ 체이닝 πŸ’‘ 같이 보면 쒋을 Post [JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', 'λ…ΌλΈ”λ‘œν‚Ή' 방식을 μ‚¬μš©ν•˜κ³  'μ‹±κΈ€ μŠ€λ ˆλ“œ' 언어이닀. μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ 언어이닀. ν•˜μ§€λ§Œ μ‹€μ œ μ‚¬μš©μ‹œμ—λŠ” λ§Žμ€ μž‘μ—…μ΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ²˜λŸΌ λ³΄μ΄λŠ”λ°..
[JavaScript] 이벀트 버블링, 캑처링, μœ„μž„μ΄λž€? πŸ”— 이벀트 버블링(Event Bubbling)μ΄λž€? νŠΉμ • ν™”λ©΄ μš”μ†Œμ—μ„œ μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ ν•΄λ‹Ή μ΄λ²€νŠΈκ°€ 더 μƒμœ„μ˜ ν™”λ©΄ μš”μ†Œλ“€λ‘œ μ „λ‹¬λ˜μ–΄ κ°€λŠ” νŠΉμ„±μ΄λ‹€. πŸ”— 이벀트 캑처링(Event Capturing)μ΄λž€? 이벀트 버블링과 λ°˜λŒ€ λ°©ν–₯으둜 μ§„ν–‰λ˜λŠ” 이벀트 μ „νŒŒ 방식이닀. πŸ”— 이벀트 μœ„μž„(Event Delegation)μ΄λž€? ν•˜μœ„ μš”μ†Œμ— 각각 이벀트λ₯Ό 뢙이지 μ•Šκ³  μƒμœ„ μš”μ†Œμ—μ„œ ν•˜μœ„ μš”μ†Œμ˜ 이벀트λ₯Ό μ œμ–΄ν•˜λŠ” 방식이닀. (μ•žμ—μ„œ μ‚΄νŽ΄λ³Έ 이벀트 버블링과 μΊ‘μ²˜λ§μ€ 이벀트 μœ„μž„μ„ μœ„ν•œ μ„ μˆ˜ 지식이라고 해도 과언이 μ•„λ‹ˆλ‹€. 이벀트 μœ„μž„μ€ μ‹€μ œ 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ μ›Ήκ³Ό 앱을 κ΅¬ν˜„ν•  λ•Œ 자주 μ‚¬μš©ν•˜λŠ” μ½”λ”© νŒ¨ν„΄μ΄λ‹€.) μž₯점 μ½”λ“œκ°€ 짧아지고 λ©”λͺ¨λ¦¬κ°€ μ ˆμ•½λœλ‹€. λ¬΄λΆ„λ³„ν•œ 이벀트 λ“±λ‘μœΌλ‘œ μΈν•œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό 방지할 수 ..
[Web] μ›Ή ν‘œμ€€, μ›Ή μ ‘κ·Όμ„±, μ›Ή ν˜Έν™˜μ„±μ΄λž€? πŸ”— μ›Ή ν‘œμ€€ (Web Standards) μ΄λž€? μ›Ή ν‘œμ€€μ΄λž€ 'μ›Ήμ—μ„œ ν‘œμ€€μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” κΈ°μˆ μ΄λ‚˜ κ·œμΉ™'을 μ˜λ―Έν•œλ‹€. ν‘œμ€€ν™” 단체인 W3Cκ°€ κΆŒκ³ ν•œ ν‘œμ€€μ•ˆμ— 따라 μ›Ή μ‚¬μ΄νŠΈλ₯Ό μž‘μ„±ν•  λ•Œ μ΄μš©ν•˜λŠ” HTML, CSS, JavaScript 등에 λŒ€ν•œ κ·œμ •μ΄ 담겨 μžˆλ‹€. μ›Ή ν‘œμ€€μ˜ ꢁ극적인 λͺ©μ μ€ μ›Ήμ‚¬μ΄νŠΈμ— μ ‘μ†ν•œ μ‚¬μš©μžκ°€ μ–΄λ– ν•œ μš΄μ˜μ²΄μ œλ‚˜ λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜λ”λΌλ„ λ™μΌν•œ κ²°κ³Όλ₯Ό 보이게 ν•˜λŠ” 것이닀. πŸ”— μ›Ή μ ‘κ·Όμ„± (Web Accessibility) μ΄λž€? μ›Ή μ ‘κ·Όμ„±μ΄λž€ μž₯애인, 고령자 λ“± λͺ¨λ“  μ‚¬μš©μžκ°€ μ–΄λ– ν•œ κΈ°μˆ μ΄λ‚˜ ν™˜κ²½μ—μ„œλ„ 전문적인 λŠ₯λ ₯ 없이 μ›Ή μ‚¬μ΄νŠΈμ—μ„œ μ œκ³΅ν•˜λŠ” λͺ¨λ“  정보λ₯Ό λ™λ“±ν•˜κ²Œ μ ‘κ·Όν•˜κ³  이해할 수 μžˆλŠ” ꢌ리λ₯Ό μ˜λ―Έν•œλ‹€. μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•¨μœΌλ‘œμ¨ λ‹€μ–‘ν•œ λΈŒλΌμš°μ € ν™˜κ²½μ— λŒ€μ‘μ΄ κ°€λŠ₯ν•˜λ©° νœ΄λŒ€ν°, PDA..
[Web] λ°˜μ‘ν˜• μ›Ήμ΄λž€? / λ°˜μ‘ν˜• vs μ μ‘ν˜• πŸ”— λ°˜μ‘ν˜• μ›Ή (Responsive Web) μ΄λž€? μˆœμ„œλŒ€λ‘œ PC - Tablet - Mobile ν™”λ©΄ λ°˜μ‘ν˜• μ›Ήμ΄λž€ 각쒅 λ””λ°”μ΄μŠ€ λ˜λŠ” λͺ¨λ‹ˆν„° 해상도에 따라 μ»¨ν…μΈ λ“€μ˜ μ‚¬μ΄μ¦ˆ, λ ˆμ΄μ•„μ›ƒ 등이 μœ λ™μ μœΌλ‘œ λ°”λ€ŒλŠ” 웹을 λ§ν•œλ‹€. 일반적으둜 float, flex, % 등을 μ‚¬μš©ν•˜μ—¬ μœ λ™μ μœΌλ‘œ λ°˜μ‘ν•  수 μžˆλ„λ‘ ν•œλ‹€. 1 2 3 4 5 @media screen and (max-width: 767px){ .container{ width: 50%; } } Colored by Color Scripter cs λ―Έλ””μ–΄ 쿼리λ₯Ό μ‚¬μš©ν•˜μ—¬ λ””λ°”μ΄μŠ€λ₯Ό μ§€μ •ν•˜μ—¬ ν™”λ©΄ 크기에 따라 λ°”λ€ŒλŠ” 웹을 μ œμž‘ν•œλ‹€. πŸ“Œ λ°˜μ‘ν˜• μ›Ή (Responsive Web) vs μ μ‘ν˜• μ›Ή (Adaptive Web) 차이점 λ°˜μ‘ν˜• 웹은 λ””λ°”μ΄μŠ€μ— 따라 ν™”λ©΄..