본문 바로가기
반응형

전체 글50

팩토리 패턴 팩토리 패턴 (Factory pattern) : 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듬. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스(객체)를 만드는 일을 서브클래스에게 맡기는 것. * 객체를 만들어 내는 공장을 만드는 패턴 new -> 구상 클래스의 인스턴스를 만드는 것 * 인터페이스에 맞춰서 코딩을 하면 시스템에서 일어날 수 있는 여러 변화를 이겨낼 수 있다. 왜냐하면, 다형성 덕분에 어떤 클래스든 특정 인터페이스만 구현하면 사용할 수 있기 때문이다. * 구상 클래스를 많이 사용하면 새로운 구상 클래스가 추가될 때마다 코드를 고쳐야 하기 때문에, 많은 문제가 생길 수 있다. * Simple Factory는 정확하게는 패턴이 ㅇ추.. 2019. 3. 18.
옵져버패턴 * 옵져버 패턴 : JDK에서 가장 많이 쓰이는 패턴 subject - observer 한 객체의 상태가 바뀌면, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식 일대다 의존성을 정의. * Observer는 Subject에 의존 * 구현방법 Subject인터페이스와 Observer인터페이스가 들어있는 클래스 디자인 바탕으로 함. 느슨한 결합 (Loose Coupling)의 위력 * 디자인 원칙 : 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야함. * 데코레이터 패턴 : 객체에 추가적인 요건을 동적으로 첨가한다. 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. * 원래의 클래스 코드를 전혀 바꾸지 않고도 만.. 2019. 3. 12.
WebSocket 개념 WebSocket 개념 WebSocket 이란? : 서버 - 클라이언트 간의 효율적인 양방향 통신을 실현하기 위한 통신 프로토콜 HTTP의 단점을 보완하기 위해 등장함. 하나의 HTTP접속으로 양방향 메시지를 자유롭게 주고받을 수 있다 장점 : 기존 HTTP는 Client가 요청을 보내지 않아도 Server가 데이터를 보내주는 기능의 구현에 있어서 많은 고민이 있었음 -> HTTP의 근본적인 메커니즘 탓으로 인한 한계 (Request/Response) HTTP에 지나치게 많은 헤더(kByte)를 가지고있지만, WebSocket은 Byte단위까지 압축할 수 있어 네트워크 과부화 (오버헤드)를 줄일 수 있다. * HTTP를 완전히 대체하는 것이 아니라 HTTP통신이 적합하지 않은 메시징 등의 지연시간이 적고.. 2019. 3. 3.
[Git] Git 개념 Git 개념 Git 이란? : 소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템 Git을 사용하는 목적 1. version - 버전관리 2. backup 3. collaborates Git CLI(CommandLine)의 장점 : 익숙해지면 복잡한 GUI없이 간편하게 사용할 수 있다. 명령어의 특성상 처리해야할 명령어를 한번에 명령해서 자동화할 수 있다. GUI를 사용할 수 없는 서버 환경에서도 사용할 수 있다. Working tree : 버전으로 만들어지기 전 단계Staging Area : 버전으로 저장하기위한 파일 Repository : 버전이 저장되어 있는 곳 (.git) 명령어- git init : 버전관리 시작하기 (최초 지역 저장소 생성시)EX) git init . : 현재 .. 2019. 3. 3.
[Data Structure] Data Structure 개념 Data Structure 개념 자료구조(Data Structure) 란? : 자료의 집합을 의미. 각 원소들 사이의 관계가 일정한 규칙에 의해 나열되며, 자료에 대한 처리를 효율적으로 수행할 수 있도록 체계적으로 구분하여 표현한 것 자료구조 선택 기준 : 작업의 효율성, 추상화, 재사용성을 증가 시키기 위하여 적절한 자료구조를 선택해야함 - 고려사항 1. 자료의 처리시간 2. 자료의 크기 3. 자료의 활용 빈도 4. 자료의 갱신 정도 5. 프로그램의 용이성 * 추상화 : 복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 기능을 간추려내는 것 자료구조 자체를 구현하는 알고리즘에 중점을 두지 않고 어느 시점에 데이터를 삽입/추출 할 것인지, 어떻게 사용할 것인지 초점을 맞출 수 있게 함 종류 1.선형 구조.. 2019. 3. 2.
[Data Structure] Hash Function, Hash Table 개념 Hash Function, Hash Table 개념 Hash Function 이란? : 임의의 길이를 가진 데이터를 고정된 데이터의 길이로 변환시키는 함수 * 해시 함수에 의해 얻어지는 값 - 해시(해시 값, 해시 코드) (해시는 정수형태) 특징 1. 어떤 입력 값에도 항상 고정된 길이의 해시값이 출력한다 2. 입력 값이 하나라도 변경되어도 전혀 다른 결과물이 나온다 (눈사태 효과) 3. 상대적으로 메모리자원을 덜 소모한다 종류 1. 비암호학적 해시 함수 : CRC32 등 * CRC : 파일의 에러체크할 때 사용 2. 암호학적 해시 함수 : MD5, SHA계열 등 * 해시 함수 알고리즘 종류 1) Division Method (나눗셈 법) : 입력 값을 테이블의 크기로 나누고, 나머지를 테이블의 주소로 .. 2019. 3. 2.
[SpringFramework] Spring Scheduling - Task Spring Scheduling - Task Quart 란? : 스프링 MVC에서 일정 시간 주기적으로 작업하는 스케줄러 Unix의 Corn 처럼 특정시간, 몇분, 몇시간 마다 동작하는 스케줄러 주기적인 백업, 메일 발송 기능을 사용할 때 이용 Unix/Linux에서는 cron을 이용하여 쉘 스크립트를 실행하는 형태로 구현함. 사용법- servlet-context.xml123456789101112131415161718 // ... // ... Colored by Color Scriptercs - @Scheduled(cron="*/30 * * * * *")0/1 * * * * ? // 매 1초 간격0 0/1 * * * ? // 매 1분 간격0 * * * * ? // 매 1분 간격0 0 0/1 * * ? /.. 2019. 2. 4.
[Oracle DB] DATE타입 UPDATE UPDATE 테이블명 SET 컬럼명 = TO_DATE('날짜데이터', '날짜형식') EX)UPDATE PR_USER SET RECENT_ACCESS = TO_DATE('2019/01/31 01:00:00', 'YYYY/MM/DD HH:MI:ss'); 2. NUMTOYMINTERVAL(NUMBER, TYPE_OF_INTERVAL) - 년, 월에 대한 시간 간격을 구함 + 사용법 - SELECT SYSDATE - NUMTOYMINTERVAL (1, 'YEAR') FROM DUAL : 현재 날짜에서 1년을 뺌 - SELECT SYSDATE - NUMTOYMINTERVAL (1, 'MONTH') FROM DUAL : 현재 날짜에서 1달을 뺌 3. NUMTODSINTERVAL(NUMBER, TYPE_OF_INTE.. 2019. 2. 4.
[Oracle DB] 프로시저 프로시저(Procedure)란? : 특정 작업을 수행하는 이름이 있는 PL/SQL BLOCK 매개 변수를 받을 수 있고, 반복적으로 사용 할 수 있는 BLOCK 보통 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는 PL/SQL BLOCK을 DB에 저장하기 위해 생성함. 문법CREATE OR REPLACE 프로시저이름IN arg // 입력OUT arg // 출력IN OUT arg // 입,출력 동시에IS[변수 선언]BEGINPL/SQL Block [EXCEPTION]END; 프로시저 실행EXC / EXECUTE 프로시저명 (파라미터,...); 프로시저 삭제DROP PROCEDURE 프로시저명; 등록한 프로시저 내용 보기select * from user_source where name = upper('프로.. 2019. 2. 2.
반응형