본문 바로가기

분류 전체보기267

Prototype 패턴 prototype 패턴이란?복제 기반으로 객체를 생성하는 패턴new 를 직접 쓰지 않고, 이미 존재하는 객체를 복사해서 새로운 객체를 만드는 방식원형(prototype)객체를 두고, 그걸 복사해서 새로운 인스턴스를 만든다는 개념언제 쓰나?객체 생성 비용이 클 때비슷한 객체를 여러 개 만들어야 하는데, 값만 조금씩 바뀌는 경우객체 구조가 복잡해서 생성자 호출보다 복제하는 게 더 효율적일 때구조설명 그냥 new로 사용하는 경우class Document { constructor( public title: string, public content: string, public author: string ) {}}const doc1 = new Document("계약서", "내용...", "홍길.. 2025. 9. 12.
Builder 패턴 Builder 패턴이란객체를 단계별로 생성할 수 있게 도와주는 생성 패턴복잡한 생성자 호출 대신, 메서드 체인으로 원하는 속성을 설정하고 마지막에 .build()로 객체를 완성new로 직접 객체를 만들면 파라미터 순서를 기억해야 하고 가독성이 떨어지는데, 빌더는 그 문제를 해결해줌 쓰는 상황생성할 객체에 옵션이 많을때 (필수/선택 속성 섞여있을 때)생성 과정이 여러 단계로 나눠질때같은 객체라도 조합에 따라 다르게 생성해야 할 때빌더가 없는 상황에서 new User 객체를 생성한다면?class User { constructor( public id: number, public name: string, public email?: string, public phone?: string, .. 2025. 9. 9.
Abstract Factory (추상 팩토리 패턴) 추상 팩토리 패턴이란팩토리 메서드와 비슷한듯 조금 다름팩토리 메서드는 하나의 객체를 찍어내는 공장이라면, 추상 팩토리는 관련 객체들의 집합을 찍어내는 공장단품메뉴가 아니라 세트 메뉴를 찍어냄 예를들어,Mac용 버튼, 체크박스Windows용 버튼, 체크박스해당 기능을 팩토리 메서드로 제작하면 버튼 따로, 체크박스 따로 공장을 만들어야 하므로 불편함.하지만 추상 팩토리 패턴으로 디자인한다면, mac용, windows 용 세트로 묶어서 제작 할 수 있음 프론트엔드에선테마 UICross-platform UI (React-Native, Web등)백엔드에선여러 DB 공급자클라우드 서비스 등에 사용되고, 핵심은 서로 관련된 객체들의 일관성 유지 임구현 방식 1. 제품군 인터페이스interface Button { r.. 2025. 9. 9.
Factory Method 패턴 보통 객체를 만들때 이런 방식으로 객체가 만들어짐const btn = new PrimaryButton(); 위와같은 객체가 늘어나면, 단점이 여러가지가 생김객체 종류가 늘어나면 new 가 많아져서 코드 유지보수가 어려움클라이언트 코드와 구체 클래스가 강하게 결합되어 확장성이 떨어짐API, 버튼 등이 늘어나면 코드가 지저분해짐Factory Method는 객체 생성 로직을 한군데 모아두고, 확장성 있게, 수정에 닫혀있게 만드는게 핵심 프론트에선컴포넌트 생성API 클라이언트백엔드에선DB 연결 객체결제 모듈(카드, 카카오)등에서 사용된다.구현방식 1. 인터페이스 정의// 인터페이스 정의interface Button { render(): void;} 2. 구체화 클래스들// 구체화 클래스들class Primar.. 2025. 9. 9.
singleton(싱글턴) 패턴 싱글턴 패턴이란어떤 클래스의 인스턴스를 딱 하나만 생성하고, 모든 코드에서 그 인스턴스를 공유해서 쓰도록 보장하는 패턴예시로class Singleton { private static instance: Singleton; private constructor() { console.log('singleton created!'); } public static getSingleton(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; }}const a = Singleton.getSingleton();const b = Singl.. 2025. 9. 5.
MCP, TOOL, PROMPT MCP(Model Context Protocol)이란LLM이 외부 시스템, 데이터 또는 기능을 활용할 수 있도록 돕는 개방형 프로토콜을 의미한다.LLM이 단순히 텍스트를 생성하는 것을 넘어, 엑셀, 코드, PPT, 이미지 등 실제 사람이 제작해야하는 걸 상호작용한다. MCP 주요 역할:Tools: LLM이 특정 작업을 수행하기 위해 호출할 수 있는 실행 가능한 기능을 노출함(tool 목록, tool 설명, tool에 필요한 매개변수 설명 등)Resources: LLM이 상호작용에 사용할 수 있는 데이터 및 콘텐츠를 제공하여 LLM의 문맥을 풍부하게 함Prompts: LLM이나 사용자가 상호작용을 안내하는데 사용할 수 있는 재사용 가능한 프롬프트 템플릿 및 워크플로우를 정의 TOOL 이란tool은 특정 .. 2025. 5. 28.