인터프리터(Interpreter)와 컴파일러(Compiler)
Β·
πŸ“ Language/✏ Language
인터프리터(Interpreter)와 컴파일러(Compiler) μž‘μ„±ν•œ μ½”λ“œλ₯Ό 컴퓨터가 μ•Œμ•„λ“£κΈ° μœ„ν•΄μ„œλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­ν•˜λŠ” 과정이 ν•„μš”ν•˜λ‹€. κ·Έ 과정을 언어에 따라 컴파일(compile) ν˜Ήμ€ 인터프릿(interpret)이라고 ν•˜κ³ , μ»΄νŒŒμΌμ„ ν•˜λŠ” μ–Έμ–΄λ₯Ό 컴파일 μ–Έμ–΄, 인터프릿을 ν•˜λŠ” μ–Έμ–΄λ₯Ό 인터프리터 μ–Έμ–΄ ν˜Ήμ€ 슀크립트 언어라고 ν•œλ‹€. 1. 인터프리터(Interpreter) μΈν„°ν”„λ¦¬ν„°λž€ μ›μ‹œ μ½”λ“œλ₯Ό κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•˜λŠ” κ³Όμ • 없이 ν•œμ€„ ν•œμ€„ ν•΄μ„ν•˜μ—¬ λ°”λ‘œ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” 것을 λ§ν•œλ‹€. λ”°λ‘œ κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λΉŒλ“œ μ‹œκ°„μ΄ μ—†μ§€λ§Œ, λŸ°νƒ€μž„ μƒν™©μ—μ„œλŠ” μ‹€μ‹œκ°„μœΌλ‘œ μ½μ–΄μ„œ μ‹€ν–‰ν•˜κΈ° λ•Œλ¬Έμ— 컴파일 언어에 λΉ„ν•΄ 속도가 λŠλ¦¬λ‹€. μ½”λ“œ λ³€κ²½ μ‹œ λΉŒλ“œ κ³Όμ • 없이 λ°”λ‘œ μ‹€ν–‰ κ°€λŠ₯ν•˜λ‹€. λŒ€ν‘œμ μœΌλ‘œ..
ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°(Functional Programming)
Β·
πŸ“ Language/✏ Language
ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„(Programming Paradigm) λͺ…λ Ήν˜• ν”„λ‘œκ·Έλž˜λ°: 무엇(What)을 ν•  것인지 λ‚˜νƒ€λ‚΄κΈ°λ³΄λ‹€ μ–΄λ–»κ²Œ(How) ν•  건지λ₯Ό μ„€λͺ…ν•˜λŠ” 방식 절차 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(C): μˆ˜ν–‰λ˜μ–΄μ•Ό ν•  순차적인 처리 과정을 ν¬ν•¨ν•˜λŠ” 방식 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(C++, Java, C#): κ°μ²΄λ“€μ˜ μ§‘ν•©μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ˜ μƒν˜Έμž‘μš©μ„ ν‘œν˜„ μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°: μ–΄λ–»κ²Œ ν•  건지(How)λ₯Ό λ‚˜νƒ€λ‚΄κΈ°λ³΄λ‹€ 무엇(What)을 ν•  건지λ₯Ό μ„€λͺ…ν•˜λŠ” 방식 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°(ν΄λ‘œμ €, ν•˜μŠ€μΌˆ, λ¦¬μŠ€ν”„): 순수 ν•¨μˆ˜λ₯Ό μ‘°ν•©ν•˜κ³  μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“œλŠ” 방식 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 치λͺ…적인 단점은 객체가 μƒνƒœλ₯Ό κ°–λŠ”λ‹€λŠ” 것이닀. λ³€μˆ˜κ°€ μ‘΄μž¬ν•˜κ³  이 λ³€μˆ˜λ₯Ό 톡해 객체가 μ˜ˆμΈ‘ν•  수 μ—†λŠ” μƒνƒœλ₯Ό κ°–κ²Œ λ˜μ–΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 내뢀에 버그λ₯Ό λ°œμƒμ‹œν‚¨λ‹€...
운영체제 정리
Β·
πŸ“ Computer Science/✏ OS
운영체제 정리 1. 컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ성 2020.04.23 - [πŸ“ Computer Science/✏ OS] - 컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ성 컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ성 컴퓨터 μ‹œμŠ€ν…œμ€ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 물리적 기계 μž₯치인 ν•˜λ“œμ›¨μ–΄μ™€ νŠΉλ³„ν•œ μž‘μ—…μ„ μ§€μ‹œν•˜λ €κ³  λͺ…λ Ήμ–΄λ‘œ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨μΈ μ†Œν”„νŠΈμ›¨μ–΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. ν•˜λ“œμ›¨μ–΄ ν”„λ‘œμ„Έμ„œ, λ©”λͺ¨ tech-interview.tistory.com 마우슀둜 ν”„λ‘œκ·Έλž¨μ„ ν΄λ¦­ν–ˆμ„ λ•Œ μ»΄ν“¨ν„°μ—μ„œ μΌμ–΄λ‚˜λŠ” λͺ¨λ“  일에 κ΄€ν•΄μ„œ μ„€λͺ… ν‚€λ³΄λ“œμ—μ„œ μ‚¬μš©μž μž…λ ₯이 λ“€μ–΄μ˜€λ©΄ ν‚€λ³΄λ“œ μ»¨νŠΈλ‘€λŸ¬κ°€ μΈν„°λŸ½νŠΈλ₯Ό λ°œμƒμ‹œμΌœ CPUμ—κ²Œ ν‚€κ°€ μž…λ ₯λ˜μ—ˆλ‹€λŠ” 사싀을 μ•Œλ €μ€€λ‹€. CPUλŠ” ν˜„μž¬ μˆ˜ν–‰ μ€‘μ΄λ˜ μž‘μ—…μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  μΈν„°λŸ½νŠΈ μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ OS 내에 μ •μ˜λœ ν‚€λ³΄λ“œ μΈν„°λŸ½νŠΈ 처리 루틴을 μ°Ύμ•„κ°„λ‹€. ν‚€λ³΄λ“œ..
[Unity] 에셋 λŸ°νƒ€μž„ λ‘œλ“œ(λ¦¬μ†ŒμŠ€ 폴더, 에셋 λ²ˆλ“€, μ–΄λ“œλ ˆμ„œλΈ” 에셋)
Β·
πŸ“ Game/✏ Unity
μœ λ‹ˆν‹° λ‚΄ 에셋 λŸ°νƒ€μž„ λ‘œλ“œλŠ” λ¦¬μ†ŒμŠ€ 폴더 μ‚¬μš©μ—μ„œ 에셋 λ²ˆλ“€, μ–΄λ“œλ ˆμ„œλΈ” 에셋 λ°©μ‹μœΌλ‘œ λ°œμ „ν•΄κ°€κ³  μžˆλ‹€. λ¦¬μ†ŒμŠ€ 폴더 λ¦¬μ†ŒμŠ€ ν΄λ”λŠ” μœ λ‹ˆν‹°μ—μ„œ μ œκ³΅ν•˜λŠ” λ¦¬μ†ŒμŠ€ λ‘œλ“œ ν΄λ”λ‘œ λ¦¬μ†ŒμŠ€ 폴더 μ•ˆ 파일의 경둜둜 μ ‘κ·Όν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 방식이닀. Resources.Load("파일 경둜") μ‚¬μš©ν•˜κΈ°μ— νŽΈλ¦¬ν•˜λ‹€λŠ” μž₯점이 μžˆμ§€λ§Œ, 그만큼 단점도 λ§Žμ•„ μœ λ‹ˆν‹°μ—μ„œλ„ ꢌμž₯ν•˜μ§€ μ•ŠλŠ” 방법이닀. λΉŒλ“œ μ‹œ ν•¨κ»˜ λ¬Άμ΄λ―€λ‘œ λΉŒλ“œ μ‚¬μ΄μ¦ˆκ°€ 컀져 μ•± μ‹œμž‘ μ‹œκ°„μ΄ 길어진닀. 에셋 이름을 톡해 λ‘œλ“œν•˜λ―€λ‘œ 에셋 이름 변경이 μ–΄λ ΅λ‹€. 에셋 λ²ˆλ“€(Asset Bundle) 에셋 λ²ˆλ“€μ€ 에셋듀을 ν•˜λ‚˜λ‘œ λ¬Άμ–΄ μ••μΆ• νŒŒμΌμ„ μƒμ„±ν•˜λŠ” κ°œλ…μœΌλ‘œ μƒμ„±λœ 에셋 λ²ˆλ“€μ€ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 λ°°ν¬ν•˜κ³  λŸ°νƒ€μž„μ— λ‘œλ“œν•˜μ—¬ μ‚¬μš©λœλ‹€. λΉŒλ“œμ— ν¬ν•¨λ˜μ§€ μ•ŠμœΌλ―€λ‘œ 초기 μΈμŠ€ν†¨ μ‚¬μ΄μ¦ˆ..
[C#] ν”„λ‘œνΌν‹°(Property)
Β·
πŸ“ Language/✏ C#
ν”„λ‘œνΌν‹°(Property) μ™ΈλΆ€μ—μ„œ 클래슀 λ³€μˆ˜μ˜ 값을 ν• λ‹Ήν•  λ•Œ, 일반적으둜 λ‹€μŒκ³Ό 같이 원할 것이닀. λ³€μˆ˜μ˜ 값이 항상 μ˜¬λ°”λ₯΄λ„둝 κ°•μ œν•˜μ—¬, ν• λ‹Ήλœ 값을 ν™•μ‹€νžˆ ν•˜κΈΈ λ°”λž„ 경우 λ³€μˆ˜μ˜ 값이 λ³€κ²½λ˜μ—ˆμ„ λ•Œλ₯Ό κ°μ§€ν•˜μ—¬, 이 값에 영ν–₯을 λ°›λŠ” λ‹€λ₯Έ ν•¨μˆ˜λ‚˜ λ™μž‘μ„ μ‹€ν–‰ν•˜κΈΈ λ°”λž„ 경우 ν•΄λ‹Ή λ³€μˆ˜λ₯Ό μ΄κ³³μ €κ³³μ—μ„œ κ°€μ Έκ°€ μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜μ—μ„œλ§ˆλ‹€ 쑰건듀을 λ³΄λŠ” 것은 낭비일 수 μžˆλ‹€. ν”„λ‘œνΌν‹°κ°€ 이런 뢀뢄을 단 λ²ˆμ— ν•΄κ²°ν•΄μ€€λ‹€. 참고둜 ν”„λ‘œνΌν‹°λŠ” Unity의 μΈμŠ€νŽ™ν„°μ—μ„œλŠ” 보이지 μ•ŠλŠ”λ‹€. 보이게 ν•˜κΈ° μœ„ν•΄μ„  λ‹€λ₯Έ μΆ”κ°€ μ‘°μΉ˜κ°€ ν•„μš”ν•˜λ‹€. 1. 정해진 λ²”μœ„ λ‚΄μ˜ κ°’λ§Œ ν• λ‹Ήν•˜κΈ° get: μ™ΈλΆ€μ—μ„œ ν•΄λ‹Ή ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜μ—¬ 읽어야 ν•˜λŠ” μƒν™©μ—μ„œ ν˜ΈμΆœλœλ‹€. set: μ™ΈλΆ€μ—μ„œ ν•΄λ‹Ή ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜μ—¬ 값을 ν• λ‹Ήν•΄μ•Ό ν•˜λŠ” μƒν™©μ—μ„œ 호..
[C++] μ—°μ‚°μž μ˜€λ²„λ‘œλ”©(Operator Overloading)
Β·
πŸ“ Language/✏ C & C++
μ—°μ‚°μž μ˜€λ²„λ‘œλ”©(Operator Overloading) κΈ°μ‘΄ μ œκ³΅ν•˜κ³  μžˆλŠ” μ—°μ‚°μžλ₯Ό μž¬μ •μ˜ν•˜μ—¬ μ‚¬μš©μž μ •μ˜ 클래슀둜 μ‚¬μš©ν•˜λŠ” 것을 λ§ν•œλ‹€. μƒˆλ‘œμš΄ μ—°μ‚°μžλ₯Ό μ •μ˜ν•  μˆ˜λŠ” μ—†λ‹€. κΈ°λ³Έ 제곡 데이터 ν˜•μ‹μ— μ μš©ν•  λ•Œ μ—°μ‚°μžμ˜ 의미λ₯Ό λ‹€μ‹œ μ •μ˜ν•  수 μ—†λ‹€. 멀버 ν•¨μˆ˜λ‘œ μ˜€λ²„λ‘œλ“œλœ μ—°μ‚°μžμ˜ 첫 번째 νŒŒλΌλ―Έν„°λŠ” 항상 μ—°μ‚°μžκ°€ ν˜ΈμΆœλ˜λŠ” 객체의 클래슀 ν˜•μ‹μ΄λ‹€. 1. κ΅¬ν˜„ κ°€μž₯ λ‹¨μˆœν•œ λ§μ…ˆ μ—°μ‚°μžλ₯Ό 예둜 κ΅¬ν˜„ν•΄λ³΄μž. 1) 멀버 ν•¨μˆ˜ p1+p2λŠ” p1.operator+(p2)와 κ°™λ‹€. 멀버 ν•¨μˆ˜μ™€ μ „μ—­ ν•¨μˆ˜κ°€ λ‘˜ λ‹€ 같은 λ°©μ‹μœΌλ‘œ μ˜€λ²„λ‘œλ”© λ˜μ–΄μžˆλ‹€λ©΄ 멀버 ν•¨μˆ˜κ°€ μš°μ„ μ‹œλœλ‹€. νŠΉμ • μ˜›λ‚  μ»΄νŒŒμΌλŸ¬μ—μ„  이런 상황에 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆμœΌλ―€λ‘œ μ›¬λ§Œν•˜λ©΄ 멀버 ν•¨μˆ˜λ‘œ μ˜€λ²„λ‘œλ”©ν•˜λŠ” 것이 μ’‹λ‹€. #include using names..