팩토리 패턴에 가장 큰 장점은 앞으로 어떤 클래스가 추가될지 모르는 상태에서 팩토리 클래스에서 if만 추가하면 객체가 생성되고, 서브클래스만 구현하면 된다는 것이다. 얼마나 획기적인가...


예제를 통해 알아보자.

package AbstactFactory;


public abstract class Ethnic {

public void Create() {

}

}

package AbstactFactory;


public class EthnicFactory {

public String _ethnic;

public EthnicFactory(String _ethnic){

this._ethnic = _ethnic;

}

public Ethnic getInstance(){

if(_ethnic.equals("Human")){

return new Human();

}

else{

return new Elf();

}

}

}

package AbstactFactory;


public class Character extends Human {

private String ethnicName;

private Ethnic _ethnic;

public Character(){

this("Human");

}

public Character(String ethnicName){

this.ethnicName = ethnicName;

this.Create();

}

public void Create(){

EthnicFactory factory = new EthnicFactory(ethnicName);

Ethnic ethnic = factory.getInstance();

ethnic.Create();

_ethnic = ethnic;

}

}

package AbstactFactory;

public class Human extends Ethnic{
private String ethnicName;
public Human(){
ethnicName = "Human";
}
@Override
public void Create() {
// TODO Auto-generated method stub
super.Create();
System.out.println(ethnicName + " created.");
}
}


메인 구현 부분


Character Human = new Character("Human");
Character Elf = new Character("Elf");


'시스템분석 및 설계 > 디자인패턴' 카테고리의 다른 글

MVC 모델 정리  (0) 2009.08.21

역시 한학기동안에 만든 요구분석서 이다. 팀원들과 회의를 거쳐 만든 작품이다. 처음에는 의견도 분분했지만 각자의 생각을 조금씩 양보하면서 만드니 완성도 있는 작품이 나온것 같다. 모든 팀플은 그런것 같다. 각자의 의견을 제시하되 조금은 양보하면서 지켜보는것도 좋은 결과를 나오게 하는 원동력 인것 같다. 아래는 우리팀에서 만든 요구분석서 이다. 참고할사람은 참고바람.

한한기동안에 나올 문서를 정리하고 만드는 수업이다. 나에게는 적지않은 노력과 시간이 필요했고
완성도 있는 개발계획서를 위해 투자한만큼 완성도 있는 계획서가 나와서 흡족하다.


개발계획서를 위한 분들을 위해서 참고하시라고 올려본다. 별로 도움은 되지 않을것이다. 하지만 양식은 이용해서 써도 좋을 것다.

'시스템분석 및 설계' 카테고리의 다른 글

종합설계 - 요구분석서  (0) 2010.06.02
업무분담표 작성  (0) 2009.08.20
프로젝트 표준안에 대한 고찰  (0) 2009.08.20
프로젝트 문서  (0) 2009.07.29
집을 보다 끄적임...

'시스템분석 및 설계 > 디자인패턴' 카테고리의 다른 글

팩토리 패턴  (0) 2012.10.22

프로젝트는 혼자서 하는일이 아니라서 각자 업무를 분담해야 한다 업무 분담을 보여주기 위해서 문서를 만들었다.
필요하신분 갔다 쓰시고, 리플만 달아주세요.


프로젝트를 시작하여 팀원끼리 문서 양식을 정하고 표준을 잡는일은 프로젝트의 날개이자 산출물의 핵심요소 인것같다. 산출물을 뽑는것도 힘들지만 산출물의 틀을 잡는것이 더 어렵고 힘들었던것 같다. 각자의 의견이 분분하고 토의해서 결정해야 된다는 생각에 왜그리도 많이 싸웠는지...
아래 내용은 화면디자인 표준안을 잡는 작은 한예이다. 여러분도 프로젝트 할때 이런걸 잡고 가는가요?

화면 디자인 표준안

1. 제목표시줄(Form Text)

- Form Name : Frm_화면번호

예) Frm_001

- 화면 크기 : 800 x 480

- 폰트 : Tahoma

