728x90

프로그래밍/디자인패턴 6

[디자인패턴] 템플릿 메서드 패턴

템플릿 메서드 패턴은 공통된 처리를 여러 코드에서 사용하고 싶을 때 사용한다. 만약에 A클래스, B클래스, C클래스의 기능 전후에 시간을 로그로 찍고 싶다면 물론 각 기능마다 로그를 찍어도 되지만, 중복이 많아지고 후에 변경이나 삭제를 해야한다면 몇개를 빼먹는다던지, 일관되지 못한 변경이나 실수가 있게 된다. 추상클래스를 활용 추상클래스는 하나 이상의 추상메소드를 가진 클래스이다. 어떤 공통된 기능은 정의해놓고 각자의 기능은 추상클래스를 오버라이딩할 수 있다. 이 경우 A,B,C가 추상클래스를 상속받고, 추상메소드에 A,B,C의 각자의 핵심기능을 정의해 놓고 템플릿메소드에 공통처리와 추상메소드를 부르는 코드를 넣는다. 그리고 각 기능을 실행할 때 템플릿 메소드를 부르면 공통처리와 각각의 핵심코드를 함께 ..

프록시와 패턴

프록시란 ? 우리는 직거래를 하기도 하지만 중간에 중간판매자가 끼어서 거래를 할 수 있다. 생산자와 소비자 사이에 인터넷 쇼핑몰이라던지 시장, 대형마트 등 판매를 하는 중간 판매자가 대신 판매를 한다. 이렇듯 중간에 제 3자인 대리자가 끼어있을 수 있는데, 웹개발에서도 마찬가지이다. 보통우리는 클라이언트에서 요청을 보내면 요청을 받은 서버가 요청을 처리하여 응답을 되돌려준다. 그런데!!!!! 만약에 이 중간에 대리자가 끼인패턴이 있는데 이 중간에 대리자 역할을 하는게 프록시 이다. 웹 개발에서 프록시의 이용 서버와 클라이언트의 직접통신을 하는 것보다 프록시를 통한 간접통신을 한다면 접근제어와 부가기능 추가를 할 수 있다 우선 접근제어란, 권한이나 캐시, 지연로딩등을 할 때 실제 서버처리를 실행시키는 것을..

728x90