일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- workbench
- 다이어트
- selector
- 문자열반전
- paging
- startup
- 문자열반대로
- MacOS
- DB Tool
- 페이징 모듈
- 트레이닝
- 자바입문서
- 자바
- 기초자바
- co-founder
- 습관의재발견
- 머신런닝
- 스타트업
- 스크럼
- 제이쿼리
- MariaDB
- API Server
- 문자열붙이기
- 헬스
- sizzle
- 지앤선
- 제이쿼리 페이징
- Toad
- jquery
- 서스펜스
- Today
- Total
목록분류 전체보기 (124)
누구도 평범한 사람은 없다
글 : Joel Spolsky 번역 : AhnLab 2000년4월10일월요일 필자가 아는 대부분의 골수 C++ 프로그래머들은 사용자 인터페이스 프로그래밍을 꺼린다. 필자로서는 잘 이해가 되지 않는 일이다. UI 프로그래밍이 본질적으로 아주 쉽고 간단하며 재미있는 작업이라고 생각하기 때문이다.UI 프로그래밍은 쉽다. 일반적으로 하나의 사각형 안에 또 다른 사각형을 집어넣는 수준 이상의 더 복잡한 알고리즘은 필요하지 않기 때문이다. UI 프로그래밍은 간단하다. 프로그래밍 과정에서 실수가 있을 경우, 금방 눈에 띄고 곧바로 수정할 수 있기 때문이다. UI 프로그래밍은 재미있다. 노동의 결과를 직접 눈으로 확인할 수 있기 때문이다. 마치 프로그램을 직접 조각하는 것 같은 기분을 느낄 수 있다.대부분의 프로그래머..
자바 디자인 패턴 16 - Visitor1. Visitor 패턴은.. 복잡한 구조체 안을 돌아다니면서 어떤 일을 해야 할 경우가 있습니다. Visitor는 어떤 구조체에 대해 그 안을 돌아다니면서 어떤 일을 하는 것입니다. 이 때, 구조체 1개에 하는 일이 딱 1개라는 보장은 없습니다. 하나의 구조체에 대해 다양한 일들을 할 수 있습니다. 하고 싶은 일이 추가된다고 해서 구조체를 변경하는 것은 무리입니다. 이런 때는 Visitor를 추가하면 됩니다. 예제에서는 PC의 디렉토리-파일 구조에 대해 야동을 찾는 일을 하는 Visitor를 구현해보았습니다. 2. 예제 --------- Component, Composite, Leaf 등은 Composite 패턴 설명에 썼던 것을 거의 그대로 사용했습니다. 바뀐 ..
자바 디자인 패턴 15 - Mediator1. Mediator 패턴은.. 비행기가 이착륙하다가 충돌하는 일은 좀체로 일어나지 않습니다. 비행기들끼리 서로 통신하지 않는데도 말이죠. 각각의 비행기는 관제탑하고만 통신을 하고, 관제탑이 각각의 비행기에게 착륙해도 된다 또는 안 된다 식으로 메시지를 보내줍니다. 비행기들끼리 서로서로 직접 통신을 한다면 통신할 경우의 수가 무진장 많아져서 혼란스럽게 됩니다. Mediator 패턴은 관제탑과 같이 통신을 집중시킴으로써 통신의 경로를 줄이고 단순화시키는 역할을 합니다. 2. 예제 ------------------ 관제탑 역할을 하는 ControlTower (활주로 역할도 함) ---------------- package ch15_Mediator;public clas..
자바 디자인 패턴 14 - Builder1. Builder 패턴은.. 뭔가가 만들어 지는 과정은 꽤나 복잡할 수가 있습니다. 게다가 그 복잡한 과정이 순서대로 실행되어야 할 때도 있습니다. 객체의 생성에 있어서 이런 복잡한 과정들을 분리해 내는 것이 Builder 패턴입니다. 2. 예제 ---------------- 복잡한 과정을 거쳐서 만들어 지는 객체가 될 Hero 클래스 ---------------- package ch14_builder;public class Hero { private String armSource; private String legSource; private String name; public Hero(String name) { super(); this.name = name; }..
자바 디자인 패턴 13 - Flyweight1. Flyweight 패턴은.. Flyweight 는 동일한 것을 공유해서 객체 생성을 줄여 가볍게 만드는 것입니다. 클래스 별로 factory를 씁니다. 그리고 그 factory에서는 자신이 찍어내는 객체들을 관리합니다. 이미 가지고 있는 객체에 대한 요청이 들어왔을 때는 관리하고 있던 객체를 던져주고, 가지고 있지 않은 것을 요청하면 새로 객체를 만들어 관리 리스트에 추가시키고 던져줍니다. 2. 예제 ---------------- Person class 및 Person을 Flyweight로 관리하는 Factory ------------- package ch13_Flyweight; import java.util.HashMap; import java.util...
자바 디자인 패턴 12 - Prototype1. Prototype 패턴은.. 기존에 만들어진 복잡다난한 인스턴스의 내용이 일부만 살짝 변경된 비스무레한 객체가 필요한 경우에 쓰입니다. 일반적으로 객체를 새로 생성할 때는 new Object()와 같은 방법으로 생성을 합니다. 그러나 그렇게 생성할 경우 기존에 만들어진 것과 유사하다고 해도 결국 모든 정보를 다시 세팅해주어야 합니다. 그러나, clone()을 이용할 경우에는 기존에 만들어진 것을 복사해서 바뀐 부분만 대체해 주면 인스턴스를 생성하기가 쉽습니다. 아주 일반적인 "원형"을 만들어서 그것을 복사한 후 적당히 커스터마이징을 하면 new로 객체를 생성하는 것보다 쉽게 됩니다. 2. 예제 ---------------- 복잡한 정보를 가지고 있는 Com..
자바 디자인 패턴 11 - Observer1. Observer 패턴은.. 어떤 클래스에 변화가 일어났을 때, 다른 클래스에 통보해 주는 패턴입니다. 통보를 하는 "어떤 클래스"가 Observable 이고, 통보를 받는 "다른 클래스"는 Observer입니다. Observable은 여러개의 Observer를 가질 수 있습니다. Observable이 "담임 떴다"를 외치면, Observer은 알아서 그에 걸맞는 행동을 합니다. 어떤 Observer는 만화책을 덮고 교과서를 꺼내고 어떤 Observer는 흘린 침 닦고 일어나서 공부하는 척하고 또 어떤 Observer는 먹던 도시락 치우고 창문 열어 환기를 시킵니다. Observable은 "담임 떴다"까지만 알려주지 "담임 떴으니깐, 누구는 어찌하고 누구는 저..
자바 디자인 패턴 10 - Facade1. Facade 패턴은.. 여러가지 복잡한 것들을 하나로 간주해서 편하게 다루는 방법입니다. 예를 들어, 우리가 흔히 자동차라고 하는 물건은 바퀴, 엔진, 오디오, 사이드 미러 등등 으로 이루어져있지만 우리는 그냥 다 자동차라고 생각하는 게 편합니다. 차안에서 음악을 듣고 싶으면, 그냥 오디오를 켜면 됩니다. "차량에 내장된 오디오"라는 것을 굳이 명확히 하기는 귀찮죠. 2. 예제 ----------------- 내부구성품 1. TV ---------- package ch10_Facade; public class TV { private boolean turnedOn = false; public void turnOn(){ turnedOn = true; System.o..
자바 디자인 패턴 9 - Chain of Responsibility1. Chain of Responsibility 패턴은.. 오션스 일레븐과 같은 류의 영화를 보신 적이 있죠? 전문가들이 몇 명 있습니다. 그러나, 그 전문가들은 할 수 있는 일이 극히 제한되어 있죠. 예를 들어, 해커가 격투에 능하진 않습니다. 해커는 단지 해킹에만 능합니다. 그들은 각각은 할 수 있는 일들이 제한적이지만, 모여있으면 세상만사 다 해결합니다. 각각의 전문가들이 자기가 할 수 있는 일만 하면 되거든요. 만약에 그들 모두가 해결할 수 없는 문제가 발생하면... 오션스 투엘브가 되고, 오션스 써틴이 되고 하면 됩니다. 또 영입하면 되죠 멀.. Chain of Responsiblity 패턴에서는 문제 해결사들이 한줄로 쫙 서있다..
자바 디자인 패턴 8 - Decorator1. Decorator 패턴은.. 기존에 구현되어 있는 클래스에 기능을 추가하기 위한 패턴입니다. 기존에 있던 클래스를 상속하여 만들기 때문에 기존 클래스와 사용법이 크게 다르지는 않습니다. 2. 예제 -------------- 데코레이터 ------------- package ch08_Decorator; public class Decorator { public String getMerong(){ return "merong"; } } -------------- 데코레이터를 상속 받은 넘 ---- package ch08_Decorator; public class ChildDecorator extends Decorator{ private Decorator decora..