๐Ÿฅ‡ ์ •๋ณด์ฒ˜๋ฆฌ ๊ธฐ์‚ฌ ์‹ค๊ธฐ ๊ธฐํƒ€๋ฌธ์ œ

LRU ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€ ๋ถ€์žฌ ํšŸ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. (ํ”„๋ ˆ์ž„ 3์นธ)

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
  • LRU(Least Recently Used)โ€‹โ€‹๋Š” ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋…€์„์„ ๊ต์ฒดํ•œ๋‹ค.
  • LFU(Least Frequently Used)๋Š” ์ตœ์†Œ ์‚ฌ์šฉํšŸ์ˆ˜ ์šฐ์„  ๊ต์ฒด ์ด๋‹ค. ๋™์ผํ•œ ๋นˆ๋„์˜ ๊ฒฝ์šฐ, ๊ฐ€์žฅ์˜ค๋ž˜๋œ ํŽ˜์ด์ง€๋ฅผ ์„ ํƒ.
    ์ฃผ์˜

    ๋ถ€์žฌ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ• ๋–„, ์ดˆ๊ธฐ ๋น„์–ด์žˆ๋Š” ํ”„๋ ˆ์ž„์— ํŽ˜์ด์ง€๊ฐ€ ์‚ฝ์ž…๋ ๋•Œ๋„ ํšŸ์ˆ˜๋ฅผ ์„ผ๋‹ค.


๋‹ค์Œ SQL ๋นˆ์นธ์— ๋“ค์–ด๊ฐˆ ๊ฐ’์€?

**[ํ…Œ์ด๋ธ”]**
์‚ฌ์› [์‚ฌ์›๋ฒˆํ˜ธ(PK), ์ด๋ฆ„, ๋‚˜์ด, ๋ถ€์„œ]
๋ถ€์„œ [์‚ฌ์›๋ฒˆํ˜ธ(PK), ์ด๋ฆ„, ์ฃผ์†Œ, ๋‚˜์ด]

โ‘  ์‹ ์ž…์‚ฌ์›์ด ๋“ค์–ด์™€์„œ ๋ถ€์„œ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ์„ ์ถ”๊ฐ€
INSERT INTO ๋ถ€์„œ (์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์ฃผ์†Œ, ๋‚˜์ด) **(  โ‘   )** (240728, 'ํ™๊ธธ๋™', '์„œ์šธ', 30);

โ‘ก ๋ถ€์„œ ํ…Œ์ด๋ธ”์—์„œ ์ถ”๊ฐ€ํ•œ ์‚ฌ์›์„ ๊ฒ€์ƒ‰ํ•œ ํ›„ ์‚ฌ์› ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€
INSERT INTO ์‚ฌ์› (์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ๋‚˜์ด, ๋ถ€์„œ)
**(  โ‘ก  )** ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ๋‚˜์ด, โ€˜์˜์—…โ€™ FROM ๋ถ€์„œ WHERE ์ด๋ฆ„ = 'ํ™๊ธธ๋™';

โ‘ข ์ „์ฒด ์‚ฌ์› ํ…Œ์ด๋ธ” ์กฐํšŒ
SELECT * **(  โ‘ข  )** ์‚ฌ์›;
 
โ‘ฃ ์‚ฌ์›์˜ ํ‡ด์‚ฌ๋กœ ์ธํ•ด ๋ถ€์„œ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ 'ํ‡ด์‚ฌ'๋กœ ๋ณ€๊ฒฝ
UPDATE ์‚ฌ์› **(  โ‘ฃ  )** ๋ถ€์„œ = 'ํ‡ด์‚ฌ' WHERE ์‚ฌ์›๋ฒˆํ˜ธ = 240728;

๋‹ต :

  1. values
  2. select
  3. from
  4. set

  • ๋‹ค์Œ์€ ์šด์˜์ฒด์ œ ํŽ˜์ด์ง€ ์ˆœ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ• ๋‹น๋œ ํ”„๋ ˆ์ž„์˜ ์ˆ˜๊ฐ€ 3๊ฐœ์ผ ๋•Œ LRU์™€ LFU ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŽ˜์ด์ง€ ๋ถ€์žฌ ํšŸ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
 ํŽ˜์ด์ง€ ์ฐธ์กฐ ์ˆœ์„œ : 1, 2, 3, 1, 2, 4, 1, 2, 5, 7

LRU - ๋งˆ์ง€๋ง‰์— ์‚ฌ์šฉ๋œ ํŽ˜์ด์ง€ ์‚ญ์ œ

LFU - ๊ฐ€์žฅ ์‚ฌ์šฉ ๋นˆ๋„์ˆ˜๊ฐ€ ์ ์€ ํŽ˜์ด์ง€ ์‚ญ์ œ, ์‚ฌ์šฉ ๋นˆ๋„์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ์˜ค๋ž˜๋œ ํŽ˜์ด์ง€ ์‚ญ์ œ

๋‹ต :

(1) LRU : 6 (2) LFU : 6


๋‹ค์Œ JAVA์ฝ”๋“œ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ค‘๋ณต์—†์ด ์ ์œผ์‹œ์˜ค

class Parent {
    int x, y;
 
    Parent(int x, int y) { //1
        this.x=x;
        this y=y;
    }
 
    int getT() { //2
        return x*y;
    }
}
 
โ€‹class Child extend Parent {
    int x;
 
    Child (int x) { //3
        super(x+1, x);
        this.x=x;
    }
 
    int getT(int n){ //4
        return super.getT()+n;
    }
}
 
class Main {
    public static void main(String[] args) { //5
        Parent parent = new Child(3); //6
        System.out.println(parent.getT()); //7
    }
}

์‹คํ–‰ ์ˆœ์„œ : 5 โ†’ ( ) โ†’ ( ) โ†’ ( ) โ†’ ( ) โ†’ ( )
  • new Child(3)๋กœ Childํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 6 โ†’ 3
  • ์ดํ›„ super์—์„œ Parent์˜ ์ƒ์„ฑ์ž๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 3 โ†’ 1
  • ๊ทธ๋ฆฌ๊ณ  7๋ฒˆ print๊ฐ€ ์‹คํ–‰๋˜๋ฉด, ๋‹คํ˜•์„ฑ์— ์˜ํ•ด 2๋ฒˆ getT๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 7 โ†’ 2

๋‹ต :

5 โ†’ 6 โ†’ 3 โ†’ 1 โ†’ 7 โ†’ 2