본문 바로가기

프로그래밍/Computer Science(CS)7

객체지향 프로그래밍의 5가지 설계 원칙, SOLID 객체지향 프로그래밍의 5가지 설계 원칙, SOLID SOLID 원칙을 지킨다면 소프트웨어를 보다 견고하고 유연하게 만들어 줄 뿐만 아니라 유지보수와 확장에도 용이하게 한다. [단일 책임의 원칙(SRP, Single Responsibility Principle)] 단일 책임 원칙은 클래스는 단 하나의 책임만 가져야 한다는 원칙 즉, 클래스가 변경되어야 하는 이유는 오직 하나여야 한다. class CustomerDataAccess { public void saveCustomer(Customer customer) { // 고객 정보 저장 로직 } public Customer retrieveCustomer(int customerId) { // 고객 정보 검색 로직 } public void updateCustom.. 2024. 3. 15.
MVC(Model-View-Controller) 패턴 MVC (Model-View-Controller) 패턴이란? 애플리케이션의 구조를 세 가지 주요 부분으로 나누어 개발하는 방법 각각의 부분은 특정 역할을 담당하며 서로 간의 의존성을 최소화하여 유지보수성과 재사용성을 향상시킨다. 모델 (Model) 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터의 상태를 관리하고, 데이터의 변경을 통보받아 뷰에 업데이트를 알립니다. 사용자 인터페이스나 컨트롤러와 독립적으로 존재하며, 데이터를 다루는 규칙과 로직을 정의합니다. 뷰 (View) 사용자 인터페이스를 담당합니다. 모델의 상태에 따라 화면을 표시하고, 사용자의 입력을 컨트롤러에 전달합니다. 모델과 직접적으로 상호작용하지 않으며, 모델의 변경을 감지하여 화면을 업데이트합니다. 컨트롤러 (Controlle.. 2024. 3. 12.
반복자 패턴(iterator pattern) 반복자(이터레이터) 패턴이란? 컬렉션의 요소에 순차적으로 접근할 수 있는 인터페이스를 제공하는 패턴 컬렉션의 내부 구조를 노출하지 않고도 요소에 접근할 수 있으며, 컬렉션의 순회를 추상화하여 구현이 가능하다. 이터레이터 (Iterator) 요소에 접근하기 위한 인터페이스를 정의합니다. 주로 next() 메서드를 통해 다음 요소에 접근할 수 있습니다. 컬렉션 (Collection) 이터레이터를 생성하는 인터페이스를 정의합니다. 이터레이터를 생성하는 createIterator() 메서드 등이 포함될 수 있습니다. 컨크리트 이터레이터 (Concrete Iterator) 이터레이터 인터페이스를 실제로 구현합니다. 컬렉션 내의 현재 위치 등을 추적하면서 요소에 접근합니다. 컨크리트 컬렉션 (Concrete Col.. 2024. 3. 7.
프록시 패턴(proxy pattern) 프록시 패턴이란? 다양한 상황에서 객체 간 상호작용을 제어하고 향상시키는 데 활용되는 유용한 디자인 패턴 다섯 가지 주요 프록시 유형 원격 프록시(Remote Proxy) 원격에 위치한 객체에 안전하게 접근하기 위한 원격 프록시는 네트워크를 통한 객체 호출을 효율적으로 관리한다. 객체 간의 거리를 극복하여 분산 시스템에서의 효과적인 상호작용을 지원한다. 가상 프록시(Virtual Proxy) 비용이 많이 드는 객체의 생성과 초기화를 최적화하여 성능 향상과 자원 효율성을 촉진시킨다. 필요한 경우에만 객체를 생성하므로 불필요한 작업을 최소화한다. 보호 프록시(Protection Proxy) 객체에 대한 접근을 제어하여 특정 권한이 있는 사용자만이 해당 객체에 접근할 수 있다. 응답 속도를 개선하고 불필요한 .. 2024. 3. 6.