230105(λͺ©)
π μ±μ₯μΌμ§ 3.1
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ ν€μλ (1.0)
μ΅λν κ°λ¨νκ² μ 리, μΆνμ 보면μ μ€μ€λ‘ μ€λͺ
π κ²½ν μμ£Όλ‘ (2.0)
λ¨μ μ 보λ₯Ό μ λ¬νκΈ°λ³΄λ€ λ¬΄μμ λ°°μ κ³ μ΄λ»κ² ν΄κ²°νλμ§ μ§§κ³ κ°λ¨νκ² μμ±
βοΈ μ ν΄μ§ ν νλ¦Ώμ λ§μΆ°μ (3.0)
ν€μλ, κ²½ν λͺ¨λ μ’λ€. λ€λ§ λ§€μΌ μμ±νκΈ°λ‘ λ§μ λ¨Ήμλ§νΌ ν΅μ¬λ§ κ°κ²°νκ² μ 리ν μ μκ² ν νλ¦Ώμ μμ± (3.1) 230102λΆν° μμλλ νμ΅μ κ΄ν λ΄μ© μΆκ°
π μ€λμ ν€μλ
Storage, Memory, CPU
- Storage: λμ€μΌ, CD, HDD, SDDμ κ°μ μ μ₯μ. μ©λμ΄ ν¬κ³ λΉκ΅μ κ°κ²©μ΄ μΈλ€. μλ£λ₯Ό
μ μ₯
νλ μ©λ. μ»΄ν¨ν°λ₯Ό κΊΌλ λ¨μμλ€. - Memory: νν RAMμ΄λΌκ³ λΆλ₯΄λ λ©λͺ¨λ¦¬. μ©λμ΄ μκ³ μ»΄ν¨ν°λ₯Ό μ’
λ£νλ©΄ λ°μ΄ν°κ° μ¬λΌμ§λ€. λ°μ΄ν°λ₯Ό λΉ λ₯΄κ²
μ΄λ°
ν μ μλ€.(κ°μ Έμ¬ μ μλ€.) - CPU: μ€μμ²λ¦¬μ₯μΉ. λ°μ΄ν°λ₯Ό μ²λ¦¬νλ μλκ° κ°μ₯ λΉ λ₯΄λ€.
κ·Έλ κΈ° λλ¬Έμ Storage -> Memory -> CPU μμλ‘ λ°μ΄ν°λ₯Ό μ΄λ°νκ² λλ€.(μ μ₯μ -> λΉ λ₯Έ μ΄λ°μ± -> λΉ λ₯Έ μ²λ¦¬μ) μλ£ κ΅¬μ‘°μ κ°μ₯ μ€μν λ―Έμ μ Memory μ¬μ©μ μ€μ΄λ κ²μ΄λ€.
- κ°κ°μ μ£Όμ(λ°μ΄ν°κ° μ μ₯λμ΄μλ)μ μ κ·Όνλ 걸리λ μκ°μ΄ λμΌν λ©λͺ¨λ¦¬λ₯Ό
RAM(Random Access Memory)
λΌκ³ νλ€.- μ¦, μ£Όμλ§ μλ€λ©΄ μνλ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² κ°μ Έμ¬ μ μλ€.
Array, Array List, Linked List
- Array(λ°°μ΄)
- indexλ₯Ό ν΅ν΄ valueμ μ κ·Όνλ€.
- λ°°μ΄ κ°μ΄λ°μ μμκ° μμ λλ©΄ nullκ°μ΄ λλ€.
- indexλ₯Ό ν΅ν νμ μ, O(1)
- Array List(μ°μ λ°°μ΄, μ°μ 리μ€νΈ)
- κ°κ°μ λ°μ΄ν°κ° μ°μλ λ©λͺ¨λ¦¬ μ£Όμμ λμ΄λμ΄ μ μ₯λλ€.
- indexλ₯Ό ν΅ν΄ valueμ μ κ·Όνλ€.
- λ°°μ΄ κ°μ΄λ°μ μμκ° μμ λλ©΄ λ€μ μμκ° ν μΉΈ λΉκ²¨μ§λ€. -> μ½μ /μμ μ κ° μμκ° μ΄λνλ―λ‘ ν¨μ¨μ μ΄μ§ λͺ»νλ€.
- νμμ μ©μ΄νμ§λ§, μ½μ /μμ μ ν¨μ¨μ λ¨μ΄μ§λ€.(νμ: O(1), μ½μ /μμ : O(n))
- Linked List(μ°κ²° 리μ€νΈ)
- κ°κ°μ λ°μ΄ν°κ° λ©λͺ¨λ¦¬ κ³³κ³³μ ν©μ΄μ Έ μλ, κ° λ°μ΄ν°κ° λ€μ λ°μ΄ν°μ λν μ 보λ₯Ό λ΄κ³ μμ΄ μ°κ²°λμ΄μλ€.
- ν¬μΈν° λΆλΆ(λ€μ λ°μ΄ν°λ₯Ό κ°λ¦¬ν€λ, μ°Έμ‘°νλ λΆλΆ)μ΄ νμνκΈ° λλ¬Έμ κ³΅κ° ν¨μ¨μ μ’μ§ λͺ»νλ€.
- νμμ μ²μλΆν° νλνλ ν¬μΈν°λ₯Ό ν΅ν΄ κ°κΈ° λλ¬Έμ ν¨μ¨μ μ΄μ§ λͺ»νμ§λ§, μ½μ /μμ μ ν¬μΈν°λ§ μ°κ²° νΉμ μ κ±°νλ©΄ λκΈ° λλ¬Έμ ν¨μ¨μ μ΄λ€.(νμ: O(n), μ½μ /μμ : O(1))
μλ°μ€ν¬λ¦½νΈμμ λ³μμ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό νμΈν μ μλκ°?
- κ²°λ‘ :
μ μ μλ€.
μλ°μ€ν¬λ¦½νΈ μΈμ΄λ C++λ‘ λ§λ€μ΄μ§ V8μμ§μ ν΅ν΄ νμ±λμ΄ μ½λκ° ν΄μλλ€.(chrome, nodejs λͺ¨λ) μ΄ λ, μ€κ°μ V8μμ§μ΄ κ°μ νκΈ° λλ¬Έμ C++μ²λΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ»μ μ μλ€.
μ°Έκ³ λ‘ C++μμ 보μ¬μ§λ λ©λͺ¨λ¦¬ μ£Όμλ μ€μ 물리μ μΈ λ©λͺ¨λ¦¬ μ£Όμκ° μλλ€. κ° μ΄μ체μ μμ ν λΉν κ°μ λ©λͺ¨λ¦¬ μ£Όμμ΄λ€. μΆκ°: ν¬λ‘¬ κ°λ°μ λꡬμμ Memoryλ₯Ό ν΅ν΄ νμΈ κ°λ₯ν μ£Όμκ° μκΈ°λ νλ°, μ΄κ² μ€μ 물리μ μΈ λ©λͺ¨λ¦¬μΈμ§λ νμ€μΉ μλ€.(μλ§λ μλ κ² κ°λ€.)
UUID(Universal Unique IDentifier, λ²μ© κ³ μ μλ³μ)
- UUID: μ΄λ€ κ°μ²΄(λ°μ΄ν°)λ₯Ό κ³ μ νκ² μλ³νλ λ° μ¬μ©λλ νμ€
- μ£Όλ‘ λ€νΈμν¬ μ μλ‘ λͺ¨λ₯΄λ κ°μ²΄λ€μ μλ³νκΈ° μν΄ μ¬μ©λλ€.
- μμ£Ό μλ°ν λ°μ§λ©΄ μλ²½νκ² κ³ μ μ±μ κ°μ§λ μμ§λ§, μ¬μ€μ μ€λ³΅λ κ°λ₯μ±μ΄ κ±°μ μλ€κ³ μΈμ λκΈ° λλ¬Έμ λ§μ΄ μ¬μ©λλ€.
μλ°μ€ν¬λ¦½νΈμ Math.random()μ μνΈνμ μΌλ‘ μμ ν λμλ₯Ό μμ±νλ κ²μ΄ μλλ€. κ·Έλ¬λ―λ‘ λ³΄μμ΄ μ€μν λ‘μ§μμλ μ¬μ©νμ§ μλ κ² μ’λ€.
Web Crypto API
- λΈλΌμ°μ μμ μ¬μ©λ°©λ²
let arr = new Uint32Array(10);
window.crypto.getRandomValues(arr);
// arrκ° μ΄λ»κ² λ³νλμ§ νμΈν΄λ³΄μ
- Nodejsμμ μ¬μ©λ°©λ²
const getUuid = () => {
const randomBytes = require('crypto').randomBytes(2);
const randomNumber = randomBytes.toString('hex');
return randomNumber;
};
μ°Έκ³ μλ£
- μλ°μ€ν¬λ¦½νΈ λ°°μ΄μ λ°°μ΄μ΄ μλλ€.
- UUIDμ μλ°μ€ν¬λ¦½νΈ λμ μμ±κΈ° feat. crypto API
π μμ½ λ° ν루 κ°λ¨ νκ³
μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ λν΄μ μ’λ κΉκ² μ μ μλ ν루μλ€. λ, λ§€λ² Memoryμ λν κ°λ
μ λ§μ°νκ²λ§ κΈ°μ΅νκ³ μμλλ° μ€λμ κ³κΈ°λ‘ μ’ νμ€ν μ κ² κ°λ€. 곡λΆν λλ§λ€ λλΌμ§λ§, 곡λΆν μλ‘ μ»΄ν¨ν°κ°
μ΄λ»κ² λ°μ ν΄μλμ§ λκ»΄μ§λ κ² μ¬λ―Έμλ€. λΉμ μ¬λλ€μ΄ νμμ μν΄μ λ€μν μλ£ κ΅¬μ‘°λ€μ ꡬννκ³ μκ³ λ¦¬μ¦μ μκ°ν΄λ΄κ³ λμκ° νλμ¨μ΄ ꡬμ±μ ν κ² μ°Έ μ κΈ°νλ€. κ·Έ λΉμμ νλ‘κ·Έλλ°μ 곡λΆνλ€λ©΄, μ λ§
μλ‘μ΄ μλ
κ° λ λ§ν κ²λ€μ΄ λ§μ κ² κ°λ€. μλ§ λ―Έλμλ μ§κΈλ μ λ§ μ λ§ λ€μν κΈ°μ λ€μ΄ μμλ μκΈ°λ‘ λκ»΄μ§μ§ μμκΉ μΆλ€. κ³μ λ 곡λΆνκ³ λ°°μμ μ¬λ―Έλ₯Ό λλΌλ κ°λ°μκ° λμ!