일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Linux
- 문파문파 공략
- 디자인 패턴
- 블로그
- arm
- 문파문파
- NC 다이노스
- 조세피난처
- 안드로이드
- 타이젠
- 리뷰
- 데이터베이스
- python
- 태그를 입력해 주세요.
- 애플
- 단통법
- 해외직구
- 인공지능
- 국정원
- Tizen
- NC다이노스
- 김경문
- 야구
- ubuntu
- mysql
- ubuntu 12.04
- 프로야구
- 뉴스타파
- 손민한
- 우분투
- Today
- Total
목록IT/Language_Design Patterns (7)
꿈꾸는 사람.
이번 글은 객체 지향 언어인 자바의 가시성(Visibility)에 대한 글이다. 가시성이란 클래스와 클래스 멤버인 멤버필드와 메소드의 사용범위를 결정하는 것이다.즉, 한 클래스의 멤버필드와 메소드에 대한 다른 클래스의 접근 여부를 접근제어자로 제어하는 것이다. 접근 제어자다른 클래스에서 특정 클래스, 멤버필드, 메소드의 접근을 허용할지 경정하는 것이다. 접근제어자의 종류 내용 public 클래스와 패키지에 관계 없이어느 곳에서나 접근이 가능하다. 즉, 접근에 제한이 없는 접근제어자다. protected 같은 패키지에서는 접근 제한이 없다. 다른 패키지의 경우 상속 관계인 경우만 접근이 가능하다. default 접근제어자를 사용하지 않을 때의 기본 설정 값이다. 같은 패키지에서만 접근이 가능하다. priv..
Java에서 Swing 개념을 알아보고 간단한 사용 예제를 보이겠다.Swing은 이벤트 기반의 GUI toolkit으로 보면 된다.자사에서는 버튼, 콤보상자 등을 GUI 컴퍼넌트 또는 스윙 컴포넌트라 한다.스윙으로 화면을 설계하고 스윙 컴포넌트들을 화면에 배치하여 사용자가 이용할 화면을 구성한다.이 화면을 구성하기 위해 컨테이너라는 특수 컴포넌트에 넣어서 화면에 표시한다.실제 화면에 배치할 때는 레이아웃매니저를 이용한다.1. 스윙의 개요 AWT(Abstract Window Toolkit)가 운영체계와 운영체계가 제공하는 자원을 그대로 사용하기 때문에 시스템에 의존적이다.스윙은 이런 AWT의 제약을 극복하기 위해 만들어진 플랫폼 독립적인 GUI toolkit이다.스윙의 아키텍처는 모델-뷰-컨트롤러(Mode..
퍼사드 패턴을 이해하기 위해 실 생활의 예를 살펴보자.홈 씨어터는 DVD 플레이어, CD 플레이어, 프로젝터, 자동 스크린, 서라운드 음향 등으로 이루어져 있다.홈 씨어터의 각 장치들은 전원과 케이블로 연결되어야 한다.그리고 영화를 보기 위해 해야 할 일들을 나열해 보자.전등을 어둡게 조절스크린을 내린다.프로젝터를 켠다.프로젝터로 DVD 신호가 입력되게 한다.프로젝터를 와이드 스크린 모드로 전환한다.앰프를 켠다.앰프 입력을 DVD로 전환한다.앰프를 서라운드 음향 모드로 전환한다.앰프 볼륨을 중간(5)으로 설정한다.DVD 플레이어를 켠다.DVD를 재생한다.(시스템 구성이 복잡할 수록 조작이 어려워진다.) 이런 복잡한 일을 간단히 처리하기 위해 퍼사드 패턴을 이용해 보자. 1. 퍼사드 패턴 (Facade P..
실생활에서 어댑터의 역할은 한국 플러그를 미국이나 유럽의 소켓에 꽂을 수 있도록 인터페이스를 변환하는 역할을 한다.객체 지향 어댑터도 일상 생활에서 사용하는 어댑터와 똑같은 역할을 한다. 소프트웨어 시스템은 여러 모듈로 구성되고 여러 업체에서 제공한 인터페이스를 사용한다.기존 소프트웨어 시스템이 변경 또는 갱신될 수 있고 업체의 인터페이스 역시 그러하다.새로운 업체의 인터페이스를 채택해야 할 수도 있다.이때 새로운 업체의 인터페이스가 기존 소프트웨어 시스템과 다르다면 둘 중 하나를 고쳐야 한다.문제는 양쪽 모두 변경할 수 없는 상황 발생하며 어댑터 패턴이 해결책이 된다. 어댑터 패턴이 동작하는 원리는 다음 그림과 같고 설명은 아래에 추가한다. 클라이언트에서 어댑터를 사용하는 방법 (1) 클라이언트에서 타..
프로그램을 작성 중 객체를 하나만 써야 하는 경우가 많이 있다. 스레드 풀, 캐시, 사용자 설정과 레지스트리 설정을 처리하는 객체와 그래픽 카드, Wi-Fi나 bluetooth 장치를 위한 디바이스 드라이버와 같은 것들이 대표적인 예이다. 쉬운 접근법은 전역 변수를 사용하는 것이다.자바의 전역 변수는 기본적으로 객체에 대한 정적 레퍼런스이다.처음부터 끝까지 인스턴스를 가져야 하고 게으른(lazy) 인스턴스 생성을 할 수 없다.또한 전역 레퍼런스를 자꾸 만들게 되어 네임스페이스가 지저분해진다. 이럴 때 인스턴스가 하나 뿐인 객체를 만들 수 있는 디자인 패턴이 필요하다. 1. 싱글턴(Singleton) 패턴 개념. 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 그 인스턴스에 대한 전역 접근할 수..
느슨한 결합을 이용하는 객체지향 디자인인 팩토리 패턴에 대한 글이다.객체의 인스턴스를 만드는 작업은 항상 공개되어야 하는 것은 아니다.팩토리 패턴을 이용하여 불필요한 의존성을 없앨 수 있다.java의 "new"는 구상 클래스의 인스턴스를 만드는 것이다. 1. 추상(abstract) vs 구상(concrete) 추상(abstract) 클래스 구현은 제공하지 않는 'operation'을 정의하고 있는 'class'이다. 인스턴스를 만들 수 없는 클래스. 구상(concrete) 클래스 추상(abstract)가 아닌 클래스이다. 오퍼레이션이 구현(implement)을 제공하는 클래스이다. 팩토리 패턴에는 추상 클래스를 이용하는 추상 팩토리 패턴이 있어 해당 용어에 대한 간단한 정의를 알아 보았다.2. 팩토리 패..
1. JAVA Hashmap 개요.Hashmap은 Key-Value 컨셉인 Map 인터페이스에 기반한 자료구조로 특정 키(Key)로 저장된 값(Value)을 빠르게 찾을 수 있다.Hashmap은 저장된 순서는 보장하지 않지만 데이터의 저장하고(put) 읽어오는(get) 기능은 일정 시간 내에 결과를 얻을 수 있다. Hashmap의 사용법은 오라클 공식 자바 사이트나 검색으로 충분히 찾을 수 있다.이 글은 안드로이드 키캣 버전에서 Wi-Fi 서비스에서 hashmap을 사용하는 예를 설명한다. 2. Android] Wi-Fi 서비스에서 Hashmap 사용 예.WifiService, WifiP2pService 생성하는 sequence diagramWifiMonitorSingleton 클래스에서 HashMap ..