[κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] 더티 ν”Œλž˜κ·Έ νŒ¨ν„΄(Dirty Flag Pattern)

2022. 8. 28. 22:59Β·πŸ“ Computer Science/✏ Design Pattern

더티 ν”Œλž˜κ·Έ νŒ¨ν„΄(Dirty Flag Pattern)

μ΄λ¦„μ²˜λŸΌ λ”λŸ¬μš΄ νŒ¨ν„΄μ€ μ•„λ‹ˆλ‹€.
였히렀 κΉ”λ”ν•˜κ²Œ μ΅œμ ν™”ν•΄μ£ΌλŠ” νš¨κ³Όκ°€ μžˆλ‹€.

 

더티 ν”Œλž˜κ·ΈλŠ” λΆˆν•„μš”ν•œ μž‘μ—…μ„ ν”Όν•˜κΈ° μœ„ν•΄ μ‹€μ œλ‘œ ν•„μš”ν•  λ•ŒκΉŒμ§€ κ·Έ 일을 λ―Έλ£¨λŠ” 것을 λ§ν•œλ‹€. κ°’μ˜ 변경이 μΌμ–΄λ‚˜μ•Ό ν•˜λŠ” 상황을 ν”Œλž˜κ·Έλ‘œ 섀정해두어, κΌ­ ν•„μš”ν•œ μƒν™©μ—λ§Œ 갱신을 ν•˜λ„λ‘ ν•΄μ£ΌλŠ” νŒ¨ν„΄μ΄λ‹€. λ³€ν™”κ°€ μ—†λŠ” 상황인데 λΆˆν•„μš”ν•œ 연산을 ν•œλ‹€λ©΄ νΌν¬λ¨ΌμŠ€μ— μ§€μž₯을 μ£ΌκΈ° λ•Œλ¬Έμ΄λ‹€.

 

λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈμ„ 예둜 λ“€μ–΄λ³΄μž.

 

2020.06.21 - [πŸ“/✏ Computer Graphics] - λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈ

 

λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈ

λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈ 3D 세계에 λŒ€ν•œ κΈ°ν•˜ν•™μ  ν‘œν˜„κ³Ό 이 세계λ₯Ό λ°”λΌλ³΄λŠ” 관점을 μ •μ˜ν•˜λŠ” 가상 카메라λ₯Ό μ΄μš©ν•΄ 2D 이미지λ₯Ό λ§Œλ“€μ–΄λ‚΄λŠ” 과정이닀. 1) 3D λͺ¨λΈ ꡬ좕 (둜컬 슀페이슀) λͺ¨λΈλ§ 된 파

tech-interview.tistory.com

 

둜컬 μ’Œν‘œκ³„ -> μ›”λ“œ μ’Œν‘œκ³„
: λ Œλ”λŸ¬κ°€ 객체λ₯Ό 그리기 μœ„ν•΄ 객체 λͺ¨λΈμ„ λ°›μ•„ λ³€ν™˜(μœ„μΉ˜, νšŒμ „, 크기)을 μ μš©ν•˜λŠ” 단계

 

λ§Œμ•½ λ‹¨μˆœν•œ κ°μ²΄μ˜€λ‹€λ©΄ ν•œ 번의 μ—°μ‚°μœΌλ‘œ μ‰½κ²Œ λ³€ν™˜μ΄ 끝났을 것이닀. κ·ΈλŸ¬λ‚˜ κ°μ²΄λŠ” λŒ€λΆ€λΆ„ κ³„μΈ΅ν˜•μœΌλ‘œ ν•˜μœ„ 객체듀을 κ°€μ§€κ³  μžˆλ‹€. 그리고 ν•˜μœ„ κ°μ²΄λŠ” μ ˆλŒ€ μœ„μΉ˜κ°€ μ•„λ‹Œ μƒμœ„ 객체의 μƒλŒ€μ μΈ κ°’μœΌλ‘œ μ €μž₯이 λ˜μ–΄ μžˆλ‹€. 예λ₯Ό λ“€μ–΄ λͺΈν†΅μ€ (1, 2, 1)에 μ‘΄μž¬ν•˜κ³  νŒ”μ€ (2, 2, 2)에 μ‘΄μž¬ν•  λ•Œ, μ‹€μ œλ‘œ νŒ”μ€ (2, 2, 2)에 μœ„μΉ˜ν•΄ μžˆμ„κΉŒ? μ•„λ‹ˆλ‹€. μ‹€μ œ μ›”λ“œ μ’Œν‘œλŠ” (3, 4, 3)일 것이닀. (2, 2, 2)λŠ” ν•˜μœ„ κ°μ²΄μ—μ„œμ˜ 둜컬 μ’Œν‘œμ΄λ‹€.

 

