디자인패턴 한줄 정리 요즘 스터디를 통해서 디자인 패턴을 정리하고 있다. 진도를 하나하나 나가기전에 전체적으로 간략하게 정리를 해보았다. 학습한 패턴은 이해가 잘되었지만, 아직 학습하지 못한 패턴은 개념이 잘 안잡혔다. 열심히 해서 다 정리하는 그날까지! 아자아자!! 1. 객체생성에 관한 패턴 2. 행동에 관한 패턴 3. 구조에 관한 패턴 1. 객체생성에 관한 패턴 Object Pool Pattern : DB 커넥션 풀이 대표적이다. Prototype Pattern : 객체생성비용이 많이 들 경우 복사해서 인스턴스를 만든다. 디자인패턴3) Prototype Pattern Factory Method Pattern : 인스턴스 작성을 하위클래스에 위임하는 패턴 (추상클래스에서는 create만 구현되고 나머지..
Prototype Pattern 객체생성을 위한 디자인패턴중 하나인 프로토타입 패턴(Prototype Pattern)에 대해서 설명하도록 하겠다. 객체생성시 비용을 줄이기 위한 패턴들이니 이점에 유의에서 읽어보도록 하자. 1. 개요 프로토타입 패턴은 동일한 객체를 여러번 생성해야 하는 비용을 줄이기 위한 고안된 패턴이다. 예를 들어 수만건의 데이터를 읽어들인 분석을 위한 기초자료를 가지는 객체가 있다고 하자. 이를 분석할때마다 로딩한다면 그 비용은 엄청 날것이다. 이런 경우에 한번만 로딩후 이객체를 계속 복제해서 사용한다면 비용을 상당히 줄일 수 있을것이다. 2. 클래스 다이어 그램 Client 복제된 객체를 이용하는 클래스 Prototype clone 메소드를 가지고 있는 인터페이스 ConcretePr..
1장. 자바스크립트란 무엇인가(2013 인사이트, 한선용 옮김) 의 책을 요약한 내용으로 자바스크립트 제대로 배우기 스터디 그룹(페이스북) 의 글입니다. 자바스크립트의 역사 1995 년 처음등장 모뎀환경에서 웹 입력값의 유효성 검사위해 탄생 네스케이프의 브랜든 아이흐Breadan Eich가 처음엔 Mocha, 나중에 LiveScript라고 불린 스크립트 언어를 개발 이후 Sun이 협력하여 JavaScript1.0 이라 칭함 ( Java의 인기를 편승하기 위해서.. ^^) 네스케이프 네비게이터3에 JavaScript1.1 포함 이때 IE3출시하면서 JScript 라고 포함( 저작권 문제로 이름을 달리함) 1996년 8월 JavaScript가 본격적인 개발 시작 네스..
Git Bash 로 원격 저장소에 push 에러1. fatal: could not read Username for 'https://github.com' 에러 해결 git push origin master 명령을 실행했는데 위와같은 에러 메시지를 만날 수 있을 것이다. 그럼 아래와 같이 remote 저장소를 다시 지정해보도록 하자. git remote rm origin git remote add origin ssh://git@github.com/[username]/respo.git git pull origin master git push origin master 위와 같은 방법으로 원격저장소를 다시 연결해준다면 원격저장소로 push 가능하다. 단, 원격저장소의 변경사항을 로컬저장소의 내용과 합치기 위해서 ..
Builder Pattern 1. 개요 복잡한 응용프로그램을 개발하다 보면 특정 기능을 위한 객체들의 관계가 복잡해질 수가 있다. 객체를 생성하기 위한 프로세스나 패턴이 동일할 경우 새로운 타입의 객체를 쉽게 추가 할수 있도록 할 수 있는 패턴이 Builder Pattern 이라고 할 수 있겠다. 자동차를 만들기 위해 동일한 공정으로 여러가지 유형의 자동차를 만들 수 있겠다. 빌더패턴을 이용하면 여러디자인의 자동차를 동일한 공정으로 만들수 있다. 2. 클래스 다이어그램 Director 빌더 인터페이스를 이용하여 복잡한 객체를 만드는 역할을 한다. Builder 대상객체의 일부를 만들기 위한 추상 인터페이스 들을 지정한다. ConcreteBuilder Builder Interface를 구현하며 대상객체 생..
스프링 AOP구현 방식은 2가지가 있습니다. 1. 대상객체가 인터페이스 구현방식을 경우 -> 일반적인 proxy pattern 을 이용하여 AOP구현 2. 대상객체가 인터페이스를 구현 안햇을 경우 -> CGLIB 라이브러리를 이용하여 구현 CGLIB이란,동적으로 대상객체를 상속하는 클래스를 만들어 프록시를 구현한후필터클래스를 이용하여 공통의 관심사(Aspect)적용 참고사이트 - http://javacan.tistory.com/entry/114 --- 내용 추가 ----* 강제로 CGLIB 통한 프록시객체 생성방법 1. aop:config 태그에 다음 속성 추가 : proxy-target-class="true" 2. 어노테이션의 경우
프록시 패턴 (Proxy Pattern) 1. 개요 Proxy의 사전적 의미는 대리, 대리권 이라는 뜻을 가지고 있다. 실제 사용하려는 객체를 대신해서 역할을 해주는 패턴이라고 이해하면 될 것이다. 주로 원래 객체의 접근제어를 목적으로 이용된다. 어떤 이유 때문에 proxy 패턴이라 불려지는지 알아 보도록 하자. 우리가 알아볼 패턴유형으로는 Virtual Proxy, Protection Proxy, Remote Proxy 등이 있다. 2. 클래스 다이어그램 Subject interface proxy 클래스와 RealSubject 클래스가 구현을 하는 인터페이스로 Client 에서는 이 인터페이스만 알고 있으므로 내부 동작은 어떻게 이뤄지는 지 모르게 된다. Porxy class RealSubject 객체..
싱글턴 패턴(Singleton Pattern) 1. 개요지정한 클래스의 인스턴스(객체)가 오로지 하나만 존재해야만 하는경우, 인스턴스가 하나인 경우만을 프로그램으로 나타낼때 이용하는 패턴이다.ex) 티켓팅 클래스가 있을때, 이 클래스가 티켓번호를 하나씩 증가시켜 생성한다. 이때 싱글턴 패턴을 이용하면 단하나의 객체만으로 티켓번호 값이 중복되지 않게 증가되는것이 가능하다. 2. 클래스 다이어그램 3. Java 로 구현한 싱글턴패턴- 생성자는 다른클래스가 접근하지 못하도록 private로 설정- getInstance() 메소드는 synchronized 를 설정 ( 멀티스레드 환경 대비 )- 객체맴버 변수와 메소드는 static // 1. synchronized 를 이용한 singleton public cla..
RESTful Service를 개발하면서 사용자( consumer ) 에게 서버족의 예외상황이나 에러코드에 대해 어떻게 처리해줘야 하는지 간단하게 정리해보고자 한다. REST 이론에서 가이드하는 방식도 있지만, RESTful 서비스 취지대로 Consumer 가 얼마나 편리하고 간편하게 서버의 자원을 이용할수 있도록 가이드하는게 제일 우선이라고 말할수 있겠다. 그럼 먼저 RESTful 에서 권장하는 방법에 대해서 간략하게 소개하고 그 다음 이를 어떻게 편리하게 사용할 수 있도록 구현하는지에 대해 알아 보도록 하자. 1. REST 이론 - 인증실패나 parameter 실패등이 발생했을때는 HTTP Header 의 Status 값을 이용하여 응답을 주라고 하고 있다. 예를 들어 인증실패의 경우 401 코드, ..
2013.12.02 update>> 하동군청에서 제공하는 버스시간표 - http://m.hadong.go.kr/html/02_09.asp 하동 시외버스 터미널 이용안내 저의 고향 하동을 찾으시는 분들에게 도움을 드리고자 버스시간표 및 이용방법을 공유합니다. 부족하지만 이용에 많은 도움이 되시길 바랍니다. 1. 서울 하동 하루 6~7 차레 있으며 서울 남부터미널에서 구례, 화계, 악양을 경유하여 하동을 종착지로 함 요금은 22,000 원선 이였던걸로 기억하네요. 2. 최참판댁 가는방법 - 위 사진의 악양,화개방면(완행) 표지판의 버스를 타면 된다. - 그중 약수장을 제외한 버스가 최참판댁까지 운행 됨 - 버스시간 10:10 / 11:00 / 15:20 / 16:45 / 18:50 / 20:30 3. 화개장..