- 폰트 크기 : 9

예) 모바일 컨텐츠 관리 화면

2. 버튼(Button)

- Button Name : Btn_명사

예) Btn_Edit, Btn_Delete

- 크기 : 90 x 50 (기본), 상황에 따라 버튼이 크게 표기 되야 할시에는 변경 가능함.

- 폰트 : tahoma

- 폰트 크기 : 9

- 버튼 제목

> 기본적으로 명사를 표기하는 것으로 원칙으로 합니다. 아래는 대표적으로 자주 쓰는 용어만

통일하여 기입해 놓은 것입니다. 아래 예 외에도 추가로 통합되야 할것이 있으면 회의를 통해

합치는 것으로 한다.

예) 정보보기(X), 사용자정보(O), 확대보기(X), 확대(O)

> 수정(EDIT) : “편집”, “변경”, “edit”

> 입력(INSERT) : “add”, “첨부” , “추가”

> 삭제(DEL) : “delete", "지우기”

> 출력(PRINT) : “인쇄”, “프린트”

> 검색(SEARCH) : “search", "find", "찾기”

이외도 많은 용어들이 있겠지만 위 용어는 자주 사용하는 용어만 정리해 놓았습니다.

- 버튼 배치

3. 입력 상자(Textbox)

- Textbox Name : Txt_명사

예) Txt_Name, Txt_Tel

- 폰트 : tahoma

- 크기 : 9

- 꼭 필요한 입력상자 항목

속성 : BackColor - Info

1) 꼭 필요한 항목 2) 일반 항목

4. 레이블(Lable)

- Label Name : lbl_명사

- 폰트 : tahoma

- 크기 : 일반(9), 제목(14)

- 주민번호와 같은 보호 항목 처리

속성 : PasswordChar - “*”

- 근접한 컨트롤이 전체 폼에 오른쪽에 있을 경우 : 오른쪽 정렬

근접한 컨트롤이 전체 폼에 왼쪽에 있을 경우 : 왼쪽 정렬

5. 리스트박스(ListBox)

- Listview Name : listview_명사

- 폰트 : tahoma

- 크기 : 일반(12), 제목(9)

- 글씨에 길이가 길 경우 : 오른쪽 정렬

- 이름 같이 잛은 경우 : 가운데 정렬

6. 콤보박스(ComboBox)

- ComboBox Name : cmb_명사

- 폰트 : tahoma

- 크기 : 9

- 가운데 정렬

7. 체크박스(CheckBox)

- CheckBox Name : chk_명사


'시스템분석 및 설계' 카테고리의 다른 글

종합설계 - 요구분석서  (0) 2010.06.02
종합설계 시간에 만든 개발계획서를 올려본다.  (2) 2010.06.02
업무분담표 작성  (0) 2009.08.20
프로젝트 문서  (0) 2009.07.29

종 류

장 점

단 점

Oracle

□ 많은 사용자가 존재함

□ 입증된 제품의 우수성

□ PC급에서 Mainframe급까지 모두 설치됨

□ 3rd Party의 강력한 지원

□ 분산처리 지원 기능의 우수성

□ SMP 및 MPP의 지원

□ 신제품의 출시가 늦어짐(버전 발표의 늑장)

□ DBMS를 운영하기 위하여 많은 하드웨어 자원의 필요

□ 복잡한 DBMS 관리

□ 가격이 동종의 DBMS보다 비쌈

□ 모든 제품에 Kernel이 필요

□ 애프터서비스의 부족

□ 배우기 힘든 제품 기능들의 존재

Sybase

□ Client/Server용으로 설계되어 성능과 분산처리 지원이 탁월

□ 타 DB에 비하여 DBMS를 운영하기 위하여 적은 하드웨어 자원만으로도 충분

□ 3rd Party 지원도구의 지원 우수

□ Open Server/MDI Gateway 지원

□ PowerBuilder와의 결합 및 지원 우수

□ Replication Server 특성 우수

□ Record Tracking 우수

□ 복잡한 DBMS 관리

□ 부족한 확장성

