[JavaScript] ν•¨μˆ˜

ν•¨μˆ˜λž€? μˆ˜ν•™μ˜ ν•¨μˆ˜λŠ” "μž…λ ₯"을 λ°›μ•„ "좜λ ₯"을 λ‚΄λ³΄λ‚΄λŠ” 일련의 과정을 μ •μ˜ν•œ κ²ƒμž…λ‹ˆλ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ ν•¨μˆ˜λ„ 이와 같은 κ°œλ…μΈλ° 일련의 과정을 문으둜 κ΅¬ν˜„ν•˜κ³  μ½”λ“œ λΈ”λ‘μœΌλ‘œ κ°μ‹Έμ„œ ν•˜λ‚˜μ˜ μ‹€ν–‰ λ‹¨μœ„λ‘œ μ •μ˜ν•œ κ²ƒμž…λ‹ˆλ‹€. // ν•¨μˆ˜ μ„ μ–Έ function add(x,y) { return x + y; } // ν•¨μˆ˜ 호좜 add(2,5); // λ°˜ν™˜κ°’ 7 ν•¨μˆ˜λŠ” ν•¨μˆ˜ μ •μ˜λ₯Ό 톡해 μƒμ„±λ˜κ³  인수λ₯Ό λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 ν•¨μˆ˜μ— μ „λ‹¬ν•˜λ©΄μ„œ ν•¨μˆ˜μ˜ 싀행을 λͺ…μ‹œμ μœΌλ‘œ μ§€μ‹œν•˜λŠ” ν•¨μˆ˜ ν˜ΈμΆœμ„ μ§„ν–‰ν•˜λ©΄ μ½”λ“œ 블둝에 λ‹΄κΈ΄ 문듀이 μΌκ΄„μ μœΌλ‘œ μ‹€ν–‰λ˜κ³  μ‹€ν–‰ 결과인 λ°˜ν™˜κ°’μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. μ‹λ³„μž : ν•¨μˆ˜λ₯Ό κ΅¬λΆ„ν•˜λŠ” ν•¨μˆ˜ 이름 (add) λ§€κ°œλ³€μˆ˜(parameter) : ν•¨μˆ˜ λ‚΄λΆ€λ‘œ μž…λ ₯을 μ „λ‹¬λ°›λŠ” λ³€μˆ˜(x,y) 인수(argument) ..

[운영체제] 가상 λ©”λͺ¨λ¦¬λž€? (VMμ΄λž€?)

메인 λ©”λͺ¨λ¦¬λž€? ν”„λ‘œμ„ΈμŠ€λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ ν•˜λ“œμ›¨μ–΄μ˜ μƒνƒœλ₯Ό μ½κ±°λ‚˜ κ°±μ‹ ν•©λ‹ˆλ‹€. μ΄λ•Œ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œ ν•„μš”ν•œ μ£Όμ†Œ, 정보듀을 μ €μž₯ν•˜κ³  ν”„λ‘œμ„ΈμŠ€κ°€ μ‚¬μš©ν•  λͺ…령어듀을 가지고 μžˆμ–΄ 읽고 μ“°λŠ” 데이터듀을 κ΄€λ¦¬ν•΄μ€λ‹ˆλ‹€. λ©”λͺ¨λ¦¬λž€ κ±°λŒ€ν•œ λ°”μ΄νŠΈμ˜ 배열인 μ£Όμ†Œκ³΅κ°„μœΌλ‘œ ν†΅μƒμ μœΌλ‘œ RAM, 즉 메인메λͺ¨λ¦¬λ₯Ό λœ»ν•©λ‹ˆλ‹€. 가상 λ©”λͺ¨λ¦¬ λ“±μž₯ λ°°κ²½ ν˜„λŒ€μ˜ PCλŠ” λŒ€λΆ€λΆ„ 폰 λ…Έμ΄λ§Œ ꡬ쑰 기반으둜, ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ” μ½”λ“œμ˜ 전체λ₯Ό λ©”λͺ¨λ¦¬μ— μ—…λ‘œλ“œν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬ μš©λŸ‰λ³΄λ‹€ 더 큰 ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰νžˆ λΆˆκ°€λŠ₯ν–ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, λ¦¬λˆ…μŠ€ ν”„λ‘œμ„ΈμŠ€λŠ” ν•˜λ‚˜μ— 4GB인데, 톡상적인 λ©”λͺ¨λ¦¬ 8GB λ˜λŠ” 16GB이기 λ•Œλ¬Έμ— 물리적 λ©”λͺ¨λ¦¬ 크기의 ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ 가상 λ©”λͺ¨λ¦¬κ°€ λ“±μž₯ν–ˆμŠ΅λ‹ˆλ‹€. 가상 λ©”λͺ¨λ¦¬λž€? μ‹€μ œ 물리 λ©”λͺ¨λ¦¬ κ°œλ…..

