⚔️ 전략 패턴 (Strategy Pattern)
·
Computer Science/Design Pattern
객체의 행위(Algorithm)를 바꾸고 싶은 경우, 해당 객체의 코드를 직접 수정하지 않고 '전략'이라고 부르는 캡슐화한 알고리즘(행위)을 컨텍스트(Context) 안에서 바꿔주면, 행위가 상호 교체될 수 있게 만드는 패턴입니다.📁 전략 패턴 비유(ft. 얄코 용사)영상(링크)에서는 전략 패턴을 게임 캐릭터(용사)에 비유하여 설명합니다. 1. 문제가 되는 방식 (상속의 함정)만약 Warrior 클래스 안에 attack() 메서드(행위)가 '칼로 공격'이라고 고정되어 있다고 가정해 보겠습니다.이때 '활 쏘는 용사'가 필요하면 어떻게 할까요? Warrior를 상속받아 Archer를 만들고 attack()을 '활 쏘기'로 덮어씌울(Override) 수 있습니다. 만약 '불 마법 쓰는 용사'가 필요하면 또 ..
🏭 팩토리 패턴 (Factory Pattern)
·
Computer Science/Design Pattern
객체의 생성(create) 과정을 전담하는 클래스(공장)를 만들어, 객체 생성을 사용하는 코드로부터 분리/추상화하는 디자인 패턴입니다.팩토리(Factory), 즉 '공장'이라는 이름처럼, 객체를 직접 new로 만드는 것이 아니라 '공장'에 요청하여 객체를 받아오는 방식입니다.핵심 정의: 객체를 사용하는 코드(클라이언트)에서 객체 생성 코드를 분리(추상화)하는 패턴입니다.패턴 방식: 상속 관계에 있는 두 클래스에서, 상위 클래스(추상 클래스)가 인터페이스와 같은 중요한 뼈대를 결정하고, 하위 클래스(구현 클래스)가 객체 생성에 관한 구체적인 내용을 결정합니다.👍 팩토리 패턴의 장점느슨한 결합 (Loose Coupling): 객체를 사용하는 상위 클래스와 객체를 생성하는 하위 클래스가 분리됩니다. 이로 인..
💡 싱글톤 패턴 (Singleton Pattern)
·
Computer Science/Design Pattern
하나의 클래스에 오직 하나의 인스턴스(객체)만 가지도록 보장하는 패턴입니다.하나의 클래스를 기반으로 여러 개의 개별 인스턴스를 만들 수 있지만, 그렇게 하지 않고 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈처럼 프로그램 전체에서 유일해야 하는 객체에 사용됩니다. 📁싱글톤 패턴 요약 (ft. 얄코 버거 🍔)영상(링크)에서는 싱글톤 패턴을 '얄코 버거' 프랜차이즈에 비유하여 설명합니다. 1. 클래스와 객체 (프랜차이즈 본사 vs 개별 매장)클래스 (Class): '얄코 버거'라는 프랜차이즈 본사(설계도) 자체입니다.인스턴스 객체 (Instance): 본사의 설계도를 바탕으로 여기저기 생긴 개별 매장입니다.인스턴스 변수 (Instance Field): ..
👨‍💻 디자인 패턴과 주요 원칙
·
Computer Science/Design Pattern
개발을 시작할 때 우리는 '도구'를 사용합니다. 이 도구는 크게 라이브러리와 프레임워크로 나뉩니다. 둘 다 "공통 기능들의 모음"이지만, 가장 큰 차이점은 '제어권'이 누구에게 있느냐입니다.📚 라이브러리 (Library)정의: 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것입니다.특징: 개발자가 코드의 전체 흐름을 주도합니다. 개발자는 필요할 때마다 라이브러리를 호출(Call)해서 사용합니다.규칙: 폴더명, 파일명 등에 대한 특별한 규칙이 없어 상대적으로 자유롭습니다.비유: 필요할 때마다 꺼내 쓰는 '망치'나 '드라이버' 같은 연장통입니다.🏗️ 프레임워크 (Framework)정의: 프로그램의 기본 구조(뼈대)가 이미 잡혀있는 반제품 형태의 모듈입니다.특징: 프레임워크가 코드의 흐름을 주도합니다...