반응형

전체 글 2987

[소프트웨어 설계 패턴 C#] 12. 프락시 패턴(Proxy Pattern) - 원격지 프락시

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 프락시 패턴은 사용하는 개체를 통해 실제 개체를 제어하는 패턴입니다. 프락시 패턴은 사용하는 목적과 방법에 따라 원격지 프락시와 가상 프락시, 보호용 프락시, 스마트 참조자로 구분할 수 있습니다. 원격지 프락시는 사용할 실제 개체가 클라이언트와 다른 위치에 있을 때 원격지에 있는 개체처럼 사용할 수 있는 프락시를 말합니다. 가상 프락시는 사용할 실제 개체의 특정 행위가 많은 시간이 들 때 비 동기적으로 수행할 수 있게하여 사용자가 작업이 완료되는 것을 기다리지 않게 해 주는 프락시입니다. 보호용 프락시는 개체의 기능을 권한에 따라 사용하는 수준을 다르게 해 주는 프락시입니다. 스마트 참조자는 여러 곳에서 사용하는 개체가 있다면 실제 개체를 ..

[소프트웨어 설계 패턴 C#] 11. 플라이급 패턴(Flyweight Pattern)

11. 플라이급 패턴(Flyweight Pattern) 프로그램에서 개체가 많아지면 메모리가 많이 차지하게 됩니다. 이럴 때 메모리 효율을 높일 필요성이 있다면 무엇을 해야 할까요? 플라이급 패턴은 이러한 문제를 해결하기 위한 하나의 방법입니다. 플라이급 패턴은 개체의 멤버 필드 중에 각 개체가 반드시 갖고 있어야 할 멤버와 여러 개체가 공유해서 사용할 수 있는 멤버로 분리하는 작업에서부터 출발합니다. 공유해서 사용할 수 있는 멤버가 가질 수 있는 상태의 종류가 개체의 수보다 상대적으로 적다면 플라이급 패턴을 사용하여 메모리 효율을 높일 수 있습니다. 플라이급 패턴에서는 공유해서 사용할 수 있는 상태들을 공유 풀에 형성합니다. 그리고 각 개체는 특정 상태를 참조합니다. 만약, 개체의 수가 상태의 수보다 ..

[소프트웨어 설계 C# 무료 동강] 1. 소프트웨어 패턴 소개

1. 소프트웨어 패턴 소개1부 생성 패턴들 1. 추상 팩토리 패턴(Abstract Factory Pattern)2. 빌더 패턴(Builder Pattern)3. 팩토리 메서드 패턴(Factory Method Pattern)4. 원형 패턴(Prototype Pattern)5. 단일체 패턴(Singleton Pattern)2부 구조 패턴들 6. 적응자 패턴 (Adapter Pattern)7. 가교 패턴 (Bridge Pattern)8. 복합체 패턴 (Composite Pattern)9. 장식자 패턴 (Decorator Pattern)10. 퍼샤드 패턴 (Facade Pattern)11. 플라이급 패턴(Flyweight Pattern)12. 프락시 패턴 (Proxy Pattern) - 원격 프락시13. 프락시..

천안 독립기념관, 봄이 오려나

천안 독립기념관, 봄이 오려나  There is a place I go to when I or my country is having a hard time. It is the Independence Hall of Korea. 이용 시간09:30~18:00 (3월~10월) , 17:00시까지 입장 가능합니다.09:30~17:00 (11월~2월),  16:00시까지 입장 가능합니다. 휴관일매주 월요일(공휴일일 때는 개관)상설전시관 외 야외전시, 쉼터 등은 개방합니다. 입장료무료 주차료 소형(2000원), 대형(3000원), 감면(1000원), 국가 유공자(면재)감면 대상은 장애인, 국가유공자 가족, 경차, 하이브리드카, 저공해차, 병역이행 명문가주차료는 1일 기준입니다. 예약온라인 예약: 전시관 해설, 체험 ..

여행/국내여행 2016.04.17

천안 독립기념관 첫눈, 그리고 워크샾

천안 독립기념관 첫눈, 그리고 워크샾 이용 시간09:30~18:00 (3월~10월) , 17:00시까지 입장 가능합니다.09:30~17:00 (11월~2월), 16:00시까지 입장 가능합니다. 휴관일매주 월요일(공휴일일 때는 개관)상설전시관 외 야외전시, 쉼터 등은 개방합니다. 입장료무료 주차료 소형(2000원), 대형(3000원), 감면(1000원), 국가 유공자(면재)감면 대상은 장애인, 국가유공자 가족, 경차, 하이브리드카, 저공해차, 병역이행 명문가주차료는 1일 기준입니다. 예약온라인 예약: 전시관 해설, 체험 전시관, 장소 사용 예약현장 접수: 4D 입체 영상관 관람(160석, 15분 내외) 주변 여행지[충남 천안] 유관순 열사 기념관[충남 천안] 천호저수지[충남 천안] 각원사[충남 천안 여행]..

여행/국내여행 2016.04.17

[안드로이드] 36. Java 개체의 생과 사

개체의 생과 사 C언어나 C++언어에서는 동적으로 메모리를 할당하면 힙에 할당하고 개발자 코드에 의해 해제해야 합니다. 이에 반해 Java 언어에서는 개발자 코드에 의해 개체를 생성하지만 개발자 코드에 의해 개체를 소멸하지 않습니다. 이와 같이 개체의 생성은 개발자 코드에 의해 결정하고 소멸하는 코드를 작성하지 않는 이유는 Java 가상 머신의 관리화 힙(Managed Heap)에 개체를 할당하여 관리하기 때문입니다. Java에서 개체를 생성하면 관리화 힙(Managed Heap)에 할당합니다. 관리화 힙은 Java가상 머신에서 개체를 참조하는 변수의 개수를 카운팅하여 관리합니다. 그리고 가상 머신의 쓰레기 수집기(Gabage Collector)에 의해 관리화 힙의 개체를 참조하는 변수의 카운터가 0이 ..

[안드로이드] 35. Java 중복 정의(Overloading)

중복 정의(Overloading) Java 언어에서는 클래스의 멤버 메서드의 입력 매개 변수 리스트가 충분히 다르면 같은 이름으로 여러 개의 멤버 메서드를 정의할 수 있습니다. 이러한 특징을 메서드 중복 정의(Overloading)이라고 부릅니다. 예를 들어 원을 클래스로 정의합시다. 원 개체를 생성할 때는 반지름을 입력 인자로 생성하게 하고 면적을 구하는 메서드를 제공합시다. 만약 입력 인자를 전달하지 않으면 원의 넓이를 구하고 입력 인자로 각 정보를 전달하면 호의 면적을 구합니다. 이 때 입력 인자를 전달하지 않고 원의 넓이를 구하는 메서드와 각 정보를 전달하여 호의 면적을 구하는 메서드의 이름을 같은 이름으로 정의할 수 있습니다. public double calculateArea(){ return ..

[안드로이드] 34. Java 접근 지정자

접근 지정자 앞에서 OOP에서는 캡슐화 과정에서 멤버의 가시성을 정의하여 접근 수준을 지정할 수 있다고 하였습니다. Java 언어에서는 public, protected, private 키워드를 이용하여 접근 지정할 수 있는데 이와 같은 접근 지정을 왜 해야 하는지 알아봅시다. 멤버의 가시성을 public으로 지정하면 모든 곳에서 접근이 가능합니다. 따라서 형식 개체를 사용하는 곳에서 접근해야 하는 멤버에는 가시성을 public으로 지정합니다. 멤버의 가시성을 protected로 지정하면 클래스 자신의 내부와 파생 클래스에서는 접근할 수 있지만 그 외의 클래스에서는 접근할 수 없습니다. 이에 관한 문법은 상속을 다루면서 소개하기로 할게요. private으로 가시성을 지정하면 클래스 자신 내부에서만 접근할 ..

[안드로이드] 33. Java 클래스 정의하기

클래스 정의하기 Java 언어에서 클래스를 정의할 때 캡슐화 대상은 멤버 필드와 멤버 메서드입니다. 멤버 필드는 개체의 상태를 나타내는 필드로 데이터로 생각할 수 있습니다. 멤버 메서드는 개체의 상태를 제어하는 기능입니다. 그리고 클래스의 멤버에는 접근 지정을 통해 클래스 내부에서만 접근할 수 있는지, 클래스 내부와 파생 클래스에서 접근할 수 있는지, 다른 클래스에서도 접근할 수 있는지를 결정할 수 있습니다. 이를 통해 개체의 정보를 은닉하여 신뢰성을 높일 수 있습니다. 클래스는 클래스 이름과 멤버 필드와 멤버 메서드로 구성합니다. OOP 프로그램을 설계할 때 클래스는 세 개의 칸으로 구분하는 사각형으로 표시하는데 맨 위칸에는 클래스 이름을 표시하고 두 번째 칸에는 멤버 필드, 세 번째 칸에는 멤버 메서..

반응형