TIL 59: [μ»΄ν¨ν° 곡ν] κΈ°μ΄
μ€ μΈμ λ΄μ©κΉμ§ μ 리ν΄μ μ λ‘λν©λλ€! μμ¬ μμ νλ―μ΄ μλ €μ£Όμ μ μ¬λ―Έμκ² λ€μμ΅λλ€.
λ¬Έμμ΄
1 Byte = 8 Bits
λΉνΈ νλ λΉ 0κ³Ό 1λ‘ λλμ΄μ ννν μ μμ΅λλ€. 1 Byte, μ¦ 8 Bits μΈ κ²½μ° 256(2^8, 0~255)κ°μ§μ κ²½μ°λ₯Ό ννν μ μμ΅λλ€. 1 λ°μ΄νΈ μμ 0κ³Ό 1λ‘ ννν μ μλ 8κ°μ μΉΈμ΄ μλ€κ³ μκ°νμλ©΄ λ©λλ€.
ASCII μ½λλ μμ΄μ μ«μλ§ ννν μ μλ νκ³κ° μμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄, κ·Έλ¦¬κ³ μ μΈκ³μ λͺ¨λ λ¬Έμλ₯Ό μ»΄ν¨ν°μμ μΌκ΄λκ² λ€λ£° μ μκ²νκΈ° μν΄ Unicodeκ° λ§λ€μ΄μ‘μ΅λλ€. Unicodeλ μμ΄ λΏλ§ μλλΌ λ€μν μΈμ΄μ μ¬λ³Ό λ±μ ννν μ μλ λ¬Έμ μΈμ½λ© λ°©λ²μ λλ€. μ¬κΈ°μ μΈμ½λ©μ΄λ μ΄λ€ λ¬Έμλ κΈ°νΈλ₯Ό μ»΄ν¨ν°κ° μ΄μ©ν μ μλ μ νΈλ‘ λ§λλ κ²μ λλ€.
μΈμ½λ© λ°©μμΌλ‘λ ν¬κ² UTF-8κ³Ό UTF-16μ΄ μμ΅λλ€. (Unicode Tranformation Format)
λ€μ λΆμ΄μλ μ«μμ μλ―Έλ 8λΉνΈ, 16λΉνΈ κΈ°μ€μΌλ‘ μΈμ½λ©νλ€λ λ»μ λλ€. UTF-8μ UTF-16μ λΉν΄ λ°μ΄νΈ μμκ° κ³ μ λμ΄ μμΌλ©°, 1 byteμμ 4 bytesκΉμ§μ κ°λ³κΈΈμ΄λ₯Ό κ°μ§λ μΈμ½λ© λ°©μμ λλ€. λν UTF-8μ ν λ¬Έμλ₯Ό λνλ΄κΈ° μν΄ 1 λ°μ΄νΈλ₯Ό μ¬μ©νμ§λ§, UTF-16μ 2λ°μ΄νΈλ₯Ό μ¬μ©ν©λλ€. μ΅κ·Όμλ λλΆλΆ UTF-8μ μ¬μ©νκ³ μμ΅λλ€.
κ·Έλν½
κ·Έλν½μλ ν¬κ² λΉνΈλ§΅(λμ€ν°)κ³Ό 벑ν°λ‘ λλμ΄μ§λλ€.
λΉνΈλ§΅(Bitmap) κ·Έλν½μ λ€μν ν½μ (μ )λ€μ μ‘°ν©μΌλ‘ κ·Έλ €μ§λ μ΄λ―Έμ§ νν λ°©μ(jpg, gif, png, bmp, psd)μ λλ€. λΉνΈλ§΅ μ΄λ―Έμ§λ μ κ΅νκ³ νλ €ν ννμ΄ κ°λ₯νμ¬, μ£Όλ‘ μ¬μ§ μ΄λ―Έμ§μ μ£Όλ‘ μ¬μ©λ©λλ€. λΉνΈλ§΅ μ΄λ―Έμ§λ ν¬κΈ°λ₯Ό λ리거λ μ€μ΄λ©΄ μλ³Έ μ΄λ―Έμ§μ μμμ΄ κ°λ κ²μ΄ νΉμ§μ΄λ©°, 'μ΄λ―Έμ§κ° κΉ¨μ‘λ€'λΌκ³ ννλκΈ°λ ν©λλ€. μ λ¬Έμ μΈ μ©μ΄λ‘λ μ¨λ¦¬μ΄μ±(aliasing)μ΄λΌκ³ ν©λλ€. μ΄λ―Έμ§μ 볡μ‘λμ λ°λΌ 벑ν°λ‘ λ³ννλ λ° μ€λ μκ°μ΄ 걸릴 μ μμ΅λλ€.
벑ν°(Vector)λ μμμ κ³Ό λμ μ μ°κ²°ν΄ μνμ μλ¦¬λ‘ Shapeλ₯Ό κ·Έλ € νννλ λ°©μ(svg, ai)μ λ§ν©λλ€. λΉνΈλ§΅κ³Ό λ¬λ¦¬ ν¬κΈ°λ₯Ό νλ μΆμν΄λ νμ§ μ νκ° μμ΄ μ£Όλ‘ λ‘κ³ μΌλ¬μ€νΈμ κ°μ΄ μ νμ μ μ©λλ μ΄λ―Έμ§μ μ¬μ©ν©λλ€. λν ν° ν¬κΈ°μ λ²‘ν° κ·Έλν½μ μμ νμΌ μ¬μ΄μ¦λ₯Ό μ μ§ν μ μμ΅λλ€. κ·ΈλΌμλ μΌλ°μ μΌλ‘ ν¬κΈ°κ° λΉνΈλ§΅λ³΄λ€ ν½λλ€. μλνλ©΄ μ μ μμμ , λμ , κ΅΅κΈ°, λΆλλ¬μ΄ μ λ, μ»¬λ¬ λ± λ€μν λ°μ΄ν°λ€μ λ£μ΄μ€μΌνκΈ° λλ¬Έμ λλ€.
μ΄μ체μ
Mac OS, Android, Ubuntu λ±μ΄ μ΄μ체μ μ λλ€. μ»΄ν¨ν°λ₯Ό ν€λ μκ° νλμ¨μ΄κ° μ΄μ체μ λΌλ νλ‘κ·Έλ¨μ μ€νμν΅λλ€. κ·Έλ¬λ©΄ μ΄μ체μ λ VS Code, Chrome, μΉ΄μΉ΄μ€ν‘ λ± μμ© νλ‘κ·Έλ¨μ μ€νμν΅λλ€. μ΄μ체μ μ κΈ°λ₯μΌλ‘λ ν¬κ² μλ μΈκ°μ§μ κ°μ΅λλ€.
- μ¬μ©μμκ² νΈλ¦¬ν GUIνκ²½μ μ 곡ν¨
- νλμ¨μ΄λ₯Ό μ¬μ©ν μ μλλ‘ νμ¨μ΄μ λλΌμ΄λΈλ₯Ό κ΄λ¦¬ν¨
- μμ©νλ‘κ·Έλ¨μ μ€νν μ μκ² ν΄μ€
νλ‘μΈμ€ (Process) / μ€λ λ (Thread) / λ©ν° μ€λ λ (Multi-thread)
μ¬μ©μκ° μμ© νλ‘κ·Έλ¨μ μ€ννλ©΄, μ΄μ체μ λ μμ©νλ‘κ·Έλ¨μκ² νλ‘μΈμ€λΌλ λ μ μ€λλ€.
μ¬κΈ°μ Chrome λΈλΌμ°μ λ₯Ό λ κ° μ€ννλ©΄ λ κ°μ νλ‘μΈμ€κ° μμ±λ©λλ€. μ¦, νλμ μ ν리μΌμ΄μ μ λ€μ€ νλ‘μΈμ€λ₯Ό λ§λ€κΈ°λ ν©λλ€.
λ (νλ‘μΈμ€)μμ μΌνλ μΌκΎΌλ€μ΄ μ€λ λλΌκ³ μκ°νμλ©΄ λ©λλ€.
μ¬κΈ°μ λ¬Έμ λ μ€λ λλ νλ²μ νκ°μ§ μΌλ°μ λͺ»ν©λλ€. λκ°μ§ μΌμ λμν μ μμ΅λλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ λ©ν°μ€λ λλΌλ κ°λ μ λμ νμ΅λλ€. μ ν리μΌμ΄μ λ΄λΆμμμ λ©ν°νμ€νΉμ λλ€.
νμ§λ§ μ¬κΈ°μλ λ¬Έμ κ° μμ΅λλ€. κ°λ°μκ° μ΄ μ¬λ¬κ°μ μ€λ λλ₯Ό νλνλ κ΄λ¦¬ν΄μ€μΌ νλ€λ μ μ λλ€. μΌμΌμ΄ μ°κ²°ν΄μ£Όκ³ , μΌμΌμ΄ μ§νμν©μ νμΈν΄μΌ ν΄μ λ²κ±°λ‘μμ΄ μκ²Όμ΅λλ€.
μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λΉλκΈ° κ°λ μ΄ λμ λμμ΅λλ€. Node.jsκ° μμμ λΉλκΈ° μμ μ ν΅ν΄ μΌκΎΌμ κ³ μ©λΆν° μμ μ΄ λ§λ¬΄λ¦¬λ λκΉμ§ κ΄λ¦¬ν ν, λλκ³ λμ κ°λ°μμκ² μλ €μ€λλ€. λΉλκΈ° λλΆμ μ€λ λλ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μκ² λμμ΅λλ€.
κ°λΉμ§ 컬λμ (Garbage Collection, GC)
λ©΄μ λ¨κ³¨ μ§λ¬Έμ΄λΌκ³ ν©λλ€. λ©λͺ¨λ¦¬μλ μ€νκ³Ό νμ΄ μμ΅λλ€. GCλ κ·Έ μ€ λ©λͺ¨λ¦¬ μ νμ μλ μ°Έμ‘°λ§ν¬κ° λλ λ°μ΄ν°λ₯Ό νμνλ κ²μ λ§ν©λλ€. GCκ° μ€μν μ΄μ λ λ°μνλ μκ° μ μ λ©μΆκΈ°μ νλ‘κ·Έλ¨ μ€νμλκΉμ§ μν₯μ λ―ΈμΉκΈ° λλ¬Έμ λλ€.
let a; // μ€νμ μ μ₯. aμ μ€μ μ μ₯μ΄ λ κ²μ μμ 10μ μ£Όμκ°
a = 10; // νμ μ μ₯. μ°Έμ‘° μλ£ν
let b = 10; //aμ κ°μ μ£Όμκ°
console.log("result" + a); // μ΄ κ²½μ°, aλ‘ κ°κ³ a μμ μλ 10μ μ£Όμκ°μΌλ‘ κ°μ 10μ κ°μ§κ³ μ΄.
// μ΄νμ aλ₯Ό μμ΄λ€λ©΄, aλ μΈλͺ¨ μλ μ κ° λ¨. κ·ΈλΌ νλ‘κ·Έλλ°μμλ μ€νμ λΉμ. aκ° μ¬λΌμ§
// νμ μλ 10μ μ£Όμκ° λ§ν¬ λμ΄μ§. GC
μΊμ (Cache)
λ°μ΄ν°λ κ°μ μ μ₯νλ 'μμ' λ°μ΄ν°μ λλ€. μ¬κΈ°μ μ€μν κ²μ 'νλ² μμ²μ ν΄μ λ°μμ¨ λ°μ΄ν°'μμ λ³νλμ§ μλ³νλμ§μ λ°λΌ μΊμ μ¬λΆκ° κ²°μ λ©λλ€. μμ©νλ‘κ·Έλ¨λ³λ‘ μΊμκ° μ‘΄μ¬νκ³ , ν΄λΌμ΄μΈνΈ, μλ² λ± λ€μν κ³³μμ μΊμλ μμ΅λλ€.
μΊμμ λ°μ΄ν°λ μΌλ°μ μΌλ‘ RAM(Random Access Memory)κ³Ό κ°μ΄ λΉ λ₯΄κ² μ κ·Όν μ μλ νλμ¨μ΄μ μ μ₯λλ©°, μννΈμ¨μ΄ κ΅¬μ± μμμ ν¨κ» μ¬μ©λ μλ μμ΅λλ€. μΊμλ κΈ°λ³Έ μ€ν λ¦¬μ§ κ³μΈ΅(SSD, HDD)μ μμΈμ€νμ¬ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ λ λλ¦° μμ μ μꡬλ₯Ό μ€μ΄κ³ , λ°μ΄ν° κ²μμ μ±λ₯μ λμ λλ€.
μΊμμ μ₯μ μΌλ‘λ μλμ κ°μ΅λλ€
- μ ν리μΌμ΄μ μ±λ₯ κ°μ
- λ°μ΄ν°λ² μ΄μ€ λΉμ© μ κ°
- λ°±μλ λΆν κ°μ
- μμΈ‘ κ°λ₯ν μ±λ₯
- λ°μ΄ν°λ² μ΄μ€ ν«μ€ν μ κ±°
- μ½κΈ° μ²λ¦¬λ μ¦κ°: Input/Output operations per second(IOPS)λ‘ HDD, SSD λ±μ μ»΄ν¨ν° μ μ₯ μ₯μΉμ μ±λ₯ μΈ‘μ λ¨μ