본문 바로가기

컴퓨터과학54

[데이터베이스] SQL 총정리 1 DB 생성 및 테이블 생성 releation=테이블, 컬럼=필드=열=속성, 튜플=행=로우=레코드 create database [DB명] create table [테이블명]( [필드명] [type(n)] [option], ... , [option]); type char(n) : n 만큼 고정된 크기 할당 varchar(n) : 필요한 만큼만 크기 할당. 최대 n만큼 할당함 int, smallint : 보통 int는 8바이트 smallint는 4바이트 numeric(d,p): 소수 d는 총 길이, p는 소수 몇 째 자리 까지표시할 지 numeric(7,3) → 0000.000 option not null, primary key, foreign key 등이 있음 여러 필드를 pk 또는 fk 지정할 경우 필드에.. 2021. 10. 27.
[디자인패턴] 반복자 패턴 (Iterator Pattern) 목적 여러 요소들을 담고 있는 객체이 내부 구조에 대한 이해 없이 각 요소를 순서대로 접근하고 사용할 수 있도록 방법을 제공 요소 문제: 자료 구조 클래스의 요소를 한 개씩 접근하는 API가 서로 다름 해결: 반복자 객체를 중간에 넣음 결과: 변경 최소화 구현 iterator(): 반복자에 대한 참조를 반환 (Iterator 자료형) hasNext(): 요소가 더 존재하는지 확인 (true / false) next(): 다음 요소 가져오기. Object를 반환하므로 변환해서 사용 // Iterator 사용 Iterator iter = cities.iterator(); while (iter.hasNext()){ String s = (String)iter.next(); System.out.println(s).. 2021. 10. 18.
[디자인패턴] 싱글턴 패턴 (Singleton Pattern) 목적 클래스가 한 개의 인스턴스만을 만들 수 있도록하고, 어디서나 생성된 인스턴스에 접근할 수 있도록 요소 문제: 여러 객체가 생성되면 상태 관리 어려움 해결: 객체 생성자를 중앙 관리 결과: 객체가 한 개임을 보장 구현 1. 기본 생성자을 private 으로 막는다. 2. static 함수로 객체를 생성하도록 함 public class Singleton{ private static Singleton uniqueInstance; private Singleton(){} // private으로 생성자 막음 public static Singleton getInstance(){ if (uniqueInstance==null){ uniqueInstance = new Singleton(); } return uniqu.. 2021. 10. 18.
[디자인패턴] 팩토리 패턴 (Factory Pattern) 목적 객체 생성용 인터페이스 정의 구체적인 클래스를 명시하지 않고 관련되거나 의존적인 객체들을 생성할 수 있는 인터페이스 제공 new는 인터페이스가 아니라 실제 클래스(concrete class)의 객체를 생성 OCP에 어긋남 (변경에 대해서 닫혀있지 않다) 생성할 객체가 늘어나면 코드 수정 필요 요소 문제: 실제로 구현되는 클래스의 객체를 생성할 때 객체의 종류가 달라지면 클라이언트 코드를 많이 수정해야함 해결: 생성을 분리해서 캡슐화 시킴 결과: 사용할 객체가 많거나 객체를 생성하는 방법이 변경 되어도 연쇄적인 수정이 적어짐 정의 Creator가 Factory에 해당한다. ConcreteCreateor는 Product타입의 ConcreteProduct들을 가져와 factoryMethod로 작업한다. .. 2021. 10. 18.