목록분류 전체보기 (11)
이런거 저런거 그런거
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvsZbN/btq7DRJzisf/QckvnFEciNZhplItkrbEGK/img.png)
일반적으로 프록시는 다른 무언가와 이어지는 인터페이스의 역할을 하는 클래스이다. 프록시는 어떠한 것(이를테면 네트워크 연결, 메모리 안의 커다란 객체, 파일, 또 복제할 수 없거나 수요가 많은 리소스)과도 인터페이스의 역할을 수행할 수 있다. ※ https://ko.wikipedia.org/wiki/프록시_패턴 프록시 패턴 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 즉, 어떤 다른 객체로 접근하는 것을 통제(제어)하기 위해서 그 객체의 대리자를 제공하는 패턴 책 예제 1. GumballMachine 모니터링 기능 추가 요청 (빨간색) 2. 여러 지역에 있는 머신을 네트워크를 통해 모니터링 할 수 있는 기능으로 변경 요청 "원격 프록시" 이용 JAV..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cBNubz/btq5aqmxs1M/5VmDewMOAHQ3H6qRz7uh1K/img.png)
퍼사드 패턴은 인터페이스를 단순화 시키기 위해서 인터페이스를 변경하는 패턴이다. 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용 할 수 있다. (바꿔말하면 Client를 복잡한 서브시스템과 분리 및 서브시스템을 더 쉽게 사용하기 위해 고수준 인터페이스로 변경하여 제공하는 구조) 퍼사드 패턴 - 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공합니다. 퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용 할 수 있습니다. (Head First 디자인패턴 p.302) 데코레이터 - 인터페이스는 바꾸지 않고 책임(기능or행동)만 추가 (확장성) 어댑터 - 한 인터페이스를 다른 인터페이스로 변환 (호환성) 퍼사드 - 인터페이스를 간단하게 바꿈 (사용성) 특징 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bslgh2/btq4ZRLRcNs/grHxixFq1pTCkmsEoiPfz1/img.png)
클래스의 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환합니다. 인터페이스가 호환되지 않아 쓸 수 없었던 클래스들을 같이 사용 할 수 있게 해 줍니다. Head First 디자인패턴 p.308 Vendor Class : Existing System이 사용하는 인터페이스를 지원하지 않는 클래스 Adapter : Vendor Class가 Existing System이 사용하는 인터페이스를 지원하는 것처럼 보이게 해 주는 클래스 따라서 어댑터에서는 기존 시스템(클라이언트)에서 사용하는 인터페이스를 구현한다. 인터페이스 구현은 벤더클래스에서 제공하는 인터페이스를 이용하여 구현한다. 역할만 보자면 C에서 간혹 구현해서 사용하는 Wrapper 함수와 유사하다. 그래서 Wrapper패턴으로 불리기도 한다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bag8qn/btqy6eq4Lnl/KNlIfOUKSOkm5M4UCO0Xw0/img.png)
사진과 동영상을 영상으로 만들어야 할 필요성이 있어 툴을 알아 보던 중 괜찮아 보이는 툴을 발견했다. http://movavi.com/ Multimedia Software by Movavi | Multimedia Programs for Windows Introducing Movavi Effects Store! Get EXTRA content for your video projects: TitlesTransitionsStickersAudio files Get extra titles, transitions, stickers, and other exclusive content for your projects. www.movavi.com 보면 아래와 같이 굉장히 여러가지 버전들이 있는데 하려는 기능과 관련된 후..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sDtVo/btqyQMocX0m/C0rVAo62wdfNrZBgkkUcOK/img.png)
8x8 한개에 더 나아가 동일한 Matrix가 4개 붙어있는 부품을 샀다. 모델명 : SZH-EKAD-115 (MAX7219 아두이노 8X32 도트 매트릭스 모듈) 이 부품 역시 SPI 통신을 통해 컨트롤 할 수 있으며 Daisy-Chain방식을 통해 핀을 더 할당하지 않고도 4개의 MAX7219를 컨트롤 하여 4개의 Matrix Led를 컨트롤 할 수 있다. 그렇다면 궁금한 부분은 [아두이노] --- SPI ---> [Matrix 3] --- SPI ---> [Matrix 2] --- SPI ---> [Matrix 1] --- SPI ---> [Matrix 0] 위와 같이 연결되어있다고 했을 때 [Matrix 0]의 Led만 컨트롤 하고 싶을 경우 데이터를 어떻게 보내야 하는가 이다. 이와 관련하여 이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bafqVd/btqysd7USWr/hfhPkeZIo8OfG6uvR6S640/img.gif)
그냥 숫자,문자 표시하기엔 심심한 것 같아 빵판 살 때 배송비가 아까워서 추가로 같이 샀던 조도 센서 값을 표시해 보기로 했다. "[YwRobot] 아두이노 조도센서 모듈 [SEN030101]" 이 부품을 아래와 같이 연결하고 조도센서값을 analogRead()로 읽은 값을 표시해보았다. 도트 매트릭스에 나름 표시 할 수 있는 숫자가 00 ~ 99 이므로 읽은 값을 10으로 나눈 값으로 표시하기로 했다. 사전에 도트매트릭스에 표시 할 숫자 0 ~ 9 패턴 9개는 미리 만들어놓고 들어온 입력에 대해 적당한 위치(십의자리, 일의자리)에 해당 패턴을 써주는 방법으로... #define MAX7219_CLK (10) #define MAX7219_CS (11) #define MAX7219_DIN (12) /* *..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pXuj4/btqytrYhJWc/KI9ksKwoVePIAZScbF3Su0/img.gif)
부품을 하나 샀다. 그것은 바로 MAX7219가 달린 "SZH-EK063" !! 이 부품(MAX7219)를 사용 함으로서 VCC, GND, DIN, CS(ChipSelect), CLK(Clock) 5개 핀만으로 아두이노에서 64개 led를 컨트롤 할 수 있다. 아두이노에서는 위 5개 핀을 이용해 MAX7219에 필요한 설정을 하고 MAX7219는 설정된 Led를 켜 주는 것이다. Led On/Off 제어를 MAX7219에게 외주(?)를 준 덕분에 아래와 같은 장점을 얻을 수 있다. - 연결 Line (pin)을 줄일 수 있다. (16개 -> 5개) - Loop마다 Line을 돌아가며 led on/off 해주는 번거스러움 없어짐 - Loop가 지연됨으로 인해 도트 매트릭스에 그림(또는 문자)가 이상하게 보..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0eFDt/btqyizbTb6r/PeKcaUNMCCItJZQtWSOrKk/img.png)
8x8 Led Matrix를 전체 컨트롤 해 보기 우선 아래 왼쪽 테이블과 같이 핀을 연결한다. ex> Led Matrix 1번핀 -> Uno 2번핀 그리고 Matrix Led의 핀맵을 보고 Uno에 해당하는 핀 번호를 찾아보면 ex> Matrix Led의 Row 0을 컨트롤 하려면 Matrix Led의 9번 핀 ---> Uno의 10번 핀. 즉, Uno의 10번핀은 Matrix Led Row 0을 컨트롤 하는 핀 이렇게 연결하면 아래와 같이 깔끔(?)하게 연결 할 수 있다. (적어도 선이 날라다니진 않으니...) 그리고 테스트 코드를 돌려서 홀수인 곳만 켜보면~ #define ARRAY_SIZE(x) (sizeof((x))/sizeof((x)[0])) unsigned int rows[] = {10, A..