본문 바로가기

반응형

분류 전체보기

(17)
[기본 지식] 4. 의존성 주입(DI, Dependency Injection) 의존성 주입 싱글톤 패턴은 사용하기가 쉽고 굉장히 실용적이지만 모듈 간의 결합을 강하게 만들 수 있다는 단점이 있습니다. 이때 의존성 주입(DI, Dependency Injection)을 통해 모듈 간의 결합을 조금 더 느슨하게 만들어 해결할 수 있습니다. 의존성이란 종속성이라고도 하며 A가 B에 의존성이 있다는 것은 B의 변경 사항에 대해 A 또한 변해야 된다는 것을 의미합니다. 앞의 그림처러 메인 모듈(main module)이 '직접' 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자(dependency injector)가 이 부분을 가로채 메인 모듈이 '간접'적으로 의존성을 주입하는 방식입니다. 이를 통해 메인 모듈(상위 모듈)은 하위 모듈에 대한 의존성이 떨어지게 됩니다. 참고로 이..
[기본 지식] 3. 디자인 패턴 - 싱글톤 패턴(Singleton Pattern) 디자인 패턴 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것을 의미. 싱글톤 패턴 싱글톤 패턴(singleton pattern)은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴입니다. 보통 데이터베이스 연결 모듈에 많이 사용합니다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있습니다. 하지만 의존성이 높아진다는 단점이 있습니다. 자바스크립트의 싱글톤 패턴 Javascript에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴을 구현할..
[데이터베이스] 10. SQL - 데이터 검색어 SELECT, PL/SQL 데이터 검색어(SELECT) 문법 SELECT [DISTINCT] {*, column [alias], ...} FROM table_name [ WHERE condition ] [ GROUP BY column ] [ HAVING condition ] [ ORDER BY {column, expression} [ ASC | DESC ]]; 항목 설명 DISTINCT: 중복되는 행을 제거하는 옵션 *: 테이블의 모든 column을 출력 alias: 해당 column에 대해서 다른 이름을 부여할 때 사용 alias 지정은 space 다음에 alias명 또는 AS alias로 지정 가능 table_name: 질의 대상 테이블 명 WHERE: 조건을 만족하는 행들만 검색 condition은, column, 표현식, ..
[데이터베이스] 9. SQL(Structured Query Language) - TCL 트랜잭션 제어어(TCL: Transaction Control Language) 트랜잭션 제어어는 트랜잭션의 DML(Data Manipulation Language)작업단위를 제어하는 명령어이다. 종류 COMMIT, ROLLBACK, SAVEPOINT 등이 있다. COMMIT: 트랜잭션을 완료하여 데이터 변경사항을 최종 반영 COMMIT 이후 데이터 상태 데이터에 대한 변경 사항이 물리적인 디스크에 반영된다. COMMIT 이전 데이터는 복구할 수 없다. 모든 사용자가 변경된 결과를 볼 수 있다. 관련된 행에 대한 잠금(Lock)이 풀리며 다른 사용자들이 조작할 수 있다. 문법 COMMIT; ROLLBACK: 데이터 변경사항을 이전 상태로 되돌리는 명령어 ROLLBACK 이후 데이터 상태 ROLLBACK된 ..
[데이터베이스] 8. SQL(Structured Query Language) - DCL 데이터 조작 프로시저 데이터 조작을 위해서 사용하는 언어를 SQL(Structured Query Language)이라고 하는데, SQL은 일정한 데이터 집합으로부터 보다 쉽게 자료를 검색하고 입력, 수정, 삭제와 같은 조작을 할 수 있도록 고안된 언어를 말한다. 일반적으로 SQL은 데이터 정의어(DDL: Data Definition Language), 데이터 조작어(Data Manipulation Language), 데이터 제어어(Data Control Language)등의 세가지로 분류한다. 데이터 제어어(DCL: Data Control Language) 사용자별로 데이터베이스에 접근할 수 있는 권한을 부여하거나 회수하는 명령어들을 말한다. 종류 ROLE, GRANT, REVOKE 등이 있다. ROLE..
[데이터베이스] 7. SQL(Structured Query Language) - DML 데이터 조작 프로시저 데이터 조작을 위해서 사용하는 언어를 SQL(Structured Query Language)이라고 하는데, SQL은 일정한 데이터 집합으로부터 보다 쉽게 자료를 검색하고 입력, 수정, 삭제와 같은 조작을 할 수 있도록 고안된 언어를 말한다. 일반적으로 SQL은 데이터 정의어(DDL: Data Definition Language), 데이터 조작어(Data Manipulation Language), 데이터 제어어(Data Control Language)등의 세가지로 분류한다. 데이터 조작어(DML: Data Manipulation Language) 데이터베이스에 있는 데이터를 변경하거나 검색하기 위하여 사용되는 명령어들을 말하며, 이 명령어는 트랜잭션 제어어(Transaction Con..
[데이터베이스] 6. SQL(Structured Query Language) - DDL 데이터 조작 프로시저 데이터 조작을 위해서 사용하는 언어를 SQL(Structured Query Language)이라고 하는데, SQL은 일정한 데이터 집합으로부터 보다 쉽게 자료를 검색하고 입력, 수정, 삭제와 같은 조작을 할 수 있도록 고안된 언어를 말한다. 일반적으로 SQL은 데이터 정의어(DDL: Data Definition Language), 데이터 조작어(Data Manipulation Language), 데이터 제어어(Data Control Language)등의 세가지로 분류한다. 데이터 정의어(DDL: Data Definition Language) 데이터를 저장하고 있는 테이블 등의 구조를 생성하고 변경하기 위하여 사용되는 명령어들을 말하는 것으로, 명령어 수행이 되면 이전 상태로 복귀할 ..
[데이터베이스] 5. 물리 데이터저장소 테이블 제약조건 실무에서 주로 사용하는 테이블 제약조건으로는 다음 2가지가 있다. Delete Constraint: 참조된 기본 키의 값이 삭제될 경우의 처리내용을 정의한다. Cascade: 참조한 테이블에 있는 외부 키와 일치하는 모든 Row가 삭제된다. Restricted: 참조한 테이블에 있는 외부 키에 없는 것만 삭제 가능하다. Nullify: 참조한 테이블에 정의된 외부 키와 일치하는 것을 Null로 수정한다. Update Constraint: 참조된 기본 키의 값이 수정될 경우의 처리내용을 정의한다. Cascade: 참조한 테이블에 있는 외부 키와 일치하는 모든 Row가 수정된다. Restricted: 참조한 테이블에 있는 외부 키에 없는 것만 수정 가능하다. Nullify: 참조한 테이블에 ..

반응형