본문 바로가기

프로그래밍/프로그래밍 이론12

오브젝트 풀(Object Pool) 패턴 오브젝트 풀 패턴이란?객체 재사용을 통해 성능을 최적화하는 디자인 패턴이다 객체 생성과 소멸에는 비용이 많이 들기 때문에, 미리 생성된 객체들을 풀에 저장해두고 필요할 때 가져다 쓰는 방식을 사용한다 오브젝트 풀의 동작 방식객체가 필요하면 새로운 인스턴스를 생성하는 대신, 풀에서 사용 가능한 객체를 가져온다작업이 끝난 객체는 제거하지 않고 풀에 반환하여 다시 사용할 수 있도록 한다만약 풀에 사용 가능한 객체가 없다면, 새로운 객체를 생성하거나 풀 크기를 확장할 수 있다 오브젝트 풀이 해결하는 문제객체 생성 비용 감소: 객체를 반복적으로 생성·소멸하는 비용을 줄여 성능을 향상시킨다메모리 사용 최적화: 불필요한 객체 생성을 방지하여 메모리 사용량을 줄인다 오브젝트 풀 사용시 주의점메모리 사용량 증가: 미리 .. 2025. 3. 21.
MVP(Model-View-Presenter) 패턴 MVP 패턴이란?MVC에서 파생되었으며 3개의 요소가 역할을 나누어 상호작용하게 만드는 개념으로 UI를 구현할 때 사용되는 디자인 패턴이다 각 요소의 역할Model데이터를 관리한다ViewUI 컴포넌트 관리를 담당하며 사용자와의 상호작용도 담당한다화면을 그리지만 직접 Model을 조작하지 않는다입력을 받으면 Presenter에게 전달한다PresenterView와 Model 사이에서 데이터를 주고받는 중간 역할을 한다Model에서 데이터를 가져와 View에 반영한다View의 이벤트를 처리하여 Model을 업데이트 한다중간에 데이터를 가공해야 하는 비즈니스 로직이 있다면 보통 프레젠터에서 담당한다 예시 동작 사이클사용자가 View에서 입력을 제공한다View는 입력을 Presenter에게 전달한다Presente.. 2025. 3. 21.
싱글톤(Singleton) 패턴 싱글톤 패턴이란?전역적으로 하나의 인스턴스만 존재해야 하는 객체를 보장하는 패턴이다 싱글톤 패턴이 해결할 수 있는 문제객체의 중복 생성 방지: 하나의 인스턴스만 생성되도록 보장할 수 있다글로벌 상태 관리: 객체에 대한 전역적인 접근점을 제공할 수 있다 싱글톤 패턴으로 인해 발생할 수 있는 문제글로벌 접근점으로 인한 불필요한 의존성 증가: 싱글톤을 사용하면 다른 객체들이 싱글톤에 의존할 가능성이 커지기 때문에 주의해야 한다테스트시 Mock 활용 복잡성 증가: 싱글톤이 강한 결합도를 유발하여 테스트 시 Mock 활용이 어려워질 수 있다단일 책임 원칙 위반: 싱글톤 객체는 자기 자신을 단일 인스턴스로 유지하는 책임과 본래의 기능을 수행하는 책임을 동시에 가지므로 단일 책임 원칙을 위반할 수 있다 Referen.. 2025. 3. 21.
소프트웨어 디자인 패턴이란? 디자인 패턴이란?소프트웨어 개발에서 반복적으로 발생하는 문제를 해결하기 위한 일반적인 설계 템플릿이며 특정한 상황에서 효과적인 해결책을 제공한다 디자인 패턴의 장점디자인 패턴의 장점을 한마디로 정리하자면 설계 표준화로 인한 개발속도 향상이다 해당 패턴에 대해 구성원들이 알고있다는 가정 하에, 공통적인 설계 방식을 사용하므로 개발자가 코드를 읽고 이해하는 속도가 높아진다패턴을 사용하는 상황이 정해져있으니 코드의 의도를 명확하게 표현할 수 있고 구조를 이해하는 속도가 높아지기 때문이다 디자인 패턴의 문제패턴은 만능 도구가 아니다. 특정 상황에 적합하게 사용해야 하는데 막무가내로 적용한다거나, 현재 제품의 상황에 맞게 어래인지 하지 않고 그대로 적용하는 경우 문제가 생길 수 있다 단순한 해결책이 더 효과적일 .. 2025. 3. 21.
Reactive Programming이란? 무엇인가?리액티브 프로그래밍은 데이터 스트림에서의 변화를 탐지하고 이를 전파하는 이벤트를 받아 실행하는 형태로 동작하는 선언적 프로그래밍 패러다임이다데이터 스트림데이터 스트림이란 일관된 신호의 흐름을 의미한다 예를 들어, Unity의 Update 혹은 FixedUpdate가 일정한 주기로 호출되는 것과 비슷하다이때 특정 입력(인풋)이 들어오거나 객체의 상태가 변하면, 신호의 흐름에 새로운 값이 추가되는 것이라고 볼 수 있다 주요 특징선언형 접근리액티브 프로그래밍은 무엇을 해야하는지 기술하며, 이는 명령형 프로그래밍의 어떻게 해야하는지와 대조된다. 이러한 접근 방식은 코드의 가독성을 높일 수 있다// 명령형List numbers = new List { 1, 2, 3 };// 새로운 값이 추가될 때마다 직접.. 2025. 3. 20.
객체지향적 프로그래밍의 장점 객체지향 프로그래밍 (OOP; Object-Oriented Programming)객체지향 프로그래밍(OOP; Object-Oriented Programming)은 데이터를 객체로 표현하고, 객체 간의 상호작용을 통해 프로그램을 구성하는 방식이다 OOP의 형태로 프로그래밍하면 다양한 장점이 있지만, 결국 핵심은 다음 두 가지로 정리할 수 있다  주요 장점확장성과 유연성 향상, 그리고 결합도 감소추상 클래스와 인터페이스 상속을 통해 한 번 작성한 코드를 여러 곳에서 재사용할 수 있으며 느슨한 결합을 구현할 수 있다. 이에따라 공통된 기능도 추상화되기 때문에 중복 코드 또한 감소시킬 수 있다// 공통된 기능을 추상화한 인터페이스interface Payment { void processPayment();}.. 2025. 3. 12.
반응형