반응형

분류 전체보기 2946

[소프트웨어 설계 패턴 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 프로그램을 설계할 때 클래스는 세 개의 칸으로 구분하는 사각형으로 표시하는데 맨 위칸에는 클래스 이름을 표시하고 두 번째 칸에는 멤버 필드, 세 번째 칸에는 멤버 메서..

[안드로이드] 32. Java OOP 개요

OOP 개요 프로그래밍 언어의 종류는 셀 수 없을 정도로 많습니다. 초기의 코볼이나 파스칼, 포트란등의 언어는 기능 중심으로 프로그램을 구성하기 쉬운 구조적 프로그래밍 언어입니다. 그런데 프로그래밍 역사가 발전하면서 사람이 살고 있는 세상과 비슷한 구조로 표현할 수 있는 OOP[1]에 관한 연구를 진행하였습니다. 그리고 Java 언어와 C# 언어 등은 OOP 언어입니다. OOP 언어는 사용자 정의 형식을 만들 때 데이터와 기능을 하나로 캡슐화합니다. 이전 구조적 프로그래밍 언어에서는 사용자 정의 형식에는 데이터만 정의하고 기능은 별도로 정의해야 했습니다. 하지만 OOP 언어에서는 데이터와 기능을 하나로 캡슐화할 수 있습니다. [그림]구조적 프로그래밍 언어 VS OOP 언어 일반적으로 OOP 언어에서 사용..

반응형