전체가 정상적으로 완료되거나 전혀 실행되지 않아야 한다. 이는 데이터의 일관성과 무결성을 유지하기 위한 중요한 특성이다.
- 제 1 정규형 (1NF): 모든 속성이 원자값을 갖는 형태로 이미 주어진 테이블들은 이 단계를 충족하고 있다고 가정할 수 있습니다.
- 제 2 정규형 (2NF): 모든 비주키(주키가 아닌) 속성이 주키에 완전 함수적으로 종속되어야 합니다. 이 단계를 넘어서는 설명이 필요합니다.
- 제 3 정규형 (3NF): 2NF를 만족하면서, 모든 속성이 주키에 직접 종속되어야 하며, 이행적 종속성을 제거해야 합니다.
- 제 4 정규형 (4NF): 3NF를 만족하면서, 어떤 비주키 속성도 부분 함수적으로 종속되는 주키의 조합에 종속되지 않아야 합니다. 즉, 멀티비어드 종속성을 제거하는 단계입니다.
제 1 정규형 :도메인(두)이 원자값
제 2 정규형: 부분함수종속 제거
제 3 정규형: 이행적함수 종속 제거
BCNF: 모든 결(걸)정자가 후보키가 되도록 테이블 분해
제 4 정규형: 다치 종속 제거
제 5 정규형: 조인 종속 제거
내공외제스자 결합도
내용: 내부 동작 의존
공통: 공통된
전역 변수 의존
외부: 외부 / 다른 프로토콜 함께 의존
제어: 제어권 의존
스탬프: 데이터 구조 의존
자료: 파라미터 정도로만 의존
우논시절통순기 응집도
SELECT ....
FROM 학생정보 a
JOIN 학과정보 b
ON a.학과번호 = b.학과
XML + Language = WSDL
XML + Protocol = SOAP
XML + JAVAscript = AJAX
XML + 검색 = UDDI
XML + 대체 = JSON
단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수테스트
단위 테스트(Unit Test)
개별 코드 모듈이나 서브루틴이 독립적으로 올바르게 작동하는지를 검증하는 과정을 의미합니다.
개발자 수준에서 개별 모듈 수준의 기능을 확인하는 데 주로 사용됩니다.
통합 테스트(Intergration Test)
여러 모듈이나 시스템의 인터페이스가 함께 작동할 때 문제가 없는지 확인하는 과정입니다.
개별 컴포넌트가 통합된 후 전체 시스템의 상호 운용성을 평가하는 데 중점을 둡니다.
시스템 테스트 (System Test)
통합된 전체 시스템이 명세된 요구사항에 맞게 동작하는지를 검증하는 단계입니다.
- 사용자의 실제 사용 환경과 유사한 조건에서 테스트가 진행됩니다.
- 기능 테스트뿐 아니라 성능, 보안, 오류 처리 등 비기능적 요소까지 포함해 확인하죠.
인수 테스트 (Acceptance Test)
시스템이 고객의 요구사항을 만족하는지를 확인하는 최종 검증 단계입니다.
- 주로 실제 사용자나 고객이 테스트에 참여합니다.
- 제품을 “인수”할 수 있는지 결정짓는 중요한 기준이 되죠.
- 이 단계에서 문제가 없으면 제품을 배포하거나 현장에 적용할 수 있어요.
프로세스 간 통신(IPC)은 여러 프로세스가 정보를 교환하고 공유 자원을 효율적으로 관리하기 위한 기술 집합을 의미합니다. 주어진 옵션들인 공유메모리, 소켓, 세마포어, 메시지 큐는 모두 IPC의 다양한 방식입니다.
- 공유메모리: 여러 프로세스가 동일한 메모리 영역을 공유하여 데이터를 직접 교환합니다. 빠른 데이터 전송이 가능하지만 동기화 문제를 관리해야 합니다.
- 소켓: 네트워크를 통해 프로세스 간 통신을 가능하게 하는 인터페이스로, 로컬 시스템 내의 프로세스 간 통신뿐만 아니라 네트워크를 걸친 통신에도 사용됩니다.
- 세마포어: 공유 자원에 대한 접근을 제어하는 동기화 도구로, 프로세스 간 자원 경쟁을 방지하고 순서를 관리합니다.
- 메시지 큐: 프로세스가 메시지를 큐 형태로 주고받는 방법으로, 비동기적 통신을 지원하며 안정적인 데이터 전송을 보장합니다.
이들 기술들은 각기 다른 통신 요구사항과 환경에 맞춰 설계되어 프로세스 간 효율적이고 안전한 상호작용을 지원합니다. 따라서 이러한 기술들을 포괄하는 용어는 "프로세스 간 통신(IPC)"입니다.
개체 데이터 모델에서는 ( A ) 을/를 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내고
논리 데이터 모델에서는 ( B ) 을/를 어떻게 나타낼 것인지 표현한다.
( C ) 은/는 데이터 무결성 유지를 위한 데이터베이스의 보편적 방법으로
릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체무결성과 참조 무결성 등이 있다.
연산 / 구조 / 제약사항
■ 서버 접근통제 유형
임의적 접근통제 / 강제적 접근통제 / 역할 기반 접근통제
■ 임의적 접근 통제(DAC - Discretionary Access Control)
시스템 객체에 대한 접근을 사용자나 그룹의 신분을 기준으로 제한하는 방법
신분 - DAC
■ 강제적 접근 통제(MAC - Mandatory Access Control)
정해진 정책과 보안 등급에 따라 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제하는 모델
등급 - MAC
■ 역할기반 접근 통제(RBAC - Role Based Access Control)
DAC와 MAC의 단점을 보완한 방식으로 멀티 프로그래밍 환경에서의 보완 처리를 위해 제안되었으며 사용자에게 할당된 역할에 기반하여 접근을 통제하며 중앙에서 집중적으로 관리
class good:
li = ["seoul", "kyeonggi", "inchon", "daejeon", "daegu", "pusan"]
g = good()
str01 = ''
for i in g.li:
str01 = str01 + i[0]
print(str01)
이 코드는 다음과 같은 과정을 거칩니다:
- good라는 클래스를 정의하고, 그 안에 li라는 리스트를 포함시킵니다. 이 리스트에는 6개의 도시 이름 문자열이 들어 있습니다.
- g = good()을 통해 good 클래스의 인스턴스를 하나 만듭니다.
- str01이라는 빈 문자열을 하나 초기화합니다.
- for 반복문을 통해 리스트 g.li에 담긴 각 도시 이름을 하나씩 꺼냅니다.
- 각 도시 이름의 첫 글자만을 str01에 차례로 덧붙입니다.
- 마지막으로 str01을 출력하면 도시 이름의 첫 글자들을 이어 붙인 문자열이 나옵니다.
즉, 출력 결과는 다음과 같습니다:
skiddp → seoul → s, kyeonggi → k, inchon → i, daejeon → d, daegu → d, pusan → p
📌 코드 분석
struct good s[] = {{"Kim", 28}, {"Lee", 38}, {"Seo", 50}, {"Park", 35}};
- 구조체 배열 s는 총 4개의 구조체 데이터를 가지고 있어요.
struct good *p;
p = s;
p++;
- 포인터 p는 배열 s의 첫 번째 요소 s[0]을 가리키고,
- p++는 다음 요소인 s[1] ({"Lee", 38})을 가리키게 돼요.
printf("%s", p->name);
printf("%d", p->age);
- 두 번째 구조체의 name과 age를 각각 출력합니다.
✅ 출력 결과
Lee38
public class Good {
public static void main(String[] args) {
int i, j;
for (j = 0, i = 0; i <= 5; i++) {
j += i;
Systehttp://m.out.print(i);
if (i == 5) {
Systehttp://m.out.print("=");
Systehttp://m.out.print(j);
} else {
Systehttp://m.out.print("+");
}
}
}
}
- i는 0부터 5까지 하나씩 증가하면서 반복
- j는 누적 합을 저장하는 변수 (0 + 1 + 2 + ... + 5)
- 매 반복마다 현재 i를 출력하고,
- i가 5가 아니면 + 출력
- i가 5면 = 와 누적합 j 출력
'IT 엔지니어 > 자격증' 카테고리의 다른 글
정보처리기사 실기 -3 (0) | 2025.06.26 |
---|---|
정보처리기사 실기 -2 (0) | 2025.06.25 |
네트워크관리사 2급 (0) | 2025.05.13 |
리눅스마스터 2급 (0) | 2025.05.13 |
트워크관리사 2급 2024년 11월 03일 기출문제 (0) | 2025.02.17 |