본문 바로가기

델파이474

5.facade 패턴 facade 패턴 facade는 '건물의 앞쪽 정면(전면)'이란 뜻이다. facade 패턴은 [그림 5-40]에서 적용 전과 후를 비교해보면 어떤 의미인지 짐작할 수 있을 것이다. 몇 개의 클라이언트 클래스와 서브시스템의 클라이언트 사이에 facade라는 객체를 세워놓음으로써 복잡한 관계를 정리(구조화)한 것이다. 즉 모든 관계가 전면에 세워진 facade 객체를 통해서만 이루어질 수 있게 단순한 인터페이스를 제공(단순한 창구 역할)하는 것이다. facade 패턴을 이용하면 서브시스템 내부에서 작동하고 있는 많은 클래스들의 관계나 사용법을 의식하지 않고 facade에서 제공하는 단순화된 하나의 인터페이스만 사용하므로, 클래스 간의 의존 관계가 줄어들고 복잡성 또한 낮아지는 효과를 볼 수 있다. 여기서 f.. 2023. 3. 21.
4-2.Prototype 패턴 Prototype 패턴 패턴 프로그램 코드를 작성하다보면 기존에 만들어진 인스턴스의 내용을 일부 수정하여 사용하고 싶을 때가 있다. 그런 경우 객체를 새로 생성할 때는 사용하는 new Object() 메서드보다 [그림 5-31]처럼 clone() 메서드를 이용해 기존의 것을 복사하여 일부만 바꿔 인스턴스를 생성할 수 있다. 이런 개념을 확장하여 처음부터 일반적인 prototype(원형)을 만들어놓고, 그것을 복사한 후 필요한 부분만 수정하면 new Object() 메서드로 객체를 생성하는 것보다 편리하다. prototype 패턴은 이처럼 인스턴스를 복제하여 사용하는 구조이다. 따라서 생성할 객체의 원형을 제공하는 프로토타입 인스턴스로부터 생성할 객체들의 타입이 결정되도록 한다. 이 패턴은 객체를 생성할 .. 2023. 3. 17.
4-1.RMI란 RMI란 1. Java RMI란? 1.1 개요 RMI(Remote Method Invocation)란? 1. 분산되어 존재하는 객체 간의 메시지 전송(메소드를 호출하는 것 포함)을 가능하게 하는 프로토콜 현대 시스템 개발은 3계층 시스템이 주류로 이루고, 이 3계층인 데이터베이스, 애플리케이션, 클라이언트 모두 객체를 통하여 구현하고 저장하는 일이 많아졌습니다. 그래서 이렇게 분산되어 존재하는 객체간의 메시지 전송을 할 필요가 생겼고 이를 가능케 하는 것이 RMI 프로토콜입니다. 2. RMI 자체는 분산객체 간의 통신을 구현하는 모든 프로토콜을 의미함. (CORBA, DCOM …) RMI는 Java RMI 이전부터 쓰여지던 단어로써 분산객체를 개념을 구현하는 CORBA, DCOM 등을 포함하는 의미입니다.. 2023. 3. 16.
3.객체지향 - 패턴 이해를 위한 객체지향 개념 - OOP 객체지향 - 패턴 이해를 위한 객체지향 개념 - OOP 1. inheritance : 상속 / 계승 2. Encapsulation : 은익성 , 캡슐화 3. Polymorphism : 다형성 - Method Overlading : 중복정의 / 방법 중첩 - Method Overriding : 재정의 - Heterogeneous Collection : 이기종 컬렉션 / 이기종집합 - Polymorphic Parameter : 다형성 매개 변수 /다형적 변수 1.Super(Parent) @ Child 2.Extends vs Implement ( single vs multi inheritance, 단일 대 다중 상속) 3.Is a' relationship ( 'a '관계 ) 4.java.lang.Object .. 2023. 3. 14.
2.Factory 패턴 2.Factory 패턴 abstract factory는 '추상적인 공장'이란 뜻으로, [그림 5-33]과 같이 여러 개의 concrete Product를 추상화시킨 것이다. 따라서 구체적인 구현은 concrete Product 클래스에서 이루어진다. abstract factory에서는 사용자에게 인터페이스(API)를 제공하고, 인터페이스만 사용해서 부품을 조립하여 만든다. 즉 추상적인 부품을 조합해서 추상적인 제품을 만든다. 역할 : 클래스를 인스턴스화합니다 요점 : 제작자와 제품의 연계 상실 이점 : 제품의 제작 방식 변경으로 인한 영향 없음 2023. 3. 13.
1.MVC (Model - View - Controller) 1.MVC (Model - View - Controller) 1. MVC 란 무엇인가 > 모델 -알고리즘 구현 (비즈니스 로직) -환경과 무관 >보기 -환경과 의사 소통 -모델을위한 I / O 인터페이스 구현 컨트롤러 -모델과 뷰 간 데이터 교환 (알림 프로토콜)을 제어합니다 2. MVC를 구현하는 방법 > OPP의 배경 개념 -브레인 스토밍을 통한 기능 및 속성 목록 만들기 -그룹화 -클래스의 정의 -MVC의 역할을 클래스에 할당 2023. 3. 10.
디자인 패턴? 디자인 패턴? - Software Engineering Concept, Created by GOF(Gang of FOUR) (GOF (Gang of FOUR)가 만든 소프트웨어 엔지니어링 개념) - Artifacts from creative OOP - How to DEsign S/W (소프트웨어 설계 방법) - Basic Pattern 23EA, still being Built (기본 패턴 23) 2023. 3. 9.
mariaDB 마리아DB 컬럼 암호화 복호화 mariaDB 마리아DB 컬럼 암호화 복호화 AES_ENCRYPT(암화화할 값,암호키) AES_DECRYPT(복호화할 값,암호키) 컬럼 타입을 바꿔준다. ALTER TABLE 테이블명 MODIFY 컬럼명 blob; UPDATE 테이블명 a SET a.컬럼명 = AES_ENCRYPT(암호화할컬럼또는데이터, SHA2("암호화비밀번호",512)) , SELECT CONVERT(AES_DECRYPT(암호복호화데이터또는컬럼명,SHA2("암호화비밀번호",512))using euckr) Cus_JuminNumber FROM 테이블명 a 2023. 3. 8.
sqlite 팁 TIP sqlite 팁 TIP Sqlite 다중 중첩 case문 case [Su_Volt] when 1 then (case [Su_Kind] when 1 then '6600' when 2 then '440' end) when 2 then (case [Su_Kind] when 1 then '3300' when 2 then '380' end) when 3 then (case [Su_Kind] when 2 then '220' end) end as Su_Volt, expecting: LargeInt actual: WideString TFDQuery and SQLite: Type mismatch for field, expecting: LargeInt actual: WideString SELECT DayTime AS "T.. 2023. 3. 3.
SQLite 다중 스레드 응용프로그램 사용 SQLite 다중 스레드 응용프로그램 사용 1. 개요 SQLite는 세 가지 스레딩 모드를 지원합니다. 단일 스레드. 이 모드에서는 모든 뮤텍스가 비활성화되고 SQLite는 한 번에 단일 스레드에서 사용하지 않는 것이 안전합니다. 멀티 스레드. 이 모드에서SQLite는 두 개 이상의 스레드에서 단일 데이터베이스 연결이 동시에 사용되지 않는 경우 여러 스레드에서 안전하게 사용할 수 있습니다. 직렬화. 직렬화된 모드에서SQLite는 제한 없이 여러 스레드에서 안전하게 사용할 수 있습니다. 스레딩 모드는 컴파일 시간 (SQLite 라이브러리가 소스 코드에서 컴파일되는 경우) 또는 시작 시간 (SQLite를 사용하려는 응용 프로그램이 초기화되는 경우) 또는 런타임(새 SQLite 데이터베이스 연결이 생성되는 경.. 2023. 2. 17.
Date형식 조회/View(가상테이블) /테이블 타입 변경 Date형식 조회/View(가상테이블) /테이블 타입 변경 Date형식 조회 to_date('20070525084214', 'yyyymmddhh24miss') View(가상테이블) 뷰 삭제 DROP VIEW table_name ★★★★★ 다른 테이블을 참조로 뷰를 생성할 경우 뷰에 있는 데이터를 삭제시 원본 테이블도 함께 지워진다!!!!!!!!! 중요!!! 테이블 타입 변경 alter table 테이블명 modity 컬럼명 2023. 2. 14.
오라클 시퀀스 생성/초기화 오라클 시퀀스 생성/초기화 DROP SEQUENCE PAY_REG_NO create sequence PAY_REG_NO increment by 1 -- 증가값 start with 1 -- 첫 시작값 nomaxvalue -- 최대값 제한 (최대값 제한) nocycle nocache; 2023. 2. 7.
오라클 설치하기-무료버전 오라클 설치하기 오라클 설치하기-무료버전 https://www.youtube.com/watch?v=mJXgnqaGR8o&list=PLuvImYntyp-s76lJiia8YfskDRAypeoyh&index=14 CMD 창을 열고 sqlplus sys as sysdba 입력 비밀번호는 오라클 설치시 설정 해놓은 비밀번호 저는 항상 1234 로해놓습니다. 접속 완료 create user 계정이름 identified by 계정비번; 하면 당연히 만들어 저여하는데 에라가 똮!! 1행에 오류: ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 음......... 삽질해보니 오라클 12c로 넘어오면서 계정이름 앞에 c##을 붙여줘야 공통 사용자를 생성가능 하답니다. 다시 create user c##계정이름.. 2023. 2. 6.
오라클 계정생성 오라클 계정생성 우선 system 계정으로 들어간다. 계정생성 conn system/1234; command 창에 이렇게 입력. (system 계정의 초기 비밀번호는 1234이다.) create user c##(원하는 계정명) identified by (비밀번호); (이렇게 계정만 만들면 접속이 안된다. 접속의 권한이 없기 때문이다. 그럴땐 system(관리자)계정으로 권한을 주면 된다. grant connect, resource to c##(원하는 계정명); 계정삭제 drop user c##(지울 계정명); (삭제가 되지 않고 cascade 어쩌고 뜰때가 있는데 이것과 연결된 것이 있기 때문에 삭제가 되지 않는다는 뜻이다.) drop user c##(지울 계정명) cascade; 2023. 2. 3.
오라클 버전 정보 알아내기 오라클 버전 정보 알아내기 >>> V$VERSION 데이터 사전을 사용해 보도록 하쟈 SQL> COL banner FORMAT A70 HEADING "Oracle Versions" SQL> SELECT banner FROM V$VERSION; ***********************************결과 화면*************************************** 그외 정보 알아보기 2.제품 인스톨 정보 조회 >> PRODUCT_COMPONENT_VERSION 데이터 사전을 사용 SQL> COL PRODUCT FORMAT A30 HEADING "Products Installed" SQL> COL VERSION FORMAT A15 SQL> COL STATUS FORMAT A15 SQL>.. 2023. 2. 2.
ms sql 포맷 - 콤마 찍기 ms sql 포맷 - 콤마 찍기 숫자만 있는 경우 replace(convert(varchar, cast(숫자필드 AS MONEY),1), '.00','') 위의 경우는 일단 숫자 필드를 MONEY 타입으로 캐스팅 한다 그러면 기본 숫자에 콤마가 찍히게 되고 달러기준 MONEY 표시 이기 때문에 센트 표현을 위해서 #,###.## 의 형태로 나오게 된다. 당연히 소숫점은 없는거라 생각하고 varchar 형태로 바꾼 다음 센트 표시를 하는 소숫점 부분을 replace로 없애버린다고 생각하면된다. ㅇㅋ? CASE WHEN ISNUMERIC(숫자필드) = 0 THEN 숫자필드 ELSE REPLACE(CONVERT(VARCHAR, CAST(숫자필드 AS MONEY),1),'.00','') END 그리고 위의 경우.. 2023. 1. 31.
날짜함수(GETDATE,DATEADD,DATEPART,DATEDIFF) 사용법 & 예제 날짜함수(GETDATE,DATEADD,DATEPART,DATEDIFF) 사용법 & 예제 GETDATE GETDATE함수는 현재 컴퓨터에 설정되어있는 시스템 시간을 불러와주는 함수입니다. 2018-03-31 오전 01:40:30 위와같이 GETDATE()함수는 년월일은 물론이거니와 분,초 까지도 구해줍니다. 하지만 모든 사용자들이 위와같은 형식으로 사용하지는 않겠죠. 여기서 우리는 우리가 표시할 시간이나 날짜만 적절히 뽑아 올 수도 있고 날짜 형태를 바꿔서 출력할수도 있습니다. 사용법 --현재 날짜 출력 -- SELECT GETDATE() AS 시스템일자 --현재 날짜의 연,월,일 출력 -- SELECT YEAR(GETDATE()) AS 년, MONTH(GETDATE()) AS 월, DAY(GETDATE(.. 2023. 1. 30.
second 데이터를"시분초"로 보여주기 second값을 "시분초"로 보여주기 --> 예제: select dbo.FN_CO_DatetimeToHHMISS(DATEDIFF(ss,접수일시,처리일시)) from VOC --> 결과: 39시간 12분 59초 alter FUNCTION [dbo].[FN_CO_DatetimeToHHMISS] ( @ss int ) RETURNS varchar(50) /**************************************************************** 프로그램유형: Function 프로그램ID : 프로그램명: FN_CO_DatetimeToHHMISS 내 용: second값을 "시분초"로 보여주기 작 성 자: 최보현 작 성 일: 2012/01/30 수정 내용: -------------------.. 2023. 1. 28.
MSSQL에서 특정 문자의 갯수 알기 MSSQL에서 특정 문자의 갯수 알기 MSSQL에서 특정 문자의 갯수를 알 수 있는 쿼리입니다. 아래의 쿼리는 C:\WINDOWS\System32 문자 중 '\'의 갯수 찾는 쿼리입니다. SELECT LEN('C:\WINDOWS\System32') - LEN(REPLACE('C:\WINDOWS\System32', '\', '') 2023. 1. 25.
형변환 마스킹 형변환 마스킹 SELECT REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, 950000), 1),'.00','') 그외 MSSQL의 형변환 방법입니다. 문자를 숫자로 바꾸는 경우 CAST('20' AS INT) 숫자를 문자로 바꾸는 경우 CAST(1234 AS CHAR(10)) 2023. 1. 18.