102. GoF의 디자인 패턴
- 소프트웨어 설계에 있어 공통된 문제들에 대한 표준적인 해법과 작명법을 제안한 책
- 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재, 이를 처리하는 해결책 사이에서도 공통점이 있는데 이러한 유사점을 패턴이라 함
- 패턴의 역할 : 공통의 언어 생성, 팀원 사이의 의사소통 원활
- 패턴의 종류
- 생성 패턴
- Factory method
- 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브 클래스가 내리도록 함
- 다른 이름 : Virtual Constructor
- Singleton
- 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점 제공
- Abstract factory
- 상세화된 서브 클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공
- 다른 이름 : 키트 (Kit)
- Builder
- 인스턴스를 생성자를 통해 직접 생성하지 않고, 빌더라는 내부 클래스를 통해 간접적으로 생성
- Prototype
- 원본을 만들어놓고 원본 객체를 복사하여 사용
- Factory method
- 구조 패턴
- Adapter
- 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응 (변환)
- 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작
- 다른 이름 : 래퍼 (Wrapper)
- Bridge
- 구현에서 추상을 분리하여 각자 독립적으로 다양성을 가질 수 있도록 함
- 다른 이름 : 핸들 / 구현부 (Handle / Body)
- Composite
- 부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리 구조로 구성
- 사용자가 개별 객체와 복합 객체를 모두 동일하게 다룰 수 있도록 하는 패턴
- Decorator
- 객체에 동적으로 새로운 책임을 추가할 수 있게 함
- 기능을 추가하려면, 서브 클래스를 생성하는 것보다 융통성 있는 방법을 제공
- Facade
- 서브 시스템에 있는 인터페이스 집합에 통합된 하나의 인터페이스를 제공 (의사소통 및 종속성 최소화 목표)
- 서브 시스템을 좀 더 쉽게 사용하기 위해 상위수준 인터페이스 정의
- Flyweight
- 객체의 내부에서 참조하는 객체를 직접 만드는 것이 아니라, 없다면 만들고, 만들어져 있다면 객체를 공유하는 식으로 객체를 구성하는 방법
- Proxy
- 실제 기능을 수행하는 객체 대신 가상의 객체를 사용해 로직의 흐름을 제어
- 다른 이름 : 대리자
- Adapter
- 행위 패턴
- Template method
- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 명세를 변경
- Interpreter
- 주어진 언어에 대해서 문법을 위한 표현 수단을 정의하고, 해당 언어로 된 문장을 해석하는 해석기를 사용하는 패턴
- Interator
- 내부 표현부를 노출하지 않고 어떤 객체 집합의 원소들을 순차적으로 접근하는 방법을 제공하는 패턴
- 다른 이름 : 커서
- Command
- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스 설계 패턴
- 다른 이름 : 작동, 트랜잭션
- Chain of Responsibility
- 요청을 처리하는 기회를 하나 이상의 객체에 부여하여 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴
- 요청을 받는 객체를 연쇄적으로 묶고 객체를 처리할 수 있을 때까지 요청을 전달
- State
- 객체의 내부 상태에 따라 객체의 행위 내용을 변경
- 다른 이름 : 상태 표현 객체
- Strategy
- 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해줌
- 다른 이름 : 정책
- Mediator
- 한 집합에 속해 있는 객체들의 상호작용을 캡슐화하는 객체를 정의하는 패턴
- 중개자는 객체들이 직접 서로 참조하지 않도록 함으로써 객체 간의 느슨한 연결을 촉진하며 객체들의 상호작용을 독립적으로 다양화시킬 수 있도록 해줌
- Memento
- 객체의 상태 정보를 저장, 사용자의 필요에 따라 원하는 시점의 데이터를 복원할 수 있는 패턴
- 다른 이름 : 토큰
- Visitor
- 객체 구조를 이루는 원소에 대해 수행할 연산을 표현
- 방문자는 연산에 적용할 원소의 클래스를 변경하지 않고 새로운 연산을 재정의할 수 있음
- Observer
- 한 객체의 상태 변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성
- 다른 이름 : 종속자, 게시-구독
- Template method
- 생성 패턴
103. 럼바우의 객체 지향 분석 방법
- 가장 일반적으로 사용되는 방법
- 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행하는 방법
- 모든 소프트웨어 구성 요소를 그래픽 표기법을 활용하여 모델링하는 기법
- 객체지향 분석의 순서 : 객체 모델링 → 동적 모델링 → 기능 모델링
- 객체 모델링
- 객체 다이어그램 이용
- 정보 모델링
- 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정
- 가장 중요하며 가장 선행되는 단계
- 동적 모델링
- 상태도를 이용
- 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현
- 기능 모델링
- 자료 흐름도 (DFD) 를 이용
- 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현
- 어떤 데이터를 입력하면 어떤 결과를 구할 것인지 표현
- 객체 모델링
106. 시퀀스 다이어그램
- 문제해결을 위한 객체를 정의하고 객체 간 상호작용 메시지를 흐름으로 나타냄
- 구성 요소 : 생셩선, 활성객체, 메시지, 활성박스
- 가장 기본적인 메시지 유형
- 동기 : 요청 후 응답 대기
- 비동기 : 요청만 표시
- 자체 : 객체 자신에 요청
- 반환 : 응답(회신) 메시지
- UML 다이어그램에서 확장이 사용되는 다이어그램 : 유스케이스 다이어그램
- 확장 관계 (Extend) : 하나의 유스케이스로부터 다른 유스케이스로 기능이 확장될 수 있다는 의미
- 포함 관계 (Include) : 하나의 유스케이스가 다른 유스케이스를 항상 포함한다는 의미
108. GoF의 디자인 패턴
목적 | 생성 패턴 (Creation Pattern) | 구조 패턴 (Structural Pattern) | 행위 패턴 (Behavioral Pattern) | |
의미 | 객체의 생성 방식을 결정하는 패턴 | 객체를 조직화하는데 유용한 패턴 | 객체의 행위를 조직, 관리, 연합하는데 사용하는 패턴 | |
범위 | 클래스 | Factory method | Adapter | Template method, Interpreter |
객체 | Singleton Abstract factory Builder Prototype |
Bridge Composite Decorator Facade Fly weight Proxy |
Iterator Command Chain of Responsibility State Strategy Mediator Memento Visitor Observer |
113. 객체지향 기법
- 객체지향 기법의 구성 요소
- 클래스
- 공통된 속성과 연산을 갖는 객체의 집합으로 객체의 일반적인 타입을 의미
- 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀
- 클래스에 속한 각각의 객체를 인스턴스라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화라고 함
- 동일 클래스에 속한 각각의 객체 (인스턴스)들은 공통된 속성과 행위를 가지고 있으면서, 그 속성에 대한 정보가 서로 달라서 동일 기능을 하는 여러 가지 객체를 나타내게 됨
- 최상위 클래스는 상위 클래스를 갖지 않는 유일한 클래스를 의미
- 슈퍼 클래스는 특정 클래스의 상위 (부모) 클래스이고, 서브 클래스는 특정 클래스의 하위 (자식) 클래스를 의미
- 객체
- 데이터와 데이터를 처리하는 함수를 묶어놓은 캡슐화한 하나의 소프트웨어 모듈
- 데이터
- 객체가 가지고 있는 정보로 속성이나 상태, 분류 등을 나타냄
- 속성, 상태, 변수, 상수, 자료 구조
- 함수
- 객체가 수행하는 기능
- 객체가 갖는 데이터를 처리하는 알고리즘
- 객체의 상태를 참조하거나 변경하는 수단이 되는 것을 메소드, 서비스, 동작, 연산이라고도 함
- 기존의 구조적 기법에서의 함수, 프로시저에 해당하는 연산 기능
- 데이터
- 상태와 행위를 가지고 있음
- 다른 객체들과 구별될 수 있는 이름을 갖고 있으며, 일정한 기억 장소를 가지고 있음
- 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 수행
- 데이터와 데이터를 처리하는 함수를 묶어놓은 캡슐화한 하나의 소프트웨어 모듈
- 메시지
- 객체들 간에 상호작용을 하는데 사용되는 수단
- 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항
- 메시지의 구성 요소 : 메시지를 받는 객체의 이름, 객체가 수행할 메소드 이름, 메소드를 수행할 때 필요한 인자 (속성값)
- 인자는 옵션, 즉 필요할 때만 사용
- 메시지를 받은 수신 객체는 요구된 메소드를 수행하여 결과를 반환하게 됨
- 클래스
- 객체지향 기법의 특징
- 구조적 기법의 문제점으로 인한 소프트웨어 위기 해결책으로 채택되어 사용
- 소프트웨어의 재사용 및 확장을 용이하게 하여 고품질의 소프트웨어를 빠르게 개발할 수 있으며 유지보수가 쉬움
- 복잡한 구조를 단계적, 계층적으로 표현하고 멀티미디어 데이터 및 병렬 처리를 지원
- 현실 세계를 모형화하여 사용자와 개발자가 쉽게 이해 가능
- 객체 지향 기법의 구성 요소 : 객체, 클래스, 메시지
117. 객체지향 설계 원칙
- 리스코프 교체의 원칙 (LSP)
- 부모 클래스와 자식 클래스 사이의 행위가 일관성이 있어야 함
- 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 대체해도 프로그램의 의미는 변화되지 않음
- 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙
- 단일 책임 원칙 (SRP)
- 클래스의 메서드가 해야 하는 것, 할 수 있는 것, 해야 하는 것을 잘할 수 있는 것으로 여러 개의 작업을 많이 할당하지 많아야 한다는 원칙
- 객체는 주어진 작업을 다른 객체가 아닌 자신만이 수행할 수 있어야 함
- 해당 원칙을 준수하게 되면 응집도는 높아지고, 결합도는 낮아짐
- 의존 역전 원칙 (DIP)
- 의존 관계를 맺을 때, 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하게 함
- 자주 변경하는 구체 클래스 대신 인터페이스나 추상 클래스에 의존하도록 함
- 인터페이스 분리 원칙 (ISP)
- 인터페이스를 클라이언트에 특화도되록 분리시키고 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 됨
119. CASE
- CASE의 개념
- 계획수립에서부터 요구분석, 설계, 개발, 유지보수에 이르는 소프트웨어 생명주기 전 과정을 자동화할 수 있도록 지원하는 자동화 도구
- 1970년대부터 현재까지 지속적으로 발전하고 있음
- 등장 배경
- 소프트웨어 산업 측면 : 소프트웨어 위기 극복 방안으로 등장
- 정보시스템 관리 측면 : 요구사항의 관리 효과 극대화, 재사용성 및 생산성 확대를 위해 등장
- CASE 도구의 분류
- Upper CASE : 계획수립, 요구분석, 기본설계 단계를 지원하고 이를 다이어그램으로 표현
- Middle CASE : 상세설계 작업을 지원, 화면, 출력 등의 작성을 지원
- Lower CASE : 시험, 유지보수 작업 지원, 소스코드와 시스템 명세서를 획득
- I- CASE : 위 세 가지를 통합한 것, Rational ROSE, COOL 등이 국내에서 사용 중
- CASE 도구의 구성
- Diagram 작성 도구 : 소프트웨어 명세서 정의, 설계 결과의 표현
- 설게 분석기 : 설계 명세서의 정확성, 일치성, 모호성에 대한 검사
- 코드 생성기 : 명세서로부터 프로그래밍 언어로 된 모듈의 코드 생성
- Repository : CASE 도구의 중심, SDLC 동안 정보를 저장
- 프로젝트 관리 지원 도구
- 재공학 도구 : 기존 시스템의 설계 명세서 작성 지원
- Prototyping 도구 : 초기 UI 작성 지원
120. 인터페이스 요구사항 검토 방법
- 동료검토 : 프로젝트 수행 과정에서 각 단계별 산출물과 제품에 대해 동료들이 상호 교차하여 검토를 수행하는 활동
- 절차
- 계획 : 관련 자료 수집, 구성원 역할 배정
- 사전 준비 : 검토 항목, 범위 설정, 검토 설명
- 개별 검토 : 개별적 산출물 검토 진행
- 검토 회의 : 산출물 오류, 결함, 조치 사항 회의
- 재작업 : 오류, 결함 사항 분석, 조치
- 후속 조치 : 저자가 작성 내용 반영 여부 판별
- 구성요소
- 관찰 대상 범위 : SDLC 단계 별 산출물 범위 확인
- 참여자 구성원 : 중재자, 검토자, 저자, 기록자 등
- 체크리스트 : 산출물의 추적도, 설계 구현 내용
- 절차
- 인스펙션 : 프로그램을 실행하지 않고 개발 단계에서 산출되는 결과물을 공식적 자리에서 검토 및 결함을 발견하는 기법, 수행절차가 동료검토와 동일, 공식적인 자리에서 결함 보고 및 후속 조치를 함
- 이해관계자 : 개발된 시스템 사용을 위한 담당자 참여
- 중재자 : 계획 작성, 모임 개체, 주행 절차 중재
- 독자 : 산출물 확인, 결함 도출 전문가 집단
- 기록자 : 공식적인 결함 문서화, 다수 중재자 겸임
122. 네트워크 영역에 적용되는 보안 프로토콜
- IPSec
- 통신 세션의 각 IP 패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜 스위트
- 통신 세션의 개별 IP 패킷을 인증하고 암호화함으로써 처리
- SSL
- 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
- 인터넷 같이 TCP / IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송 계층 종단간 보안과 데이터 무결성을 확보해줌
- 3.0 버전부터 TLS로 표준화
- S-HTTP
- 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나
123. 제품 소프트웨어의 형상관리
- 형상관리의 개념
- 소프트웨어 형상 관리는 소프트웨어 개발 과정에서 발생하는 변경을 관리하는 활동
- 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보장하는 것을 목적으로 함
- 형상 관리 대상
- 소스 코드와 실행 파일 (바이너리 파일), 그리고 각종 설계 문서
- 각종 프로그램 개발과 관련된 회의록 등의 문서화된 자료
- CCB : 형상 관리를 위하여 구성된 팀
126. McCabe의 cyclomatic
- 프로그램의 복잡도를 나타내는데 사용되는 척도
- 회전 복잡도, 순환 복잡도 등
- 회전 복잡도 계산 방법
- Edge 수 - Node 수 + 2P
- P는 단일 프로그램일 때 항상 1
- 분기수 + 1
- 그래프를 그리기 힘들어 프로그램 상에서 파악할 때 사용
- 폐구간 수 + 1
- 폐구간 : Edge로 사방이 막힌 영역
- Edge 수 - Node 수 + 2P
131. DRM 기술
- 암호화 (Encryption)
- 컨텐츠 및 라이선스를 암호화, 전자 서명을 하는 기술
- PKI, Symmetric / Asymmetric Encryption, Digital Signature
- 키 관리 (Key Management)
- 컨텐츠를 암호화한 키에 대한 저장 및 배포 기술
- Centralized, Enveloping
- 암호화 파일 생성 (Packager)
- 컨텐츠를 암호화된 컨텐츠로 생성하기 위한 기술
- Pre-packaging, On-thefly Packaging
- 식별 기술 (Idendification)
- 컨텐츠에 대한 식별 체계 표현 기술
- DOI, URI
- 저작권 표현 (Right Expression)
- 라이선스의 내용 표현 기술
- XrML/MPEG-21 REL, ODRL
- 정책 관리 (Policy management)
- 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
- XML, Contents Management System
- 크랙 방지 (Tamper Resistance)
- 크랙에 의한 컨텐츠 사용 방지 기술
- Code Obfuscation, Kernel Debugger Detection, Module Certification
- Secure DB, Secure Time Management, Encryption
- 인증 (Authentication)
- 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
133. 소프트웨어 품질 목표 - ISO/IEC 9126 품질 특성
- 기능성
- 명시된 요구와 내재된 요구를 만족하는 기능을 제공하는 소프트웨어 제품 능력
- 적절성, 정호가성, 상호운용성, 보안성, 준수성
- 신뢰성
- 규정된 조건에 사용될 때 규정된 성능 수준을 유지할 수 있는 능력
- 사용자가 오류를 방지할 수 있도록 하는 sW 제품의 능력
- 성숙성, 결함수용성, 복구용이성, 준수성
- 사용성
- 사용자에 의해 쉽게 이해되고 학습되며 선호할 수 있게 하는 SW 제품의 능력
- 이해용이성, 학습성, 운영성, 기호성, 준수성
- 효율성
- 투입된 자원에 대하여 제공되는 성능의 정도
- 요구되는 기능을 수행하기 위해 필요한 지원의 소요 정도
- 시간 효율성, 자원 효율성, 준수성
- 유지보수성
- 운영 환경과 요구 사항 및 기능적 사양에 따른 SW의 수정, 개선 등 변경될 수 있는 능력
- 분석성, 변경성, 안전성, 시험성, 준수성
- 이식성
- SW가 다른 HW, SW 등의 환경으로 옮겨질 수 있는 능력
- 다른 환경으로 이전되는 SW 능력의 정도
- 환경적응성, 설치용이성, 치환성, 상호공존성, 준수성
140. 알고리즘 설계 기법의 유형
- 분할 정복 (Divide and Conquer) : 문제를 쪼개서 각각 해결
- 나폴레옹이 오스트리아 러시아 동맹군을 반으로 분리시켜 각각 정복한 전술
- 복잡한 문제를 분할하여 각각 해결, 이를 결합하여 문제를 해결하는 Top-Down 기법
- 분할 정복의 절차
- 분할 (Divide) : 문제를 분할이 가능한 부분까지 분할
- 정복 (Conquer) : 분할된 문제를 각각 해결 (정복)
- 결합 (Combine) : 정복된 문제를 모두 취합 (결합)
- 관련 알고리즘 : 퀵 정렬, 병합 정렬
- 동적 계획법 (Dynamic Programming) : 작은 문제들을 이용해 큰 문제 해결
- 어려운 문제를 여러 개의 하위 문제로 쪼갠 후, 하위 문제들을 먼저 해결(점화식)하고, 풀린 작은 문제들을 이용해서 더 큰 문제들을 풀어나가는 Bottom-Up 방식
- 분할 정복과 다른 점은 작게 나눈 문제가 반복적으로 일어난다는 점
- 메모이제이션이라는 개념을 사용하여 이미 해결된 값을 저장하여 재사용하기도 함
- 관련 알고리즘 : A* 알고리즘, 피보나치 수열 (효율적)
- 탐욕법 (Greedy Algorithm) : 매 단계 최선의 선택, 최적해 보장 못함
- 매 단계에서 최적의 선택을 함으로써, 최종적으로도 최적의 선택을 할 수 있게 하는 알고리즘 설계 기법
- 각 단계의 최선의 값을 택하기 때문에 전체적 관점에서는 최적해를 보장하지 못함
- 관련 알고리즘 : 거스름돈 문제, 최소 신장 트리, 다익스트라, 크루스컬, 허프만 코딩 등
- 백트랭킹 (Backtracking) : 모든 경로 탐색, 막히면 돌아가서 다시 탐
- 가능한 모든 경로를 탐색하는 방식
- 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법
- 최적화 문제와 결정 문제를 푸는 방법
- 관련 알고리즘 : DFS(깊이 우선 탐색)
142. 정규화
- 제1정규형 (1NF) : 릴레이션 R의 모든 속성 값이 원자값을 가지는 릴레이션
- 제2정규형 (2NF) : 릴레이션 R이 제1정규형이고 기본 키가 아닌 속성이 기본 키에 완전 함수 종속일 때
- 제3정규형 (3NF) : 릴레이션 R이 제2정규형이고 기본 키가 아닌 속성이 기본 키에 비이행적 non-transitive으로 종속할 때 (직접 종속)
- 보이스/코드 정규형 (BCNF) : 릴레이션 R에서 함수 종속성 X →Y가 성립할 때 모든 결정자 X가 후보키 일 때
- 제4정규형 (4NF) : 릴레이션 R에서 MVD A → B가 존재할 때 R의 모든 애트리뷰트들이 A에 함수종속(FD)이면 R은 4NF(즉 R의 모든 애트리뷰트 X에 대해 A→X 이고 A가 후보키)
- 제정규형 (5NF) : 릴레이션 R에 존재하는 모든 조인 종속이 R의 후보키를 통해 성립되면, R은 5NF
144. 이상 현상
- 정규화를 거치지 않으면 데이터베이스의 데이터들이 불필요하게 중복되어 릴레이션 조작 시 문제가 발생하는 것
- 이상현상의 종류
- 삽입 이상 : 불필요한 데이터를 함께 삽입하지 않으면 데이터를 삽입하는 것이 불가능
- 수정(갱신) 이상 : 중복된 데이터 가운데 일부만 수정되어 데이터의 불일치가 발생
- 삭제 이상 : 어떤 데이터를 삭제하면 유용한 데이터도 함께 삭제가 됨
145. 관계 데이터 모델
- 데이터베이스의 테이블(릴레이션)들의 집합(모임)으로 표현
- 테이블 : 튜플 (행, 레코드) 들의 집합으로 표현
- 튜플 : 어트리뷰트 (컬럼, 필드, 혹은 속성)들로 구성
- 관계 데이터 모델 용어
- 속성 (Attributes)
- 개체의 성질, 분류, 식별, 수량, 상태 등을 나타내는 세부 정보의 관리 요소로서 개체를 구성하는 항목
- 튜플 (Tuple)
- 릴레이션의 행을 구성하는 속성 값들의 집합
- 행, 레코드와 같은 개념
- 차수 (Degree)
- 속성들의 수
- 카디널리티 (Cardinality)
- 튜플들의 수
- 도메인 (Domain)
- 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합
- 표현되는 속성 값의 범위
- 릴레이션 인스턴스 (Relation Instance)
- 릴레이션의 어느 시점에 들어 있는 튜플들의 집합 (동적인 성질)
- 튜플들의 집합으로 현재 들어가 있는 실제 데이터를 지칭
- 속성 (Attributes)
146. BETWEEN ~ AND
- 수치 데이터 또는 날짜 데이터에 대해 범위를 검색하고자 할 때 사용하는 명령어
148. 무결성의 종류
- 개체(엔티티) 무결성 (Entity Integrity)
- 기본키는 반드시 값을 가짐 : NULL허용 안함
- 유일성을 보장하는 최소한의 집합
- 제약조건 : Primary Key, NOT NULL
- 참조 무결성 (Referential Integrity)
- 외래키 속성은 참조할 수 없는 값을 지닐 수 없음
- 그 외래키가 기본키로 사용된 릴레이션의 기본키 값이거나 NULL 값일 것
- 제약조건 : Foreign Key
- 속성 무결성 (Attribute Integrity)
- 컬럼은 지정된 데이터 형식을 반드시 만족하는 값만 포함
- 제약 조건 : Character, Date, LONG, VARCHAR2, NUMBER
- 키 무결성 (Key Integrity)
- 한 릴레이션에 같은 키 값을 가진 튜플들은 허용 안 됨
- 제약 조건 : Primary Key, Unique Index
- 사용자 정의 무결성 (User Defined Integrity)
- 모든 데이터는 업무 규칙을 준수해야 함
- 제약 조건 : Trigger, User Define, Data Type, Check, DEFAULT Value
- 도메인 무결성 (Domain Integrity)
- 특정 속성값이 미리 정의된 도메인 범위에 속해야 함
- 제약 조건 : CHECK, DEFAULT
149. SQL 명령어의 종류
- 데이터 질의어 (DQL)
- 데이터베이스에 저장된 데이터를 검색하는데 사용하는 질의어
- 명령어 : SELECT
- 데이터 조작어 (DML)
- 데이터베이스에 저장된 데이터를 수정, 삭제, 추가하는 명령어
- 명령어 : INSERT, UPDATE, DELETE
- 데이터 정의어 (DDL)
- 데이터베이스 객체를 생성, 수정, 삭제하는 명령어
- 데이터베이스의 스키마를 정의, 스키마에 대한 명세는 시스템 카탈로그에 저장
- 명령어 : CREATE, ALTER, DROP
- 데이터 제어어 (DCL)
- 데이터베이스의 규정이나 기법을 정의하고 제어하는 언어
- 사용자 권한 부여 / 취소, 트랜잭션 제어
- 명령어 : GRANT, REVOKE, COMMIT, ROLLBACK
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 151 ~ 200 오답정리 (0) | 2025.04.02 |
---|---|
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 51 ~ 100 오답정리 (0) | 2025.03.31 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 1 ~ 50 오답정리 (1) | 2025.03.28 |
[정보처리기사 필기] 기출문제 - 951 ~ 1000. 오답노트 (0) | 2025.03.27 |
[정보처리기사 필기] 기출문제 - 901 ~ 950. 오답노트 (0) | 2025.03.26 |