CS
Design Pattern 디자인 패턴 종류
개념소프트웨어를 설계할 대 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 훌륭한 해결책."바퀴를 다시 발명하지 마라 (Don't reinvent the wheel)", 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다. 패턴이란)각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원할하게 해주는 아주 중요한 역할을 한다.구조콘텍스트 (Context)문제가 발생하는 여러 상황을 기술한다, 즉, 패턴이 적용될 수 있는 상황을 나타낸다, 경우에 따라서는 패턴이 유용하지 못한 상황을 나..
결합도(Coupling)과 응집도(Cohesion) 순서
결합도 순서 강 > 약 / 내공외제스자내용 -> 공통 -> 외부 -> 제어 -> 스탬프 -> 데이터(자료)Content > Common > External > Control > Stamp > Data Content Coupling (내용 결합도)하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 내부 동작에 의존하는 상태.(내부 자료나 제어 정보를 사용하는 것이다.) 한 모듈이 데이터를 생성하는 방법을 변경하면, 다른 모듈의 변경이 필요하다.(다른 모듈이 로컬 데이터에 접근하는 경우) Common Coupling (공통 결합도)두 개의 모듈이 같은 글로벌 데이터를 공유하는 상태. (전역 변수)공유 자원(변수)을 변경하면 그 자원을 사용하는 모든 모듈의 변경이 필요하다. External Coupling (외..
Virtual Machine (가상 머신이란?)
가상 머신 (VM : Virtual Machine) 이란?- 실재하는 컴퓨터 상에 소프트웨어로 논리적으로 만들어낸 컴퓨터- 하나의 물리 자원 (컴퓨터) 위에 하나의 환경(OS)만 있는 것을 효율화하고자 기상화층을 만들고 그 위에 OS를 새로 설치하는 기법 실제로 있는 컴퓨터 시스템을 여러 명의 사용자가 동시에 사용할 수 있게 하기 위해서. (효율성 ↑) 따라서 하나의 컴퓨터를 여러 명의 사용자가 동시에 사용할 수 있도록 여러 대의 작은 컴퓨터로 분할 사용하거나, 운영체계나 하드웨어 등의 구성을 달리하여 운영하고자 할 때 주로 사용된다.장단점- 사용자는 자신만이 콘솔, 디스크, 프린터 등을 갖춘 온전한 컴퓨터 시스템을 갖고 혼자서 사용하고 있는 것처럼 느끼게 된다.- 1대의 컴퓨터상에서 여러 개의 시스템을..
[DB] 엔터티(Entity)란?
개념엔터티(Entity)를 그대로 번역하면 실제, 독립체라는 뜻으로 데이터 모델링에서 사용되는 객체다. 즉 엔터티(Entity)는 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 "어떤 것(Thing)"이라고 말할 수 있다. "어떤 것"이라고 부르는 것처럼 엔터티는 추상적인 의미를 가지며 학교나 학생처럼 현실 세계에서 눈에 보이는 개념일 수도 있고 주문이나 결제처럼 눈에 보이지 않는 개념일 수도 있다.엔터티(Entity) : 엔터티는 데이터베이스 테이블인스턴스(Instance) : 인스턴스는 데이터베이스에 저장된 데이터 내용의 전체 집합속성(Attribute) : 속성은 인스턴스의 구성요소로써 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.적절한 엔터티 특징도출한 엔터티가 ..
컴퓨터 시스템
컴퓨터의 기본 구성도하드웨어컴퓨터에서 각종 정보를 입력하여 처리하고 저장하는 동작이 실제 일어나게 해주는 물리적인 실체.컴퓨터의 성능은 하드웨어 의해 결정됨1) 중앙 처리 장치 (cpu)인간의 두뇌에 해당하는 부분으로, 실행과 데이터 처리를 담당프로세서 또는 마이크로프로세서라고도 부름cf) 마이크로프로세서 : CPU를 IC 칩 1개에 집적한 반도체 소재산술 논리 연산 장치(ALU) : 산술 연산, 논리 연산, 보수 연산, shift 연산 수행제어 장치(CU) : 1) 프로그램의 명령어 해독, 2) 명령어 실행에 필요한 제어 신호를 발생, 3) 컴퓨터의 모든 장치를 제어레지스터 : 중앙 처리 장치 내부에 있는 데이터를 일시적으로 보관하는 임시 기억 장치(빠른 access 가능)CPU 내부 버스 : 구성 요..
암호화 알고리즘
정보를 안전하게 전송하거나 저장하기 위해 사용되는 수학적인 절차다.대칭 키 암호화 (Symmetric Key Encryption)빠르고 효율적이지만, 키를 안전하게 공유해야 한다AES (Advanced Encryption Standard)현재 가장 널리 사용되는 대칭 키 암호화 알고리즘 중 하나미국 국립표준기술연구소(NIST)에 의해 2001년에 공식적으로 표준으로 채택AES는 128비트, 192비트, 256비트 세 가지 키 길이를 지원하며, 블록 암호화 방식을 사용블록 암호화는 고정된 크기의 데이터 블록을 암호화하는 방식으로, AES에서는 128비트 블록 크기를 사용DES (Data Encryption Standard)초기 미국 국립표준기술연구소(NIST)에서 정한 표준으로 사용현재는 보안성이 약해짐에..
NOSQL (개념, 특징, 장단점, RDBMS와의 차이점, 모델, 종류)
No SQL 은 "관계형데이터베이스(RDBMS)를 사용하지 않는다" 는 의미가 아닌, 여러 유형의 데이터베이스를 사용하는 비관계형 데이터베이스 프로그래밍언어이다.요약하자면 대표적으로 다음과 같은 특징을 가진다.테이블, 칼럼과 같은 스키마를 가지지 않는다.대규모 확대가 가능하도록 수평적 확장성을 가져 대규모의 데이터를 유연하게 처리할 수 있다.집합-지향(Aggregate-oriented)모델을 사용한 분산환경으로, 지연과 처리율이 우수(속도처리빠름)데이터 베이스의 다양한 저장소 사용 가능Scale-out구조Read/Write 의 성능이 뛰어남빅데이터 처리에 특화되어 있다.특징1. 비일관성 NoSQL은 비일관성의 특징을 가진다.RDBMS와 다르게 ACID를 충족하지 않는다.* ACID데이터베이스의 트랜잭..
데이터 웨어하우스(DW)란?
개요데이터 웨어하우스(data warehouse)란 사용자의 의사 결정에 도움을 주기 위하여, 기간 시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스를 말한다. 그렇다면 구축하지 않고 시스템의 데이터베이스에 직접 데이터 접근해서 분석을 하면 어떻게 될까? 만약 쇼핑을 할 수 있는 앱이 있다면 간단하게 아래와 같은 시스템이 있고 각 시스템에 맞게 데이터들이 데이터베이스에 쌓일 것이다.결제 관리 시스템: 사용자가 쇼핑을 하고 결제를 관리하는 시스템 (사용자 결제 목록, 결제 내역)재고 관리 시스템: 현재 옷의 재고를 보고 수량을 관리하는 시스템 (현재 재고 수량, 부족한 재고 수량)주문 관리 시스템: 쇼핑 주문을 하는 시스템 (주문 내역)회원 관리 시스템: 쇼핑몰 가입하거..
데이터 모델링의 이해
모델링의 이해모델링의 정의모델이란 모형, 축소형의 의미로서 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형이다.모델링은 다양한 현상을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 의미한다, 즉 모델을 만들어가는 일 자체다. 모델링에 대한 다양한 정의가설적 또는 "일정양식"에 맞춘 표현어떤 것에 대한 예비 표현으로 그로부터 "최종대상"이 구축되도록 하는 계획으로서 기여하는 것복잡한 현실세계를 단순화시켜 표현사물 또는 사건에 관한 영상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것현실 세계의 추상화된 반영모델링의 특징1. 추상화현실세계를 "일정한 형식"에 맞추어 표현한다는 의미"다양한 현상"을 일정한 양식인 표기법에 의해 표현2. 단순화복잡한 현..
데이터 테이블의 종류 및 특성
1. 원장성 테이블 (Master Table)구성 형태업무의 핵심 개체(Entity)들로서 주로 업무성격의 주체(Subject, Source)에 대한 정보를 담고 있으며, 부속된 많은 자식 테이블(child table)들을 거느리고 있다, 또한 이력 테이블(History table)도 부속되어 있기에 dw 시스템을 구축할 때도 이와 같은 원장성 테이블은 아주 중요한 핵심 테이블(Key table) 역할을 하게 된다.여기서 주체(Source)란 행위(Behavior)의 주체를 말한다. 쉽게 예를 들어 설명하면 모든 업무의 프로세스(process)는 주체와 행위, 그리고 대상(Target, Object)로 집약될 수 있다. 즉, "홍길동은 카드로 멋진 컴퓨터를 구입했다"라는 내용을 업무 프로세스 관점에서 바..