



























객체지향 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화하는데 사용된다. 즉, 개발하는 시스템을 이해하기 쉬운 형태로 표현하여 분석가, 의뢰인, 설계자가 효율적인 의사소통을 할 수 있게 해준다. 따라서, 개발 방법론이나 개발 프로세스가 아니라 표준화된 모델링 언어이다.




- 디자인, 사용방법설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형 - 시각적으로만 구성 요소를 배치하는 것으로 일반적으로 실제로 구현되지는 않음
























㉮ 설계 목표 설정 ㉯ 시스템 타입 결정 ㉰ 스타일 적용 및 커스터마이즈 ㉱ 서브시스템의 기능, 인터페이스 동작 작성 ㉲ 아키텍처 설계 검토
































㉠ FIFO 방식으로 처리된다. ㉡ 순서 리스트의 뒤(Rear)에서 노드가 삽입되며, 앞(Front)에서 노드가 제거된다. ㉢ 선형 리스트의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조이다. ㉣ 인터럽트 처리, 서브루틴 호출 작업 등에 응용된다.




















































㉠ 데이터 흐름 검사 ㉡ 루프 검사 ㉢ 동등 분할 검사 ㉣ 경계값 분석 ㉤ 원인 결과 그래프 기법 ㉥ 오류 예측 기법








































| 학번 | 이름 | 학년 | 학과 |
|---|---|---|---|
| 13001 | 홍길동 | 3학년 | 전기 |
| 13002 | 이순신 | 4학년 | 기계 |
| 13003 | 강감찬 | 2학년 | 컴퓨터 |
























SELECT 급여 FROM 사원;
| [사원] 테이블 | |||
|---|---|---|---|
| 사원ID | 사원명 | 급여 | 부서ID |
| 101 | 박철수 | 30000 | 1 |
| 102 | 하나라 | 35000 | 2 |
| 103 | 김감동 | 40000 | 3 |
| 104 | 이구수 | 35000 | 2 |
| 105 | 최초록 | 40000 | 3 |




SELECT * FROM 성적 WHERE (점수 BETWEEN 90 AND 95) AND 학과=‘컴퓨터공학과’;












SELECT A FROM R UNION ALL SELECT A FROM S;
| R | |
|---|---|
| A | B |
| 1 | A |
| 3 | B |
| S | |
|---|---|
| A | B |
| 1 | A |
| 2 | B |








DROP VIEW V_1 CASCADE;












#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]) {
int arr[2][3]={1,2,3,4,5,6};
int (*p)[3]=NULL;
p=arr;
printf("%d, ", *(p[0]+1)+*(p[1]+2));
printf("%d", *(*(p+1)+0)+*(*(p+1)+1));
return 0;
}




























P(S) : while S<=0 do skip; S :=S-1; V(S) : S :=S+1;












#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i=0;
while(1) {
if(i==4) {
break;
}
++i;
}
printf("i=%d", i);
return 0;
}




public class Ape {
static void rs(char a[]) {
for(int i=0;i<a.length;i++)
if(a[i]=='B')
a[i]='C';
else if(i==a.length-1)
a[i]=a[i-1];
else a[i]=a[i+1];
}
static void pca(char a[]) {
for(int i=0;i<a.length;i++)
System.out.print(a[i]);
System.out.println();
}
public static void main(String[] args) {
char c[]={'A','B','D','D','A','B','C'};
rs(c);
pca(c)
}
}








#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char str1[20]="KOREA";
char str2[20]="LOVE";
char* p1=NULL;
char* p2=NULL;
p1=str1;
p2=str2;
str1[1]=p2[2];
str2[3]=p1[4];
strcat(str1, str2);
printf("%c", *(p1+2));
return 0;
}




a=100
list_data=['a', ’b’, ’c’]
dict_data={'a':90, ’b’:95}
print (list_data[0])
print(dict_data['a'])




a<b+2 && a<<1<=b




a=["대", "한", "민 ", "국"]
for i in a:
print(i)












- 각 시스템 간에 공유 디스크를 중심으로 클러스터링으로 엮여 다수의 시스템을 동시에 연결할 수 있다. - 조직, 기업의 기간 업무 서버 등의 안정성을 높이기 위해 사용될 수 있다. - 여러 가지 방식으로 구현되며 2개의 서버를 연결하는 것으로 2개의 시스템이 각각 업무를 수행하도록 구현하는 방식이 널리 사용된다.








- 하드디스크와 같은 데이터 저장장치를 호스트 버스 어댑터에 직접 연결하는 방식 - 저장장치와 호스트 기기 사이에 네트워크 디바이스 없이 직접 연결하는 방식으로 구성




















- 1990년대 David Clock이 처음 제안하였다. - 비정상적인 접근의 탐지를 위해 의도적으로 설치해 둔 시스템이다. - 침입자를 속여 실제 공격당하는 것처럼 보여줌으로써 크래커를 추적 및 공격기법의 정보를 수집하는 역할을 한다. - 쉽게 공격자에게 노출되어야 하며 쉽게 공격이 가능한 것처럼 취약해 보여야 한다.




- 컨테이너 응용프로그램의 배포를 자동화하는 오픈소스 엔진이다. - 소프트웨어 컨테이너 안에 응용프로그램들을 배치시키는 일을 자동화해 주는 오픈 소스 프로젝트이자 소프트웨어로 볼 수 있다.




























- 리눅스 시스템에서 사용자의 성공한 로그인/로그아웃 정보 기록 - 시스템의 종료/시작 시간 기록