CS/Operating System 2022. 7. 19. 18:53
[JavaScript] μ›μ‹œ κ°’κ³Ό 객체의 비ꡐ

μ›μ‹œκ°’κ³Ό 객체의 차이점 μ›μ‹œκ°’κ³Ό 객체의 νŠΉμ§•μ„ μžμ„Ένžˆ μ•Œμ•„λ³΄κΈ° μ•žμ„œ 차이점을 ν‘œλ‘œ 정리해 λ³΄κ² μŠ΅λ‹ˆλ‹€. μ›μ‹œκ°’ 객체 νƒ€μž… λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’ λ³€κ²½ κ°€λŠ₯ν•œ κ°’ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ λ³€μˆ˜μ— μ‹€μ œ 값이 μ €μž₯됨 λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ λ³€μˆ˜μ— 참쑰값이 μ €μž₯됨 λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ›μ‹œ 값이 λ³΅μ‚¬λ˜μ–΄ 전달 λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ°Έμ‘° 값이 λ³΅μ‚¬λ˜μ–΄ 전달(참쑰에 μ˜ν•œ 전달) μ›μ‹œ κ°’μ˜ νŠΉμ§• λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’ ν•œλ²ˆ μƒμ„±λœ μ›μ‹œ 값은 읽기 μ „μš©κ°’μœΌλ‘œ μ›μ‹œ νƒ€μž…μ˜ 값은 변경이 λΆˆκ°€λŠ₯ν•œ κ°’μž…λ‹ˆλ‹€. 값은 λ³€μˆ˜μ— μ €μž₯된 λ°μ΄ν„°λ‘œμ„œ ν‘œν˜„μ‹μ΄ ν‰κ°€λ˜μ–΄ μƒμ„±λœ κ²°κ³Όλ₯Ό λ§ν•˜κΈ° λ•Œλ¬Έμ— λ³€κ²½ λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 것은 λ³€μˆ˜κ°€ μ•„λ‹ˆλΌ μ›μ‹œ κ°’ 자체λ₯Ό λ³€κ²½ν•  수 μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ λΆˆλ³€μ„±μ„ κ°–λŠ” μ›μ‹œ 값을 ν• λ‹Ήν•œ λ³€μˆ˜λŠ” μž¬ν• λ‹Ή 이외에 λ³€μˆ˜ 값을 λ³€κ²½ν•  수 μžˆλŠ” ..

[JavaScript] 객체 λ¦¬ν„°λŸ΄

κ°μ²΄λž€? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 개체기반의 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ, μ›μ‹œ 값을 μ œμ™Έν•œ λͺ¨λ“  값은 κ°μ²΄νƒ€μž…μž…λ‹ˆλ‹€. μ΄λŠ” λ‹€μ–‘ν•œ νƒ€μž…μ˜ 값을 ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ κ΅¬μ„±ν•œ 볡합적인 자료ꡬ쑰둜 μ›μ‹œ κ°’κ³Ό λ‹€λ₯΄κ²Œ λ³€κ²½ κ°€λŠ₯ν•œ κ°’μž…λ‹ˆλ‹€. 객체λ₯Ό μ •μ˜ν•˜μžλ©΄ ν”„λ‘œνΌν‹°μ™€ λ©”μ„œλ“œλ‘œ κ΅¬μ„±λœ μ§‘ν•©μ²΄μž…λ‹ˆλ‹€. ν”„λ‘œνΌν‹° : 객체의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°’. keyκ³Ό value둜 ꡬ성. λ©”μ„œλ“œ : ν”„λ‘œνΌν‹°(μƒνƒœ 데이터)λ₯Ό μ°Έμ‘°ν•˜κ³  μ‘°μž‘ν•  수 μžˆλŠ” λ™μž‘. var counter = { num: 0, increase() { this.num++; } }; μœ„μ˜ μ˜ˆμ‹œμ™€ 같이 κ°μ²΄λŠ” μƒνƒœμ™€ λ™μž‘μ„ ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ ꡬ쑰화 ν•  수 μžˆμ–΄μ„œ μœ μš©ν•©λ‹ˆλ‹€. 객체 λ¦¬ν„°λŸ΄μ— μ˜ν•œ 객체 생성 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν”„λ‘œν† νƒ€μž… 기반 객체지ν–₯ μ–Έμ–΄λ‘œμ„œ λ‹€μ–‘ν•œ 객체 생성 방법을 μ§€μ›ν•©λ‹ˆλ‹€. 객체 *리..

