결합도(Coupling)
  • 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다.
  • 다양한 결합으로 모듈을 구성할 수 있으나 결합도가 약할 수록 품질이 높고, 강할수록 품질이 낮다.
  • 결합도가 강하면 시스템 구현 및 유지보수 작업이 어렵다.
  • 결합도의 종류(약함에서 강함순)
    • 자료 결합도(Data Coupling) : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
    • 스탬프(검인) 결합도(Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 레코드 드으이 자료 구조가 전달될 때의 결합도
    • 제어 결합도(Control Coupling) : 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도
    • 외부 결합도(External Coupling) : 어떤 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 결합도
    • 공통(공유) 결합도(Common Coupling) : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
    • 내용 결합도(Content Coupling) : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도로 한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우에도 내용 결합도에 해당됨

'CS' 카테고리의 다른 글

사용자 인터페이스의 종류  (0) 2023.02.15
XP(eXtreme Programing)  (0) 2023.02.15
CRUD 분석  (0) 2023.02.15
시스템 카탈로그(System Catalog)  (0) 2023.02.15
물리적 설계(데이터 구조화)  (0) 2023.02.15
CRUD 분석
  • CRUD는 '생성(Create)', '읽기(Read)', '갱신(Update)', '삭제(Delete)'의 앞 글자만 모아서 만든 용어이며, CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것이다.
  • CRUD 분석으로 테이블에 발생되는 트랜잭션의 주기별 발생 횟수를 파악하고 연관된 테이블들을 분석하면 테이블에 저장되는 데이터의 양을 유추할 수 있다.
  • CRUD 분석을 통해 많은 트랜잭션이 몰리는 테이블을 파악할 수 있으므로 디스크 구성 시 유용한 자료로 활용할 수 있다.
  • CRUD 분석을 통해 외부 프로세스 트랜잭션의 부하가 집중되는 데이터베이스 채널을 파악하고 분산시킴으로써 연결 지연이나 타임아웃 오류를 방지할 수 있다.

'CS' 카테고리의 다른 글

XP(eXtreme Programing)  (0) 2023.02.15
결합도(Coupling)  (0) 2023.02.15
시스템 카탈로그(System Catalog)  (0) 2023.02.15
물리적 설계(데이터 구조화)  (0) 2023.02.15
논리적 설계(데이터 모델링)  (0) 2023.02.15
시스템 카탈로그(System Catalog)
  • 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
  • 시스템 카탈로그의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
  • 카탈로그들이 생성되면 데이터 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고도 한다.
  • 시스템 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 한다.
  • 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.
  • INSERT, DELETE, UPDATE문으로 카탈로그를 갱신하는 것은 허용되지 않는다.
  • 데이터베이스 시스템에 따라 상이한 구조를 갖는다.
  • 카탈로그는 DBMS가 스스로 생성하고 유지한다.

'CS' 카테고리의 다른 글

결합도(Coupling)  (0) 2023.02.15
CRUD 분석  (0) 2023.02.15
물리적 설계(데이터 구조화)  (0) 2023.02.15
논리적 설계(데이터 모델링)  (0) 2023.02.15
파티션의 종류  (0) 2023.02.15
물리적 설계(데이터 구조화)
  • 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
  • 물리적 설계 단계에서는 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.
  • 저장 레코드의 양식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사한다.
  • 물리적 설계시 고려할 사항
    • 트랜잭션 처리량
    • 응답 시간
    • 디스크 용량
    • 저장 공간의 효율화 등

'CS' 카테고리의 다른 글

CRUD 분석  (0) 2023.02.15
시스템 카탈로그(System Catalog)  (0) 2023.02.15
논리적 설계(데이터 모델링)  (0) 2023.02.15
파티션의 종류  (0) 2023.02.15
분산 데이터베이스(Distributed Database)  (0) 2023.02.15
논리적 설계(데이터 모델링)
  • 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정이다.
  • 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다.
  • 개념적 설계가 개념 스키마를 설계하는 단계라면 논리적 설계에서는 개념 스키마를 평가 및 정재하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다.
  • 트랜잭션의 인터페이스를 설계한다.
  • 관계형 데이터베이스라면 테이블을 설계하는 단계이다.

'CS' 카테고리의 다른 글

CRUD 분석  (0) 2023.02.15
시스템 카탈로그(System Catalog)  (0) 2023.02.15
물리적 설계(데이터 구조화)  (0) 2023.02.15
파티션의 종류  (0) 2023.02.15
분산 데이터베이스(Distributed Database)  (0) 2023.02.15
파티션의 종류
  • 범위 분할(Range Partitioning)
    • 지정한 열의 값을 기준으로 범위를 지정하여 분할한다.
  • 해시 분할(Hash Partitioning)
    • 해시 함수를 적용한 결과 값에 따라 데이터를 분할한다.
    • 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로, 데이터를 고르게 분산할 때 유용하다.
    • 특정 데이터가 어디에 있는지 판단할 수 없다.
    • 고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적이다.
  • 조합 분할(Composite Partitioning)
    • 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식이다.
    • 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용하다.
  • 목록 분할(List Partitioning)
    • 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할한다.
  • 라운드 로빈 분할(Round Robin Partitioning)
    • 레코드를 균일하게 분배하는 방식이다.
    • 각 레코드가 순차적으로 분배되며, 기본키가 필요없다.

'CS' 카테고리의 다른 글

CRUD 분석  (0) 2023.02.15
시스템 카탈로그(System Catalog)  (0) 2023.02.15
물리적 설계(데이터 구조화)  (0) 2023.02.15
논리적 설계(데이터 모델링)  (0) 2023.02.15
분산 데이터베이스(Distributed Database)  (0) 2023.02.15
분산 데이터베이스(Distributed Database)

논리적으로 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스이다.

  • 분산 데이터베이스의 목표
종류 설명
위치 투명성
(Location Transparency)
접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있음
중복 투명성
(Replication Transparency)
동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행함
병행 투명성
(Concurrency Transparency)
분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않음
장애 투명성
(Failure Transparency)
트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행됨
  • 분산 데이터베이스의 구성 요소
종류 설명
분산 처리기 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템을 말함
분산 데이터베이스 지리적으로 분산되어 있는 데이터베이스로 해당 지역의 특성에 맞게 데이터베이스가 구성됨
통신 네트워크 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크를 말함
  • 분산 데이터베이스의 장 ・ 단점
종류 설명
장점 - 지역 자치성이 높음
- 자료의 공유성이 향상됨
- 분산 제어가 가능함
- 시스템 성능이 향상됨
- 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음
- 효용성과 융통성이 높음
- 신뢰성 및 가용성이 높음
- 점진적 시스템 용량 확장이 용이함
단점 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크를 말함

'CS' 카테고리의 다른 글

CRUD 분석  (0) 2023.02.15
시스템 카탈로그(System Catalog)  (0) 2023.02.15
물리적 설계(데이터 구조화)  (0) 2023.02.15
논리적 설계(데이터 모델링)  (0) 2023.02.15
파티션의 종류  (0) 2023.02.15

DispatcherServlet

기본적으로 서블릿은 입력, 처리, 출력 순서로 되어있다.
공통적으로 처리해야할 입력부분을 제거해주는 것이 DispatcherServlet의 역할이다.
즉, DispatcherServlet은 전처리를 해주는 역할을 한다.
각 서블릿이나 컨트롤러가 처리해야하는 부분을 DispatcherServlet이 처리를 해주는 것이다.

'Java, Spring > 개념정리' 카테고리의 다른 글

스프링 프레임워크(Spring Framework)  (0) 2023.01.17
Spring JDBC 개요  (0) 2023.01.14
AOP(Aspect Oriented Programming)  (0) 2023.01.12
DI Container  (0) 2023.01.12
DI(Dependency Injection)  (0) 2023.01.12

+ Recent posts