λ§Œμ•½ λͺΈν†΅μ΄ 움직인닀면 ν•˜μœ„ 객체인 νŒ”λ„ 움직일 것이닀. 즉, λͺΈν†΅μ˜ 둜컬 μ’Œν‘œ 값이 λ³€κ²½λ˜λ©΄ νŒ”μ˜ 둜컬 μ’Œν‘œ 값도 λ³€κ²½λ˜λŠ” 것이닀. λ Œλ”λ§μ„ ν•˜κΈ° μœ„ν•΄μ„œλŠ” 둜컬 μ’Œν‘œκ°€ μ•„λ‹Œ μ›”λ“œ μ’Œν‘œλ₯Ό μ•Œμ•„μ•Ό ν•œλ‹€. λͺ¨λ“  객체에 λŒ€ν•΄μ„œ λ§€ ν”„λ ˆμž„λ§ˆλ‹€ μ›”λ“œ λ³€ν™˜ 계산을 ν•΄μ„œ λ Œλ”λ§ ν•˜λŠ” 것은 쉽지 μ•Šλ‹€. μƒμœ„ 객체의 이동이 ν•˜μœ„ κ°μ²΄μ—κ²Œ μž¬κ·€μ μœΌλ‘œ 영ν–₯을 미치기 λ•Œλ¬Έμ΄λ‹€.

 

맀번 λ Œλ”λ§ν•  λ•Œλ§ˆλ‹€ κ³„μ‚°ν•˜λ©΄ μ’‹κ² μ§€λ§Œ.. CPU μžμ›μ„ 아끼기 μœ„ν•΄μ„œλŠ” μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒ?

이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‚˜μ˜¨ 것이 더티 ν”Œλž˜κ·Έμ΄λ‹€. λͺ¨λ“  객체λ₯Ό μƒˆλ‘œ λ Œλ”λ§ ν•˜λŠ” 것이 μ•„λ‹Œ μ›€μ§μ΄λŠ” 객체만 λ Œλ”λ§ ν•˜λŠ” 것이닀.

 

λͺ¨λ“  객체의 μ§€μ—­ λ³€ν™˜ κ°’κ³Ό νŒŒμƒ μ›”λ“œ λ³€ν™˜ 값을 μΊμ‹œ ν•΄μ„œ μ €μž₯ν•œλ‹€. λ Œλ”λ§ ν•  λ•Œ 미리 계산해놓은 μ›”λ“œ λ³€ν™˜ 값을 μ‚¬μš©ν•˜κ³  객체가 움직이지 μ•ŠμœΌλ©΄ μΊμ‹œμ—μ„œ κΊΌλ‚΄ μ“°λ©΄ λœλ‹€. λ§Œμ•½ 객체가 움직이면 μ›”λ“œ λ³€ν™˜ 값도 같이 μ—…λ°μ΄νŠΈν•΄μ£Όλ©΄ λœλ‹€.

 

https://luv-n-interest.tistory.com/1115

 

Dirty Flag, 더티 ν”Œλž˜κ·Έ [λ””μžμΈνŒ¨ν„΄](μ΅œμ ν™”)

μ˜λ„λŠ” λΆˆν•„μš”ν•œ μž‘μ—…μ„ ν”Όν•˜κΈ° μœ„ν•΄ μ‹€μ œλ‘œ ν•„μš”ν•  λ•ŒκΉŒμ§€ κ·Έ 일을 λ―Έλ£¨λŠ” 것이닀. 게으λ₯Έ μ΄ˆκΈ°ν™”λž‘ λΉ„μŠ·ν•œ λŠλ‚Œμ„ κ°€μ§€κ³  μžˆλ‹€. ν•œ 번 μ•Œμ•„λ³΄μž λ§Žμ€ κ²Œμž„μ—μ„œ μ›”λ“œμ— λ“€μ–΄μžˆλŠ” λͺ¨λ“  객체λ₯Ό

luv-n-interest.tistory.com

 

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Computer Science/✏ Design Pattern' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern)
  • [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄
  • [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ 루프 νŒ¨ν„΄(Game Loop Pattern)
  • μ˜΅μ €λ²„ νŒ¨ν„΄(Observer Pattern)
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
[κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] 더티 ν”Œλž˜κ·Έ νŒ¨ν„΄(Dirty Flag Pattern)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”