πŸ“ Computer Science/✏ Design Pattern

    MVC νŒ¨ν„΄

    MVC νŒ¨ν„΄

    MVC(Model-View-Controller) νŒ¨ν„΄ μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ 맀우 널리 μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄μœΌλ‘œ 크게 λͺ¨λΈ, λ·°, 컨트둀러둜 κ΅¬μ‘°ν™”ν•œλ‹€. λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 ν”„λ ˆμ  ν…Œμ΄μ…˜ λ‘œμ§μ„ λ‚˜λˆ„μ–΄μ„œ μ²˜λ¦¬ν•œλ‹€. μ‰½κ²Œ 말해 연산을 ν•˜λŠ” 업무와 μ‚¬μš©μžκ°€ λ³΄λŠ” 화면을 λ§Œλ“œλŠ” 업무λ₯Ό λΆ„λ¦¬ν•΄μ„œ μ²˜λ¦¬ν•˜λŠ” 방식이라고 λ³Ό 수 μžˆλ‹€. μ½”λ“œμ˜ 양이 λ§Žμ•„μ Έλ„ μœ μ§€ λ³΄μˆ˜κ°€ νŽΈν•˜κ³  ν™•μž₯이 μš©μ΄ν•˜λ‹€. μ—¬λŸ¬ 개의 λ·°λ₯Ό λ§Œλ“€ 수 μžˆμœΌλ―€λ‘œ λŒ€ν™”ν˜• μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ν•©ν•˜λ‹€. λŒ€ν™”ν˜• μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λž€ μ‚¬μš©μžμ˜ μš”κ΅¬κ°€ λ°œμƒν•˜λ©΄ μ‹œμŠ€ν…œμ΄ 이λ₯Ό μ²˜λ¦¬ν•˜κ³  λ°˜μ‘ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§ν•œλ‹€. 1. ꡬ성 μš”μ†Œ 1) λͺ¨λΈ(Model) μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 뢀뢄이닀. DB에 μ—°κ²°ν•˜κ³  데이터λ₯Ό μΆ”μΆœν•˜κ±°λ‚˜ μ €μž₯, μ‚­μ œ, κ°±μ‹  λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€. λ‚΄λΆ€ λΉ„μ¦ˆλ‹ˆ..

    싱글톀 νŒ¨ν„΄(Singleton Pattern)

    싱글톀 νŒ¨ν„΄(Singleton Pattern)

    싱글톀 νŒ¨ν„΄(Singleton Pattern) μ „μ—­ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  μΈμŠ€ν„΄μŠ€λ₯Ό ν•˜λ‚˜λ§Œ μƒμ„±ν•˜λ„λ‘ ν•˜λ©° μƒμ„±λœ μΈμŠ€ν„΄μŠ€λ₯Ό μ–΄λ””μ„œλ“  μ‚¬μš©ν•  수 μžˆλŠ” νŒ¨ν„΄μ΄λ‹€. μΈμŠ€ν„΄μŠ€λ₯Ό μ—¬λŸ¬ 개 λ§Œλ“€λ©΄ μžμ›μ„ λ‚­λΉ„ν•˜κ±°λ‚˜ 버그λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆμœΌλ―€λ‘œ 였직 ν•˜λ‚˜λ§Œ μƒμ„±ν•œλ‹€. κ΅¬ν˜„ ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ§Œ μœ μ§€ν•˜κΈ° μœ„ν•΄ μƒμ„±μžμ— private μ ‘κ·Ό μ œμ–΄μžλ₯Ό μ§€μ •ν•˜κ³  μœ μΌν•œ 단일 객체λ₯Ό λ°˜ν™˜ν•  수 μžˆλ„λ‘ 정적 λ©”μ†Œλ“œλ₯Ό 지원해야 ν•œλ‹€. #include using namespace std; // λ‹€μ΄λ‚˜λ―Ή 싱글톀(Dynamic Singleton) // 게으λ₯Έ μ΄ˆκΈ°ν™”: 싱글톀을 μ‹€μ œλ‘œ ν•„μš”λ‘œ ν• λ•ŒκΉŒμ§€ μ΄ˆκΈ°ν™”λ₯Ό 미룬닀. class DynamicSingleton { private: DynamicSingleton() {} static Dynam..

    λ””μžμΈ νŒ¨ν„΄(Design Pattern)

    λ””μžμΈ νŒ¨ν„΄(Design Pattern)

    λ””μžμΈ νŒ¨ν„΄(Design Pattern) μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 섀계할 λ•Œ νŠΉμ • λ§₯λ½μ—μ„œ 자주 λ°œμƒν•˜λŠ” 고질적인 λ¬Έμ œλ“€μ΄ 또 λ°œμƒν–ˆμ„ λ•Œ μž¬μ‚¬μš©ν•  ν•  수 μžˆλŠ” ν›Œλ₯­ν•œ 해결책이닀. 각기 λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄ λͺ¨λ“ˆμ΄λ‚˜ κΈ°λŠ₯을 가진 λ‹€μ–‘ν•œ μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œλ“€μ„ κ°œλ°œν•  λ•Œλ„ μ„œλ‘œ 간에 κ³΅ν†΅λ˜λŠ” 섀계 λ¬Έμ œκ°€ μ‘΄μž¬ν•˜λ©° 이λ₯Ό μ²˜λ¦¬ν•˜λŠ” ν•΄κ²°μ±… 사이에도 곡톡점이 μžˆλ‹€. μ΄λŸ¬ν•œ μœ μ‚¬μ μ„ νŒ¨ν„΄μ΄λΌ ν•œλ‹€. νŒ¨ν„΄μ€ κ³΅ν†΅μ˜ μ–Έμ–΄λ₯Ό λ§Œλ“€μ–΄μ£Όλ©° νŒ€μ› μ‚¬μ΄μ˜ μ˜μ‚¬μ†Œν†΅μ„ μ›ν™œν•˜κ²Œ ν•΄μ£ΌλŠ” μ•„μ£Ό μ€‘μš”ν•œ 역할을 ν•œλ‹€. GoF λ””μžμΈ νŒ¨ν„΄ 23κ°€μ§€μ˜ λ””μžμΈ νŒ¨ν„΄μ„ μ •λ¦¬ν•˜κ³  각각의 λ””μžμΈ νŒ¨ν„΄μ„ 생성, ꡬ쑰, ν–‰μœ„ 3κ°€μ§€λ‘œ κ΅¬λΆ„ν–ˆλ‹€. 생성 νŒ¨ν„΄: 객체 생성에 κ΄€λ ¨λœ νŒ¨ν„΄μœΌλ‘œ 객체의 생성과 쑰합을 μΊ‘μŠν™”ν•΄ νŠΉμ • 객체가 μƒμ„±λ˜κ±°λ‚˜ λ³€κ²½λ˜μ–΄λ„ ν”„λ‘œκ·Έλž¨ ꡬ쑰에 ..