본문 바로가기

Programming/과거포스팅

(127)
Bridge pattern (브릿지 패턴) 이번 장은 브릿지(Bridge)패턴이다 다리?? 무언가를 연결해주는 패턴인가라고 생각할 수 있을것이다.브릿지 패턴이란 무엇일까? 위키를 보면 브리지 패턴(Bridge pattern)이란 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴이다. 이렇게 나와있다. 이것만 보면 이해하기 힘들것이다 특히 나같은 초급개발자는 이해하기가 힘들것이다.좀더 자세히 알아보자브릿지 패턴은 소프트웨어 공학에서 사용되는 디자인 패턴이다.구현(implementation)으로부터 추상(abstraction) 레이어를 분리하여 독립적으로 변형할 수 있게 하는 패턴이다. 이제 우리에게 익숙한 말들이 나오기 시작했다.우리가 흔히 사용하는 interface에서 abstract를 분리하겠다는 내용인데. 어떻게 분리하고..
디자인패턴(Design Pattern)이란? 디자인패턴이란? 프로그래밍을 하다보면 디자인패턴이란 용어를 접하게 된다.디자인 패턴은 객체지향 언어에서 클래스와 클래스의 메서드를 사용하는 패턴, 즉 특정 의도를 가지는 방법을 의미한다.실무에서 실력이 뛰어난 사람의 코드를 보면 같은 동작을 하는 코드지만 심플하고 이해하기 쉽고 잘 짜여저 있다.어떻게 그런게 가능할까? 개발을 하다보면 요구사항을 수용하고 자신이 만든 클래스를 수정하다보면 코드는 누더기가 되고도무지 이게 무슨 코드인지 알수가 없다.이런 경험들을 한 사람들은 이에대해 고민했고 프로그램안의 클래스들이 갖는 구조에서 일정한 형태를 찾아내게 되었다.이럴 정리하여 객체지향적인 설계에 대한 노하우를 쌓기 시작하였고 이것이 정립되었다.이것이 바로 디자인 패턴이다. 나는 디자인패턴을 공부하기전에 개발을 ..
Singleton패턴 위키를 보면 아래와 같이 정의되어 있다. 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 자바에서 생성자를 통해서 객체를 생성하면 생성한 객체들이 모두 다른 객체들이다.하지만 싱글턴패턴을 이용하면 하나의 객체만 생성이 된다. 객체를 하나만 생성하게 된다면 어떠한 장점이 있기에 이 패턴을 사용하는 것일까?스레드 풀, 캐시, 대화상자, 사용자 설정, 디바이스 드라이버 등등 객체가 전체 프로그램에서 오직 하나만 생성되어야 하는 경우이 패턴을 사용하면 된다. 짐작대로 메모리의 효율..
FACADE패턴 이번장은 FACADE패턴이다.FACADE패턴은 코드없이 이론적으로만 정리하겠다. 자바의 장점은 막강한 API를 제공하는 것에 있다.이 API를 사용하여 프로그램을 작성하다보면 문제점이 생길 수 있다.객체지향의 장점이자 단점인데 재사용을 함으로써 다양한 방법으로 적용할 수 있지만 다양한 방법으로 적용을 하다보니 너무 다양한 옵션들이 생겨서개발자가 어디서 시작해야 될지 모르는 문제가 발생한다는 점이다.FACADE패턴은 이를 해결하기 위해 고안된 패턴이다.우리가 개발을 하면서 흔히 쓰는 방법이기도 하다.기본 API 또는 복잡하고 잘 설계 되어지지 않은 라이브러리들과 어플리케이션의 중간점에 위치하는 클래스이며위의 라이브러리들을 간편하게 사용할 수 있도록 해준다. FACADE의 목적은 서브 시스템을 사용하기 쉽도..
MVC패턴 MVC 패턴에 대한 정의를 위키에서 검색해보면 아래와 같다.MVC 패턴 모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 정리하면 Model 애플리케이션의 비즈니스 로직과 사용되는 데이터를 다루는 영역 View 사용자에게 보여줄 프리젠..
java filedownload(jsp filedownload, jsp 파일 다운로드) 자바 파일다운로드이다. 일반적으로 application/octet-stream만 선언해도 다운로드가 되지만ms office같은 경우 파일오류가 발생한다.하지만 아래와 같이 MimeType를 지정해 줌으로써 오류를 방지할 수 있다.서칭을 하다 정석 파일 다운로드 소스가 있어서 공유한다.원본 : http://www.codejava.net/frameworks/spring/spring-mvc-sample-application-for-downloading-files@RequestMapping(method = RequestMethod.GET) public void doDownload(HttpServletRequest request, HttpServletResponse response) throws IOExcepti..
JSP Client OS, Browser Check(JSP 클라이언트 OS, Browser Check) 사용자 OS와 브라우저를 체크해야 할 일이 생겼다.마땅한 코드가 보이지 않아서 대충 만들었다. 테스트를 해보지 않아서 아직 부족한 부분이 있지만 조금씩 보안해야겠다. 아직 체크하지 않은 다양한 userAgent가 있을텐데 조금씩 버전을 높여가면서 유지할 생각이다.ver 0.0.1 betapublic static String getClientOS(String userAgent) { String os = ""; userAgent = userAgent.toLowerCase(); if (userAgent.indexOf("windows nt 6.1") > -1) { os = "Windows7"; } else if (userAgent.indexOf("windows nt 6.2") > -1 || userAgent.i..
JSP POI MS Word CREATE( POI MS WORD 다운로드) 프로젝트 진행중 급하게 ms 워드 문서를 생성해서 다운로드 해야 하는 기능이 생겼다.엑셀은 샘플 코드가 많지만 워드관련 자료는 많지 않았다.급하게 만드느라 다양한 기능을 넣지는 못했지만. 텍스트와 하이퍼링크 삽입이 가능한 코드다.하이퍼 링크는 외국사이트에서 가져왔는데 아직 다듬지는 않았다.추후 디테일한 문서를 만들면서 쓸만한 api를 찾아서 포스팅하겠다.질문은 댓글로.. package com.web.document; import java.io.IOException; import java.io.OutputStream; import javax.servlet.http.HttpServletResponse; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; im..