본문 바로가기
반응형

분류 전체보기677

결합도(Coupling)과 응집도(Cohension) 모듈의 독립성을 판단하는 두 가지 지표이다. 결합도는 모듈과 모듈간의 상호 의존 정도, 응집도는 모듈 내부의 기능적인 집중 정도라고 할 수 있다.좋은 모듈화는 용도에 맞게 잘 구분된 기능을 가신 모듈들로 세분화 하는 것이다. 즉, 개별 모듈은 독립적으로 자신에게 주어진 기능만을 수행하고 명확한 결과값을 내 놓아야 하고 다른 모듈에 의존성이 높아선 안된다. 즉 결합도는 낮을 수록 응집도는 높을 수록 이상적인 모듈화이다. 물론 결합도가 극단적으로 낮고 응집도가 극단적으로 높다고 다 좋은건 아니다. 데이터베이스 정규화와 마찬가지로 이론적으로 이상적일 수록 현실적으로 적합한건 아니다. 상황에 맞게 적절히 낮고 높을 수록 좋은 것이다. 결합도의 종류 자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 .. 2015. 10. 18.
DFD(Data Flow Diagram)와 DD(Data Dictionary) 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법으로 버블차트라고 부르기도 한다.프로세스, 데이터베이스, 호스트간 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용된다. 자료 흐름도의 일반적인 모습은 아래와 같다. 호스트와 프로세스, 데이터베이스가 노드이고 간선으로 데이터의 이동을 표현한다. 자료 흐름도상에 있는 자료를 더 자세히 정의하기 위해 자료사전(DD)라는 것을 같이 사용한다. 주문서 파일주문번호 = 주문년도 + 일련번호주문회원 = (회원번호) *회원인 경우만 회원번호*회원등급 = [미등급 | 일반회원 | VIP] *회원이 아닐경우 미등급*주문이력 = {주문서} 이런식으로 된, 데이터를 설명하는 데이터로 메타 데이터(Meta Data)라고도 불린다. 2015. 10. 18.
그레이 코드(Gray code)를 사용하는 이유? 이론적으로 암기한 그레이 코드. 어떻게 만드는지는 알겠지만 왜 이걸 쓰는지 이해가 안갈 수도 있다. 이는 그레이 코드를 죽 나열해 보면 이해하기가 쉬울 것이다. 10진수 2진수 그레이코드 1 00001 00001 2 00010 00011 3 00011 00010 4 00100 00110 5 00101 00111 6 00110 00101 7 00111 00100 8 01000 01100 9 01001 01101 그레이코드의 특징이 보이는가? 2진수와 달리 그레이 코드는 신기하게도 앞의 수와 뒤의 수가 딱 1비트씩 밖에 차이가 안난다. 2진수는 숫자가 커지면 1이 증가함에도 여러개의 비트가 동시가 바뀌어야 하는데 그레이코드는 순차적인 진행이라면 항상 한 비트씩만 바꾸면 되는 것이다. 이런식의 특징은 순차적으.. 2015. 10. 17.
간트 차트(Gantt Chart)와 PERT/CPM 간트차트와 PERT/CRM은 모두 프로젝트의 진척을 관리하는데 도움을 주는 도식화 방법이다. GANTT CHART 간트 차트는 위와 같이 생겼다. 실제로 학교나 회사에서 프로젝트를 진행할때 계획서나 보고서 양식에서 많이 볼 수 있는 차트이다. 달리 설명이 필요 없을 정도로 간단한데 세로축에는 작업들을 나열하고 가로축엔 시간을 표시하여 칸들을 색칠해 주면 된다. 시간선(Time-Line)이라고 쓰기도 하며 일정을 계획하거나 일정이 어떻게 진행되고 있는지 파악하는 용도로 사용할 수 있다. 위 그림은 간단한 모형이지만 부가적인 정보들을 덧붙여 문제 관리 및 예산, 지출관리를 하는데 까지 활용할수도 있다. PERT/CPM 원래 PERT는 미해군이 무기 시스템 개발 프로젝트 진행을 관리하기 위해 만들었고 CPM은.. 2015. 10. 17.
[시험대비] 실무적으로 보는 데이터베이스 설계 순서 데이터베이스의 설계 단계는 아래와 같다 요구 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현 대부분은 이 단계가 구체적으로 뭘 하는 단계인지 모르고 단순암기 하는 경우가 많다. 학교나 회사에서 실제로 여러번 데이터 베이스 설계를 해봤음에도 개념 스키마 설계, 트랜젝션 모델링, 물리적 구조로 변환 등의 용어가 너무 와닿지 않기 때문이다. 이론적으로 먼저 알아보자요구분석 : 요구조건 명세서 작성개념석 설계 : 개념 스키마, 트렌젝션 모델링, E-R 모델 작성논리적 설계 : 스키마 설계, 트렌젝션 인터페이스 설계, 논리적 자료 구조로 변환물리적 설계 : 논리적으로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 구조의 데이터로 변환 무슨 말인지 알아듣기 힘들다. 좀 더 실무적으로 이해해.. 2015. 10. 17.
[시험대비] 데이터베이스 모델의 종류와 특징을 쉽게 이해하자! 데이터 베이스 모델은 크게 관계형 데이터 모델, 계층형 데이터 모델, 네트워크형 데이터 모델이 있다. 하지만 중요한건 실제 사용하는 대부분의 DBMS는 관계형 데이터베이스 모델을 따르고 있다는 것이다. 계층형, 네트워크형은 어떤 개념인지만 어렴풋이 이해하고 있으면 된다. 계층형 데이터 모델 - 트리 형태의 수직적인 데이터 모델이다. - 1:N의 대응 관계만 존재한다. - 상위 레코드 삭제시 연쇄 삭제(Triggered Delete)가 일어난다. - 개체들 간에는 Cycle이 허용되지 않는다. - 관계형 모델에서의 Entity를 계층형에선 Segment라 부른다. - 파일 시스템을 생각하면 이해하기 쉽다. 폴더 안에 하위 폴더 안에 파일이 있는 그런 형태이다. 여러 하위 폴더가 한 상위폴더에 있을 수는 있.. 2015. 10. 17.
SQL에서 DDL, DML, DCL, TCL의 구분 데이터베이스 언어는 보통 DDL, DML, DCL로 나뉜다. 트랜젝션 제어를 위한 별도의 명령을 TCL로 구분하여 4개로 분류하기도 한다. 이 언어들은 의미를 외우기보단 단어의 뜻을 알고 어떤 명령어가 있는지 보는게 이해하기 쉽다. DDL : Data Definition Language데이터 정의 언어이다. DB를 구성할때 쓰인다.CREATE, ALTER, DROP, RENAME, TURNCATE 등 DML : Date Manipulation Language데이터 조작 언어이다. 데이터를 실질적으로 사용할때 쓰인다. 사용자와 데이터베이스간의 인터페이스를 제공해 준다.SLEECT, UPDATE, INSERT, DELETE 등 DCL : Data Control Language데이터 제어 언어이다. 제약조건,.. 2015. 10. 16.
[시험대비] 외부 스키마, 개념 스키마, 내부 스키마를 구분하자! 굳이 이런 개념으로 나눠 둔 이유는 잘 모르겠지만, 배우는 입장인 우리는 이 의미를 명확히 구분할 수 있어야 한다. 외부 스키마(External Schema, Sub Schema) 응용프로그램 개발자의 관점에서 보는 스키마. 정확한 표현은 아니지만 쉽게 View라고 생각하면 된다. 겉으로 보이는 DB, Table의 형태인 것이다. 사용 주체나 응용 프로그램에 따라서 같은 데이터가 같은 구조로 저장되어 있는 데이터베이스에서 바라보는 관점이 다를 수도 있다. 누군가는 SELECT * FROM table에서 특정 테이블의 모든 에트리뷰트와 데이터들을 바라보고 누군가는 JOIN이나 MERGE를 통해 여러 테이블을 동시에 조회 할 수도 있다. 그들이 바라보고 있는, 우리가 DBMS 툴에서 SELECT 쿼리를 던졌.. 2015. 10. 16.
[시험대비] 데이터베이스 필수 암기 사항 가급적 영어로 외워두자! 번역된 용어는 시험마다 해석이 달라서 햇갈릴 수 있다. 데이터베이스의 정의 Integrated data : 데이터의 통합된 모임 Stored data : 저장 매체에 저장된 정보자료 Operational data : 응용해서 활용가능한 데이터 Shared data : 여러 주체들이 함깨 사용가능한 데이터 데이터베이스의 특징 Real Time Accessibility : 실시간으로 데이터의 변경사항을 확인하고 불러올수 있음 Continuous Evolution : 지속적인 삽입, 갱신, 삭제가 가능함 Concurrent Sharing : 여러 사용자가 동시에 데이터를 이용할 수 있음 Content Reference : 데이터 내용으로써 데이터를 찾을 수 있음 기존 파일 처리방식의 .. 2015. 10. 16.
변경관리, 버전관리 형상관리의 차이 변경관리, 버전관리, 형상관리. 표면적인 의미로 보면 거의 비슷하다. 하지만 이들은 제어 및 지원 범위에서 차이가 있다. 변경관리(Version Management)말그대로 소스의 변경 상황을 관리한다. 문서의 변경 이력과 복원등의 기능이 제공된다. 버전관리(Version Management)변경을 관리하기 위한 효과적인 방법이 버전으로 관리하는 것이다. 단순히 이 프로그램이 언제 어떻게 변경되었다를 넘어서 사소한 체크인, 체크아웃부터 릴리즈, 퍼블리싱의 과정을 버전으로 관리할수 있도록 한다. 체크아웃 -> 수정 -> 체크인 = 0.0.1 -> 0.0.2빌드 -> 0.0.14 -> 0.1.0퍼플리시 -> 0.4.0 -> 1.0.0 와 같은 식으로 체계적인 변화 과정을 기록이 지원된다. 형상관리(Confi.. 2015. 10. 16.
정보보호 시스템의 평가 기준 TCSEC과 ITSEC TCSEC : Trusted Computer Security Evalution CriteriaITSEC : Information Technology Security Evaluation Criteria TCSEC은 미국 국방부에서 1985년에 발표한 정보보호 시스템 평가 기준이다. A1부터 D까지 7등급으로 나뉜다. 표지가 오렌지 색이라 일명 오렌지북이라고 많이 불린다. ITSEC은 유럽에서 1991년에 발표한 정보보호 시스템 평가 기준으로, TCSEC이 기밀성만을 중심으로 평가 한다면 ITSEC은 거기에다 무결성과 가용성이라는 기준을 추가한 성격이다. 기밀성 : 데이터가 노출되지 않음무결성 : 데이터가 변질되지 않음가용성 : 이용이 편하고 활용도가 높음 즉, 노출되지만 않는 것에 집중을 할 경우 내용이 .. 2015. 10. 15.
CC인증이란? 한 나라에서 평가 받은 제품을 다른 나라에서 사용/판매하기 위해선 그 나라의 기준에 따라 재평가받고 수정되어야 하는 문제가 있다. 이러한 소모를 줄이기 위해 탄생한 국제 공통 기준이 CC이다. 현재 ISO 국제 표준으로 제정되었으며, 크게 3가지의 부분으로 구정되어 있다. 1. 일반적인 소개와 일반 모델2. 보안 기능 요구사항3. 보증 요구사항 국내에서는 최근 인증기관이 국정원에서 미래창조과학부로 이관되었으며 국내용 CC와 국제용 CC 두 가지로 나뉜다. 하지만 인증 절차의 비용과 시간에 따른 제약으로 대부분의 업체에서 국내용 CC인증만 받고 있어 이를 일원화 해야 한다는 주장이 있다. 또한 국가기관에 납품하는 제품은 CC인증과 더불어 국정원의 소스검사까지 한번 더 받도록 되어 있어 외산제품에 대한 지나.. 2015. 10. 15.
정보보호 정책의 유형과 조건 정책의 유형1. 상향식 정책(Bottom Up) 정책 - 기존의 운영 정책들을 종합하여 기업 차원의 정책을 정한다. - 정책간의 불일치와 모순이 발생할 여지가 있다. 2. 하향식 정책(Top Down) 정책 - 기업 차원의 정책을 정하고 하위 수준의 정책들을 도출한다. - 전사적으로 일관성을 유지할 수 있다. 정책의 조건 - 간결하고 명확하여야 한다. - 정보 보호에 대한 목표와 방침이 포함되어 있어야 한다. - 정책의 내용을 쉽게 이해할 수 있도록 표현하여야 한다. - 정보 이용자들에게 정책에 대한 충분한 설명과 교육이 동반되어야 한다. 2015. 10. 15.
node js에서 mysql 함수를 동기(sync)로 사용하기 node js의 함수는 기본적으로 async하게 동작한다. 즉 순서대로 실행되길 바라는 함수를 순서대로 나열해 놨다고 해서 이게 순서대로 실행되는게 아니라는 것이다. 아래 코드를 보자 user_no = preFunction(param); afterFunction(user_no); function preFunction(param) { insertQueryExcute(query, function(error, result) { if(error) doSometing; else return result.insertId; } 위 코드를 프로그래밍한 개발자라면 preFunction이라는 함수를 통해서 반환된 insertId를 afterFunction에서 사용하고 싶었을 것이다. 하지만 위와 같은 코드를 실행시키면 a.. 2015. 10. 4.
리눅스 $PATH 추가 설정 많은 프로그램들이 설치만 하면 명령어처럼 바로 실행 가능하나 어떤 프로그램들은 자기들 폴더에 설치만 되고 매번 실행하려면 그 폴더에 찾아 들어가서 실행을 해야 한다. 자주 쓰는 프로그램일 경우 일일히 경로를 입력해 가며 사용하기가 쉽지 않다. 그럴때 PATH를 지정해 주면 명령어처럼 편하게 실행 가능하다. vi ~/.bash_profile 위 명령어를 통해 PATH를 설정할 수 있다. PATH=$PATH:$HOME/bin 위와 같은 라인을 찾아간다. 지금은 $HOME/bin만 PATH로 설정 되어 있는 상태다. 즉 해당 계정의 home/bin폴더에 있는 프로그램들만 별도의 경로 입력 없이 명령어 처럼 사용가능하게 되어 있다는 것이다. 다른 폴더를 추가하려면 아래와 같이 하면 된다. PATH=$PATH:$.. 2015. 10. 1.
MySQL 여러개의 필드를 묶어서 하나의 Primary Key로 만들기 ALTER TABLE table ADD PRIMARY KEY(field1,field2,field3); 만약 이미 키가 지정되어 있는 경우 아래와 같이 한다. ALTER TABLE table DROP PRIMARY KEY, ADD PRIMARY KEY(field1,field2,field3); 2015. 7. 19.
주간, 월간, 실시간 랭킹 구현하기 쉽게 생각하면 랭킹 구현은 어렵지 않다. 그냥 ORDER BY로 줄을 세워주면 그게 랭킹이다. 순위의 기준이 되는 값은 계속 쌓이고 그에 따라 랭킹을 출력해 주는 이런 랭킹을 '누적랭킹' 이라고 할수 있다. 하지만 이런 누적랭킹은 많이 사용되지 않는다. 많이 사용되는 랭킹은 기간별 랭킹과 실시간 랭킹이다. 1. 기간별 랭킹기간별 랭킹은 월간, 주간과 같이 특정 기간동안의 랭킹을 구현하는 것이다. 이 또한 쉽게 생각하자면 아주 쉽다. int key date ref_monthint score 위와 같은 구조의 테이블만 있으면 된다. 예를 들어 어떤 음악이 재생되고 다운받아 지는 횟수에 따라 월간 랭킹을 구현하고 싶다고 가정해 보자. key는 해당 곡의 key값이 된다. foreign key가 될 것이다. *.. 2015. 7. 19.
[Codeigniter] 액티브 쿼리에 mysql 함수 쓰기 (password등) $this->db->set('login', $this->input->post('login', TRUE)); $this->db->set('password', 'PASSWORD("'.$this->input->post('password', TRUE).'")', FALSE); $this->db->set('email', $this->input->post('email', TRUE)); return $this->db->insert('account'); 2015. 6. 27.
반응형