[JavaScript] νƒ€μž… λ³€ν™˜κ³Ό 단좕 평가

νƒ€μž… λ³€ν™˜μ΄λž€? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” κ°’μ˜ νƒ€μž…μ„ λ‹€λ₯Έ νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•  수 μžˆλŠ”λ°, μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’μž…λ‹ˆλ‹€. λ”°λΌμ„œ 사싀 값을 직접 λ³€κ²½ν•˜λŠ” 것은 μ•„λ‹ˆκ³  ν”Όμ—°μ‚°μžμ˜ 값을 μ•”λ¬΅μ μœΌλ‘œ νƒ€μž… λ³€ν™˜ν•΄ μƒˆλ‘œμš΄ νƒ€μž…μ˜ 값을 λ§Œλ“€μ–΄ μ‚¬μš©ν•˜κ³  λ²„λ¦½λ‹ˆλ‹€. λͺ…μ‹œμ  νƒ€μž… λ³€ν™˜(νƒ€μž… μΊμŠ€νŒ…) : κ°œλ°œμžκ°€ μ˜λ„μ μœΌλ‘œ κ°’μ˜ νƒ€μž…μ„ λ³€ν™˜ μ‹œν‚΄ 암묡적 νƒ€μž… λ³€ν™˜(νƒ€μž… κ°•μ œ λ³€ν™˜) : μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ μ•”λ¬΅μ μœΌλ‘œ νƒ€μž…μ΄ μžλ™ λ³€ν™˜λ¨ 암묡적 νƒ€μž… λ³€ν™˜ 개발자의 μ˜λ„μ™€λŠ” 상관없이 μ½”λ“œμ˜ λ¬Έλ§₯을 κ³ λ €ν•΄ μ•”λ¬΅μ μœΌλ‘œ 데이터 νƒ€μž…μ„ κ°•μ œ λ³€ν™˜μ‹œν‚€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. μ½”λ“œ λ¬Έλ§₯에 λΆ€ν•©ν•˜μ§€ μ•ŠλŠ” μƒν™©μ—μ„œ 가급적 μ—λŸ¬λ₯Ό λ°œμƒμ‹œν‚€μ§€ μ•Šκ³  νƒ€μž…μ„ λ³€ν™˜μ‹œμΌœ ν‘œν˜„μ‹μ„ ν‰κ°€ν•˜κ²Œ λ©λ‹ˆλ‹€. λ¬Έμžμ—΄ νƒ€μž…μœΌλ‘œ λ³€ν™˜ λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μž +λ₯Ό 톡해 λ¬Έμžμ—΄κ³Ό ..

[JavaScript] μ œμ–΄λ¬Έ

μ œμ–΄λ¬Έμ€ 쑰건에 따라 μ½”λ“œ 블둝(*블둝문)을 μ‹€ν–‰ν•˜κ±°λ‚˜ 반볡 싀행을 ν• λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. μ’…λ₯˜ μ„€λͺ… μ˜ˆμ‹œ 쑰건문 μ‘°κ±΄μ‹μ˜ 결과에 따라 λΈ”λ‘λ¬Έμ˜ 싀행을 κ²°μ • if-else, switch 반볡문 μ‘°κ±΄μ‹μ˜ 평가 κ²°κ³Όκ°€ 참인 경우 μ½”λ“œ 블둝문을 반볡 μ‹€ν–‰ for, while, do-while break μ½”λ“œ 블둝을 νƒˆμΆœ continue ν˜„ μ§€μ μ—μ„œ 블둝문을 μ€‘λ‹¨ν•˜κ³  반볡문의 μ¦κ°μ‹μœΌλ‘œ μ‹€ν–‰ 흐름을 이동 *블둝문 : 0개 μ΄μƒμ˜ 문을 μ€‘κ΄„ν˜Έλ‘œ 묢은 κ²ƒμœΌλ‘œ μ œμ–΄λ¬Έμ΄λ‚˜ ν•¨μˆ˜λ₯Ό μ •μ˜ν•  λ•Œ 주둜 μ‚¬μš©. ** μ œμ–΄λ¬Έμ„ 톡해 μ½”λ“œμ˜ μ‹€ν–‰ 흐름을 μΈμœ„μ μœΌλ‘œ μ œμ–΄ν•  수 μžˆμ§€λ§Œ, μ΄λŠ” μ½”λ“œμ˜ 흐름을 μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“€μ–΄ 가독성을 ν•΄μΉ˜λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° κΈ°λ²•μ—μ„œλŠ” forEach, map, filter, r..