□ Sybase 자체 개발 등의 지원도구의 부족

□ 예전 버전에서의 표준 SQL의 지원 불량

□ Microsoft에 의한 대체 DBMS의 등장으로 독창성 훼손

Informix

□ 안정된 Kernel(시스템의 안정성)

□ 사용자들의 만족도 우수

□ Low end Unix에서의 운영 우수성

□ 풍부한 4GL 도구의 지원

□ 풍부한 경험을 가진 개발자 및 사용자의 존재

□ PC급 지원기능의 한계

□ VMS의 지원 불가

□ 3rd Party 지원도구의 부족

(ODBC를 통한 DB접속 의존)

□ 경쟁시장에서의 마케팅 부족

Ingres

□ 통합된 도구세트의 지원기능 훌륭

□ 사용자 정의 데이터 타입, 함수, 연산자 등의 지원

□ VMS, Unix 사용자의 큰 만족도

□ Replication Service기능의 우수

□ PC전략의 부재

□ 3rd Party 지원도구의 부족

(ODBC를 통한 DB접속 의존)

□ 도큐먼테이션 기능의 부족

□ 회사의 불확실한 미래 (CA의 인수후)

Microsoft

SQL Server

□ Sybase의 장점들을 물려 받음

□ 저렴한 제품 가격

□ Windows NT환경에서 최적의 기능 및 성능을 발휘하도록 설계됨(SMP, 하드웨어 확장성 우수)

□ Microsoft의 '토털 솔루션' 전략의 중심축

- Networking

- Database

- Tools

□ 단순한 데이터베이스 기능

□ Sybase의 특성들을 물려받음

(Microsoft의 Family로서의 기능을 충분히 하도록 범용 RDBMS의 기능을 대폭 축소)

□ Microsoft는 RDBMS만에 주력하는 회사가 아니므로 충분한 지원 및 더 나은 DBMS로의 발전전망 불투명

□ 최근의 Sybase의 신 기능의 결여

□ DBMS 전문가의 부족

□ 단순한 데이터베이스 기능

Progress

□ 사용자 만족도 우수

□ 통합 개발 지원 도구

□ DBMS의 안정성 우수

□ 소규모 Unix Platform들을 기반으로 할 때 운용성 우수

□ 3rd Party 지원도구의 부족

□ Server의 주요 기능들의 부족

- Replication

- SMP(Symmetrical Multi-Processor)

- MPP(Massive Parallel Processor)

- 개발지원 도구

- 성능튜닝 도구

□ 완전한 관계형 SQL API의조건 미흡

Qupta SQL

Base

□ 간단한 DBMS 관리

□ 통합 윈도우 개발 및 사용자용도구의 지원

□ IBM DB2와의 호환성

□ Client/server용으로의 구조의 우수성

□ 제품의 안정성 미흡

□ 3rd Party 지원도구의 부족

□ 제한된 호환성

□ Stored Procedure와 Trigger의 결여

□ Router의 높은 가격

□ 고객 지원의 미흡

DB2

□ IBM Product Line의 호환성

□ DRDA(Distributed Relational Database Architecture) 구조

□ 저렴한 가격

□ RDBMS와 Platforms의 안정성

□ CICS와의 통합사용이 가능

□ 원격관리의 우수성

□ Stored Procedure등의 기능 미흡

□ 제한된 호환성

□ 3rd Party 지원도구의 부족

□ OS/2의 성능의 문제점

□ 시장이 편중됨(IBM 위주)


루트패스워드 설정

mysql>use mysql;
mysql>update user set password=password('dongkyun') where user='root';
mysql>flush privileges;

사용자 추가
mysql>use mysql;
mysql>insert into user values('localhost','nabilera1','password','y','y','y','y','y','y','y','y','y','y',
      ->'y','y','y','y','y','y','y','y','y','y','Y'
      ->'','','','',0,0,0);
mysql>flush privileges;
mysql>select * from user;


사용자 삭제
mysql>use mysql;
mysql>delete from user where User='nabilera1';
mysql>select * from user;


+ Recent posts