9월, 2019의 게시물 표시

[운영체제] 세그먼트

이미지
[운영체제] 세그먼트 메모리 세그먼트 메모리 보호를 수행하는 가장 일반적인 방법 가운데 하나이다. 또 페이징이 있다. 세그먼트를 사용하는 컴퓨터 시스템에서 메모리 위치를 참조하는 명령어는 피연산자와 세그먼트와 그 세그먼트안의 오프셋을 증명하는 값을 포함하고 있다. 프로그램 메모리 세그먼트 컴파일러에 의해 자동적으로 프로그램이 프로세스에 올라 갈 때 세그먼트가 나뉘게 되는데, 주로 코드 영역, 데이터 영역, 스택(Stack)영역으로 나뉘게 된다. 데이터 메모리는 크게 코드 세그먼트 스택 세그먼트 데이터 세그먼트 힙 세그먼트 로 구분된다. 코드 세그먼트 소스파일의 코드가 할당되어 잡히는 메모리 영역이다. 이 부분에 변화가 있어선 안되기 때문에 기본적으로 쓰기가 금지 되어 있다. 스택 세그먼트 지역변수가 할당된다. 스택 구조로 쌓아 올려짐으로써 재귀호출이 가능해진다. 이 곳에서 호출된 변수들은 임시적인 성격을 가지게 되는데 이유는 스택 세그먼트에서 호출된 변수는 호출된 지역(함수)에서만 사용이 가능하기 때문이다. (이는 코딩을 할 때 같은 이름의 변수를 서로 다른 함수에서 따로 사용할 수 있는 이유와 같다.) 따라서 해당 함수가 종료되면 스택 세그먼트에 올라왔던 변수들도 함께 소멸 된다. 데이터 세그먼트 프로그램이 빌드 되면서 올라오는 전역변수, STATIC 변수, 일반상수, 문자열 등이 쓰인다. 따라서 어느 함수에서나 호출이 가능하다. 데이터 세그먼트에서 호출된 변수들은 프로그램이 시작과 함께 선언되며 프로그램이 종료될 때 소멸 된다. 호출되는 함수와 함께 시작하고 소멸되는 스택 세그먼트의 변수와 상반되는 개념이다. 힙 세그먼트 메모리의 동적 할당 으로 표시되어 있다 정적으로 밖에 할당되지 않는 변수들을 개발자가 필요한 만큼 동적으로 할당하여 사용할 수 있는 메로리 출처 https://luckyyowu.tistory.com/6 http://blog.na

[컴퓨터네트워크] SAN & NAS & DAS 비교

이미지
[컴퓨터네트워크] SAN & NAS & DAS 비교 스토리지 시스템(Storage System)의 개요 정의 단일 디스크로 처리할 수 없는 용량을 저장하기 위해 디스크를 묶어서 논리적으로 사용하는 기술 스토리지 구성은 서버와 저장장치를 연결하는 방법이다. 스토리지 시스템의 필요성 데이터의 양적 팽창이 급증함에 따른 데이터의 효율적인 저장 및 관리 필요 기업의 정보(Information) 자원을 이용한 새로운 비즈니스의 창출 ERP, DW, Data Mining 등의 Application 등장 스토리 시스템의 요구조건 전통적인 스토리지 접속 방법  DAS(Direct Attached Storage) 네트워크 스토리지 접속 방법 SAN(Storage Area Network), NAS(Network Attached Storage) DAS(Direct Attached Storage) 서버가 채널을 통해 저장 장치에 직접 연결하여 사용하는 방식 서버에 직접 외장 정장 장치를 추가하므로 속도는 빠르고 확장은 쉽지만, 연결 수에 한계가 있다. 각 서버는 자신이 직접 파일 시스템을 관리한다. 소형에 적합 NAS(Network Attached Storage) 서버와 저장 장치가 이더넷 등의 LAN 방식의 네트워크에 연결된 방식이다. LAN은 TCP/IP 프로토콜 기반이고 저장장치는 SCSI를 사용하므로 이들 간의 통신을 위해 중계 역할을 하는 파일 서버가 필요하다. 중형에 적합 장점  DAS와 달리 Port 수에 제한이 없어 확장성과 유연성이 뛰어남 경제적이며 설치와 유지보수가 용이함 단점 접속 증가시 성능 저하 파일 전송 속도는 DAS보다 느림 파일 시스템을 공유하기 때문에 높은 수준의 보안을 요구하는 곳에서는 문제가 될 수 있다. SAN(Storage Area Network) 서버와 저장 장치를 Fiber Channel Switch로

[운영체제] 스핀락(Spin Lock)이란?

[운영체제] 스핀락(Spin Lock)이란? Spin Lock은 이름이 뜻하는대로, 만약 다른 스레드가 lock을 소유하고 있다면 그 lock이 반환될 때까지 계속 확인하며 기다리는 것이다. '조금만 기다리면 바로 쓸 수 있는데 굳이 Context Switching으로 부하를 줄 필요가 있나?'라는 컨셉으로 개발된 것으로 Critical Section에 진입이 불가능할 때 컨텍스트 스위칭을 하지 않고 잠시 루프를 돌면서 재시도를 하는것을 말합니다. Lock-Unlock과정이 아주 짧아서 락하는 경우가 드문 경우 유용합니다. ( = 적절하게 크리티컬 섹션을 사용한 경우 ) 예를 들어 어떤 숫자를 단순히 +1해주는데 사용될 락이 있다고 생각해보자 이 경우는 거창하게 Context Switching을 하면서 구현할 필요가 없다. 잠깐 밖에서 값을 검사해보고 내가 사용가능하면 바로 처리 하도록 하는게 효율적이다. 이 개념이 '스핀 락' 개념이다. 그냥 단순히 적절한 시간동안 외부에서 for이나 while로 루프를 돌면서 락을 검사하고 처리하게 되는 것이다. 이 때 임계 영역은 굉장히 작거나 아주 빨리 처리가 가능할 경우 이런 락을 쓰게 된다. Spin Lock의 특성 Lock을 얻을 수 없다면, 계속해서 Lock을 확인하며 얻을 때까지 기다린다. 이른바 바쁘게 기다리는 busy waiting이다. 바쁘게 기다린다는 것은 무한 루프를 돌면서 최대한 다른 스레드에게 CPU를 양보하지 않는 것이다. Lock이 곧 사용가능해질 경우 Context Switching을 줄여 CPU의 부담을 덜어준다. 하지만, 만약 어떤 스레드가 Lock을 오랫동안 유지한다면 오히려 CPU 시간을 많이 소모할 가능성이 있다. 하나의 CPU나 하나의 코어만 있는 경우에는 유용하지 않다. 그 이유는 만약 다른 스레드가 Lock을 가지고 있고 그 스레드가 Lock을 풀어 주려면 싱글 CPU 사용률 100%를 만드는 상황이 발생하므

[전자계산기구조] CPU구조(레지스터 & ALU & CU & 버스 & 마이크로 연산)

이미지
[전자계산기구조] CPU구조(레지스터 & ALU & CU & 버스 & 마이크로 연산)CPU(Central Processing Unit) 컴퓨터 시스템의 두뇌 역할을 하는 중앙처리장치입니다. 레지스터, 산술논리유닛(ALU), 제어장치(CU), 버스로 구성합니다. 레지스터 CPU내에서 데이터를 기억하는 메모리 장치입니다. CPU내에서 처리할 명령어나 연산에 사용할 값이나 연산 결과를 일시적(휘발성) 으로 기억하는 장치입니다. 메모리 장치중에 가장 빠릅니다. 플리플롭과 래치(Latch)를 병렬로 구성합니다. PC(Program Counter) : 다음 번에 실행할 명령어 주소를 기억하는 레지스터 = 명령 계수기 IR(Instruction Register) : 현재 실행 중인 명령을 기억하는 레지스터 가장 최근에 인출한 명령어를 저장하는 레지스터 = 명령 레지스터 AC(Accumulator) : 연산 결과를 임시 로 저장하는 레지스터로 누산기라 부름 플래그 레지스터(Flag Register) : 상태를 기억하는 레지스터(오버플로우, 언더플로우, 캐리, 인터럽트 등의 PSW를 기억) 문제가 발생이 됐다 => 1 , 문제가 발생되지 않았다 => 0 PSW(Program Status Word) : 시스템 내부의 순간순간의 상태를 기록하고 있는 정보 MAR(Memory Address Register) : 데이터의 주소를 기억하는 레지스터 MBR(Memory Buffer Register) : 데이터를 임시로 기억하는 레지스터로 데이터를 처리하기 위해 반드시 거쳐감 BR(Base Register) : 명령의 시작 주소를 기억하는 레지스터 MSR(Major Status Register) : CPU의 주 상태를 저장하는 레지스터 = PSWR = 플래그 레지스터 S(Sign) : 0(양수) vs 1(음수) Z : 0(값 x) vs 1(값이 발생) V(오버플로우 발생했느냐) 베이스

[컴퓨터네트워크] IPv6와 IPv4차이

이미지
[컴퓨터네트워크] IPv6와 IPv4차이 IPv4 -> IPv6 IPv6는 128비트로 구성되며, 긴 주소를 쉽게 읽을 수 있도록 16비트씩 :(콜론)으로 나누어 각 필드를 16진수로 표현하는 방법을 사용한다. 기존 IPv4주소도 IPv6주소로 표현할 수 있는데, 하위 32비트에는 IPv4 주소를 그대로 채우고 상위 비트는 모두 0으로 채우는 방식을 사용한다. 효율적인 헤더의 구성 IPv4는 하나의 헤더를 가지고 서비스를 제공하고 있기 때문에, 헤더의 제어 정보 영역에 필요 이상의 많은 정보들이 들어가게 되어, 노드에서 패킷을 수신할 때 많은 처리시간이 소요된다. 많은 시간이 소요되니 실시간 서비스나 멀티미디어 서비스 제공 시 많은 제약요소가 되었다. IPv6는 보다 단순화된 형태의 헤더 정보 제공이 가능하도록 하기 위해 사용하는 서비스의 형태에 따라 헤더를 분리하였다. 여러개의 독립된 헤더를 사용하여 각 기능에 적합한 형태로 전송함으로써 네트워크에서의 처리시간을 단축시키고, 전송되는 정보의 양도 줄일 수 있도록 하여 효율성의 측면에서 더욱 우수한 서비스를 제공할 수 있다. IPv6은 옵션들이 기본 헤더로부터 분리되어 필요할 때 기본 헤더와 상위 계층 데이터 사이에 새로운 확장 헤더를 삽입하여 사용할 수 있다. IPv4 기본 헤더에 존재하던 서비스 유형, 단편화 정보, 검사합 정보 등이 분리되었다. IPv6의 각 패킷은 기본 헤더와 페이로드(payload)로 구성되며, 페이로드는 선택적인 확장 헤더들과 상위 계층의 데이터로 구성된다. 기본 헤더는 40바이트이며 페이로드는 65535바이트까지 차지한다. IPv6 데이터그램 IPv6의 각 패킷은 기본 헤더와 페이로드(Payload)로 구성되며, 페이로드는 선택적인 확장 헤더들과 상위 계층의 데이터로 구성된다. 기본 헤더는 40바이트이며, 페이로드는 65,535바이트까지 차지한다. IPv6패킷 형식 버전(4비트) : IP버전을

[소프트웨어공학] 소프트웨어 테스트(통합 테스트 & 시스템 테스트)

[소프트웨어공학] 소프트웨어 테스트(통합 테스트 & 시스템 테스트) 단위 테스트 (Unit Test) 개발 단계에서 각 모듈이 개발 완료되는 시점에서 단위 테스트를 시행합니다. 모듈이라하면 일종의 프로그램 내의 하나의 기능으로 생각하면 쉽다. MS Word라는 프로그램이 있다는 가정하에 Word내에 있는 기능 중, 폰트 사이즈 선택이 일종의 모듈이라 볼 수 있습니다. 다시 말해 모듈을 테스트한다는 의미는 하나의 기능만이 잘 동작하는지를 확인하는 과정입니다. 테스트하려는 모듈을 실행하려면 해당 모듈을 실행할 수 있는 환경 구성이 필요합니다. 하지만 상위 모듈이나 하위 모듈이 100% 존재한다는 보장이 없기 때문에 아래와 같은 가상의 모듈을 만들어 사용해야 합니다. 테스트 드라이버 (Test Driver) 테스트 대상이 되는 모듈을 호출하여 대상 모듈의 실행 결과를 받는 가상 모듈 테스트 대상이 되는 모듈의, 상위 가상 모듈 테스트 스텁 (Test Stub) 호출하는 상황의 대상 모듈을 테스트하기 위한 가상 모듈 테스트 대상이 되는 모듈의, 하위 가상 모듈 통합 테스트 (Integration Test) 모듈을 통합하는 과정에서 모듈 간 호환성의 문제를 찾아내기 위해 수행되는 테스트입니다. 다시 말해 모듈 간의 인터페이스가 올바르게 작동하는지를 테스트하게 됩니다. ex) MS Word에서 '폰트 사이즈' 모듈과 '폰트 스타일'모듈을 통합 모듈 테스트 통합 기법 빅뱅(Big-Bang) 기법 전체 모듈을 모두 통합한 이후 통합 테스트를 수행하는 방식, 이때 오류가 발생했을 시 오류가 발생한 모듈을 찾기가 쉽지 않다는 단점이 있다. 하향식(Top-Down) 기법 상향식(Bottom-Up)기법 통합 테스트를 수행할 때 트리 구조의 모듈 구성도에서 아래로 통합하며 테스트하는것을 깊이 우선 , 행 우선으로 통합하며 테스트하는 것을 너비 우선 방식이라고 한다.

[전자계산기구조] RAID란?

이미지
[전자계산기구조] RAID란? 레이드란 Redundant Array of Independent Disk 의 약자로, 2개 이상의 디스크를 병렬로 처리하여 성능 및 안정성을 향상시키는 방식 입니다. 과거에는 주로 용량이 작은 디스크들을 연결하여 디스크 용량을 높이기 위해 사용되었습니다. 여러개의 디스크를 한 개의 대용량 디스크처럼 사용하는 기법으로 신뢰성과 효율성이 향상된다. 요즘에는 디스크 성능 향상에서 나아가 디스크 오류나 데이터 손실 등 장애에 대비하기 위한 용도로 사용되고 있습니다. 한 번 손실되거나 삭제된 데이터를 복구하기에 시간과 노력이 많이 소요되는 만큼, 데이터 손실을 방지하기 위한 일종의 대비책이라고 보시면 됩니다. 종합하면 한 개의 디스크에 데이터를 저장하는 방식이 아닌, 데이터 저장의 성능 및 안정성 확보를 위해 복수의 디스크를 구성하는 방식을 레이드(RAID) 라 합니다. 물론 이러한 레이드 방식을 적용하기 위해서는 1개 이상의 디스크가 필요합니다. 레이드의 종류 어떠한 방식으로 레이드를 구성하느냐에 따라 레이드 방식이 구분됩니다. 대표적인 레이드 방식을 간단히 소개합니다. 레이드 0 먼저, 레이드 0 방식입니다. 두 개 이상의 디스크에 데이터를 순차적으로 저장하는 방식입니다. 단순히 볼륨마다 디스크 스트립을 나열해 놓았기 때문에 스트라이핑(Striping)모드 라고 하며, 높은 신뢰성을 요구하기 보다는 성능과 용량을 중요시하는 시스템에 사용한다. 한 개의 디스크에 데이터를 처리하는게 아니라 복수개의 디스크에 데이터를 분산해 처리하기 때문에, 처리 속도가 향상된다는 강점을 지니고 있습니다. 하지만 하나의 디스크가 문제가 발생하면 레드0으로 구성된 모든 데이터가 유실된다는 단점을 지니고 있는데요. 오직 성능향상을 위한 구성방식 이라고 보면 됩니다. 레이드 1 다음으로, 레이드 1 방식입니다. 데이터 처리 시, 동일한 디스크에 똑같이 저장하는 방식입니다. (Disk mirro

[전자계산기구조] 플래시 메모리(Flash Memory)

[전자계산기구조] 플래시 메모리(Flash Memory) 전원이 끊켜도 저장된 데이터를 보존하는 롬(ROM)의 장점과 정보의 입출력이 자유로운 램(RAM)의 장점을 동시에 지닌 반도체 소비전력이 작고, 전원이 꺼지더라도 저장된 정보가 사라지지 않은 채 유지되는 특성을 가진다. 계속해서 전원이 공급되는 비휘발성 메모리로, DRAM과 달리 전원이 끊기더라도 저장된 정보를 그대로 보존할 수 있을 뿐 아니라 정보의 입출력도 자유로워 디지털텔레비전, 디지털캠코더, 휴대전화, 디카, 게임, MP3등 널리 이용 된다. 종류는 크게 저장 용량이 큰 데이터저장형(NAND)과 처리속도가 빠른 코드저장형(NOR)의 2가지로 분류됩니다. 플레시 메모리(Flash Memory) 종류 및 특징 EPROM의 입력방식과 EEPROM의 소거방법의 장점을 결합한 것이 주요 특징이며, 플래시 메모리는 지우기의 한계가 있습니다. 플래시 메모리는 EEPROM의 한 종류지만 EEPROM과는 달리 블록 단위로 데이터를 기록할 수 있다. EPROM(Erasable PROM) : 저장되어 있는 데이터를 지우고 쓸 수 있는 ROM입니다. 데이터를 지우는 방법에 따라 다시 EEPROM, UVEPROM 으로 분류됩니다. EEPROM(Electrically Erasable PROM) : 고전압으로 데이터를 지우고, 삭제된 공간에 데이터를 다시 기록할 수 있는 메모리 입니다. 지우는 속도가 느립니다. UVEPROM(ultra-violet EPROM) : 자외선을 이용하여 데이터를 지웁니다. 노어 플래시(NOR Flash) 주로 핸드폰 메모리에 사용된다. 단가가 높음 바이트나 워드 단위로 읽기/쓰기가 가능하고 덮어쓰기와 지우기는 임의 접근할 수 없음 읽기 속도는 빠르나 , 데이터를 지우거나 덮어쓰기할 때 랜덤엑세스가 불가능해서 속도가 느림 낸드 플래시(NAND Flash) 대용량화가 쉽지만 속도는 느리다 하드 디스크와 가장 유사한 특성을 보임 read와

[전자계산기구조] 스트로브(Strobe Pulse) & 핸드셰이킹(Handshaking)

[전자계산기구조] 스트로브(Strobe Pulse) & 핸드셰이킹(Handshaking) 비동기 데이터 전송 두 개의 독립적인 장치(ex : 기억장치, 입출력장치) 사이의 비동기적인 데이터 전송을 이루기 위해서는 데이터 전송시각을 알기 위한 제어 신호를 서로 교환하여 송수신 상태를 서로 맞춰야 한다. 동기를 맞추기 위한 제어 신호를 교환하는 방법에는 스트로브 펄스에 의한 방식과 핸드세이킹에 의한 방법이 있다. 스트로브 펄스(Strobe Pulse) 방식 데이터 버스와 한 개의 제어선을 이용 스트로브는 송신 장치나 수신 장치에 의하여 발생한다. 수신하는 장치에서 스트로브 펄스를 발생하여 송신부에게 데이터 전송을 요청합니다. 두 개의 독립적인 장치 사이의 비동기 적인 데이터 전송을 이루기 위해 전송시각을 알리는 제어 신호를 스트로브 신호라 하며, 한개의 제어선을 통해 상호 교환 수신 장치는 스트로브 펄스를 발생시켜 송신부로 하여금 데이터를 제공하도록 알린다. 메모리와 CPU 사이에서 정보를 교환할 때 사용 전송을 시작한 송신장치는 수신장치가 데이터를 받았는지를 알 수 없다. 핸드셰이킹(Handshaking) 방식 컴퓨터와 주변장치간에 Data 전송을 할 때 입,출력의 준비나 완료를 나타내는 신호(RDY, ADK)가 필요한 비동기식 병렬 입,출력 시스템 에 널리 쓰인다. 전송을 시작한 장치에 응답하는 제2의 제어 신호를 전송함으로써 스트로브 제어 방법보다는 높은 융통성과 신뢰성을 갖는다. 2~3개의 제어선을 이용 스풀링 버퍼링 출처 https://m.blog.naver.com/PostView.nhn?blogId=pusna25&logNo=100112226101&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[운영체제] DMA(Direct Memory Access) & 입출력 처리 방식

이미지
[운영체제] DMA(Direct Memory Access) & 입출력 처리 방식 CPU를 대신하여 I/O장치와 Memory사이의 데이터전송을 담당하는 장치를 지칭 CPU의 개입 없이 주변장치(입출력장치)와 주기억장치와의 데이터 전송이 이루어지는 방법을 통칭 CPU와 주기억장치만이 시스템 버스에 접근할 수 있고 입출력장치는 DMA와 같은 입출력 제어기에 의해 시스템 버스에 접근할 수 있다. DMA(Direct Memory Access)의 특징 CPU의 개입 없이 주변장치와 주기억장치와의 데이터 직접 전송 프로그램 수행 중 입출력을 위한 인터럽트의 발생 횟수를 최소화하여 컴퓨터 시스템의 효율을 높임 CPU는 DMA와 상태정보 및 제어정보만을 주고 받음 속도가 빠른 디스크, 테이프 등에 사용됨 DMA는 기억장치 접근을 위해 CPU의 시스템 버스 사용권을 일시적으로 뺏는 사이클 스틸링(Cycle Stealing)을 수행한다. 시스템 버스에 대해 CPU보다 DMA의 우선순위가 높다. DMA제어기와 CPU가 시스템 버스를 공유한다. 실제 CPU가 Control하는 건 DMAC (DMA Controller)를 Control 해주는 과정을 의미합니다. 입출력 처리 방식의 종류 빠른 순위  채널에 의한 I/O 메모리 직접 접근 I/O(DMA) 인터럽트 처리에 의한 I/O 프로그램에 의한 I/O 프로그램에 의한 I/O CPU상에서 실행되는 프로그램에 의해 입출력이 직접 제어 CPU는 입출력 장치에 명령을 보낸 후 동작이 완료될 때까지 대기 CPU는 주기적으로 주변장치의 상태를 반복적으로 검사, 폴링 방식 CPU는 자원낭비 발생 인터럽트 처리에 의한 I/O 입출력 인터페이스가 주변장치의 상태를 검사하여 준비상태가 되면 인터럽트 신호를 발생하여 입출력 처리를 요구하는 방식 CPU는 그전에 수행되던 프로그램의 상태를 스택에 저장한 후 Context Switching과정을 통해

[소프트웨어공학] 디자인 패턴

이미지
[소프트웨어공학] 디자인 패턴 사용 목적에 따라 생성 패턴, 구조 패턴, 행위 패턴으로 분류 된다. 생성 패턴 객체의 생성 과정에 관여하는 것 ex) 추상 팩토리(abstract factory), 빌더(builder), 프로토타입(prototype), 싱글톤(singleton) 구조 패턴 클래스나 객체의 합성에 관한 패턴 ex) Adapter, Bridge, Composite, Decorator, Proxy 행위 패턴 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의 ex) chain of responsibility, command, iterator, mediator, memento, flyweight 팩토리 패턴 (factory pattern) 팩토리 메소드 패턴   객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만든다. 즉, 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것 추상 팩토리 패턴 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성 어댑터 패턴 (adapter pattern) 전기 콘센트를 보면 이해하기 쉽다. 한국의 표준 플러그를 인본에 전원 소켓에 바로 끼워줄수 없어 동그랑 모양을 일자로 바꿔주는 어댑터를 끼워주어야 한다. 한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환한다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할 수 있다. 이렇게 함으로써 클라이언트와 구현된 인터페이스를 분리할 수 있으며, 향후 인터페이스가 바뀌더라도 그 변경 내역은 어댑터에 캡슐화 되기 때문에 클라이언트는 바뀔 필요가 없다. 기존 클래스를 재사용할 수 있도록 중간

[소프트웨어공학] UP(Unified Process)

[소프트웨어공학] UP(Unified Process) 도입(Inception) 비즈니스 케이스를 구축하며 시스템이 당면 문제를 알아낸다. 비즈니스 모델, 비전문서, 프로토타입을 생성한다. 상세(Elaboration) 시스템 요구사항의 대부분을 포착 이 단계에서 수행되는 일반적인 프로세스는 Use-case Diagram, Conceptual Diagram, Package Diagram 작성이 포함됩니다. 프로젝트를 계획하고, 시스템의 기능과 구조를 정의한다. 유스케이스 모델과 실행 가능한 기본 구조를 생서한다. 아키텍처 결정을 위한 설계 작업과 분석 작업의 비중이 크고, 시스템 구성에 관련된 위험 요소를 식별하고 완화하는데 중점을 두는 단계 구축(Construction) 기능이 반복 점진적인 방법으로 아키텍처에 자리 잡는다. 아키텍처에서 발생한 가정은 필요에 따라 테스트되고, 리팩토링된다. 각 반복을 통해 객관적으로 평가될 수 있는 실행 가능한 코드가 나온다. 이행(Transition) 테스트 후 사용자에게 인도된다. 출처 https://sonseungha.tistory.com/431

[정보보안] 공개키 암호화 & 비밀키(대칭키) 암호화

[정보보안] 공개키 암호화 & 비밀키(대칭키) 암호화 공개키 암호화 서로 다른 키로 암호화와 복호화를 하므로 '비대칭적 암호 알고리즘'이라 한다. 오직 자신만이 개인키(비밀키)를 가지고, 많은 사람들이 공개키를 가질 수 있다. 개인키를 가진 사람과 공개키를 가진 사람들이 서로 기밀성, 인증, 무결성, 부인 방지를 제공한다. 공개키를 가진 사람은 개인키를 가진 사람에게 비밀스런 메시지를 보낼 수 있다. 반대로, 자신의 개인키로 메시지를 암호화한다면 공개키를 가진 모든 사람이 복호화 할 수 있다. 이런 성질을 이용하여 전자서명을 할 수 있으며, 무결성과 부인 방지를 제공한다. 디피(Diffie)와 헬만(Hellman)에 의해 제안되었다. 두 개의 분리된 키를 사용하는 비대칭적 암호화 기법이다. 암호화키 != 복호화키 ex) RSA 비밀키(대칭키) 암호화 같은 키로 암호화와 복호화를 하므로 '대칭적 암호 알고리즘'이라 한다. 평소에 특정한 비밀키를 가지고 두 사람이 있다면 그들은 같은 키를 공유한다. 다른 사람이 비밀키를 알아서는 안 된다. 비밀키 암호 알고리즘은 비밀키를 가진 서로에게 기밀성, 무결성을 제공한다. 암호화키 = 복호화키 ex) DES, SEED 출처 https://www.youtube.com/watch?v=Pe1HseGxV70

[컴퓨터네트워크] IEEE 정리

[컴퓨터네트워크] IEEE 정리 IEEE 802 규격은 IEEE 802위원회라는 곳에서 표준안을 정해서 발표하는 것입니다. 1980년 2월 2일에 창설이 되어 802라는 숫자가 붙은 것이죠. 802는 브릿지 통신규격입니다. 802 뒤에 숫자가 붙음으로써 프레임 규격으로 구분되어 집니다. IEEE 802.1  -> 상위 계층 인터페이스 및 MAC 브릿지 IEEE 802.2  -> LLC(Logic Link Control) IEEE 802.3  -> 이더넷(CSMA/CD)에 관한 규격 IEEE 802.4  -> Token Bus IEEE 802.5  -> Token Ring IEEE 802.6  -> 도시형네트워크(MAN)를 정의한 규격 IEEE 802.9  -> IS LAN IEEE 802.10  -> 네트워크 본안의 규격제정에 관계되어 있음 IEEE 802.11  -> 무선 LAN(CSMA/CA) IEEE 802.12  -> 디멘드, 프라이빗(100VG-AnyLAN) IEEE 802.14  -> Cable Modem IEEE 802.15.1  -> 블루투스 IEEE 802.15.4  -> ZigBee IEEE 802.16  -> Wibro(와이브로) & WiMAX 저희가 접하는 것은 주로 IEEE 802.3 규격입니다. 그 이유는 나와있듯이 802.3이 이더넷을 말하는 것이고 저희들이 주로 다루는 것이 이더넷이기 때문이죠 밑에도 색칠했듯이 요즘은 IEEE 802.11 규격도 많이들 보셨을 겁니다. 이제 하도 WLAN이 많아지다 보니.. IEEE 802.3 규격 정리 IEEE 802.3  -> 10Base-X IEEE 802.3u  -> 100Base-X IEEE 802.3z  -> 1000Base-X IEEE 802.3ab  -> 1000Base-T IEEE 802.3ac -> 최고 86

[컴퓨터네트워크] IPsec이란?

이미지
[컴퓨터네트워크] IPsec이란? IPsec IPsec은 하나의 프로토콜이 아니다. 네트워크 계층에서 보안을 제공하는 서비스와 프로토콜 모음을 말하는 용어 이다. 데이터 그램을 암호화한다면 모든 페이로드의 내용을 보호할 수 있다. OSI 7계층이나 TCP/IP 4계층에서 밑에 층[네트워크 계층]을 암호화 하면 위에 계층은 당연히 암호화 되기 때문이다. 네트워크계층(IP 계층) 상에서 IP 패킷 단위로 인증 및 암호화를 하는 기술 인터넷 경유 구간에 일종의 보안 통로인 터널링을 형성해 줌 가상사설망(VPN)에서 많이 사용되는 터널링 프로토콜 수송계층(TCP, UDP 등) 하위에서 구현되기 때문에 응용에 투명함 응용 소프트웨어 변경 필요 없음 IPsec이 만들어진 이유 가장 큰 이유는 보안성의 요구이다. 오늘날 인터넷은 공공의 인터넷 망으로서 많은 보안 위협이 발생하였다. 발생하는 보안 위협 데이터 무결성 공격자가 천만원이라는 숫자를 1억이라 바꿨는지 아닌지 확인 IP 패킷의 송신지 위조 진짜 은행에서 왔는지 공격자에게서 왔는지 재전송 공격 1천만원 송금 패킷을 10번 재전송 프라이버시 문제 사전인 대화 내용을 유출 그래서 이를 보호하기 위한 프로토콜이 개발되기 시작했다. 위의 그림처럼 Network 계층을 암호화 하기 때문에, 위의 데이터들은 캡슐화 되어 있어 이도 역시 암호화 시킬 수 있다. 또 IP Sec을 적용하기 위해서는 운영체제의 수정이 필요하다. 각 데이터 그램을 만드는 과정에서 이루어지기 때문에 이러한 과정이 일어나는 운영체제의 수정이 필요하다. IP Sec 프로토콜 앞서 설명에서 IP Sec이란 서비스와 프로토콜의 모음이라고 하였다. 2가지 프로토콜이 존재한다. AH, ESP이다. 다시 강조하지만이 두개는 프로토콜이다. AH(Authentication Header) protocol 출발지 인증 과 데

[컴퓨터네트워크] VPN이란?

이미지
[컴퓨터네트워크] VPN이란? VPN(Virtual Private Network) 가상 사설망 공중망을 통한 연결을 전용선처럼 사용하는 효과를 누릴 수 있도록 하는 것 기존의 인터넷 서비스를 사용하고 있는데, 이것을 사설 네트워크처럼 쓰고 싶다면, 가상으로 사설망을 만들어 사용하는 겁니다. 단일 회사가 하나의 망을 점유하는 전용선의 개념에 대비되는 것이라고 할 수 있다. VPN은 방화벽이나 라우터에 내장될 수 있다. 터널링, 암호화, 인증, 접근 제어 수행 VPN 이용분야 재택 근무자나 모바일 유저 본사와 지사 연결 지사와 지사 연결 협력 업체와 네트워크를 통한 Extranet 구성 동종 기업간의 자료 공유 전자 상거래와 보안 VPN의 장단점 장점 Network 관리 및 운영 비용의 절감 기업 Network의 유동성 확보 기업의 통신 비용 절감 전용회선 기반 사설 네트워크보다 구축 및 유지 비용이 저렴하다. 장점 보안성의 부족 VPN 장비간의 호환성이 떨어짐 관리 편의성이 떨어짐 QoS(Quality of Service)가 보장되지 않음 표준화가 되지 않음 인터넷의 성능이 불안정함 VPN의 필수 구성요소 터널링 기법을 이용한 네트워크 보안 및 데이터 보안을 지원할 것 암호화 알고리즘을 통한 DATA의 손실 및 변형을 방지 할 수 있을 것 압축기법 활용을 통한 네트워크 속도 저하 문제를 해결 할 수 있을 것 키 매니지먼트 기능을 통한 LAN to LAN, 혹은 Dial-up to LAN의 신뢰성을 확보 할 수 있을 것 VPN 표준 프로토콜인 IPSec(IP Security)를 지원 할 것 VPN의 구현방식에 따른 분류 VPN 전용 서버 VPN 클라이언트(Client)와 내부 네트워크 보안이 필요한 곳에 독립적으로 설치 됨 대역폭이 증가하고, 고속통신이 필요 함 확장성이 용이하며 비용이 많이 듬 라우터(

[컴퓨터구조] 캐시 메모리(CACHE)와 매핑 방법 & 일관성

이미지
[컴퓨터구조] 캐시 메모리(CACHE)와 매핑 방법 & 일관성 Cache Memory 빠른 CPU, 느린 Memory 프로그램을 CPU 혼자서 수행하는 것이 아니라 메모리도 같이 참여한다. 용량은 Cache < Main Memory < HDD 순이며 속도는 역순이다. CPU와 메인 메모리 사이에 캐시 메모리를 두어 CPU가 요청하는 것은 빠른 캐시 메모리에서 바로 전달을 해주면서 속도를 개선하였다. 그리고 HDD의 일부를 가상메모리로 사용해서 메모리의 부족한 용량을 확장시켜주며 가격은 메인 메모리 전체를 캐시로 바꾸는 것, 메인메모리의 용량을 키우는 것보다 저렴한 고객 맞춤 서비스가 완성되었다. 이러한 성능 개선의 비결은 참조의 지역성 이라는 성질 덕분에 발생했다. Mapping Function 주소가 다르잖아? CPU가 메모리 주소를 사용하여 메모리로 데이터를 받으려고 한다. 하지만 CPU가 쓰는 주소는 가상 메모리 주소로 메모리 입장에서는 외계어이다. 따라서 중간에 메모리 관리 장치(MMU)가 가운데에서 변역을 하여 메모리가 알아 먹을 수 있는 물리 주소로 변환해 준다. 그리고 캐시에 해당 주소에 대한 데이터가 있는지 확인을 하는데 캐시에 데이터를 저장하는 방식에 따라 물리주소를 다르게 해석할 수 있다. 직접 매핑(Direct Mapping) 우선 메인 메모리에서 캐시로 데이터를 저장할 때 참조의 지역성 때문에 한번 퍼낼 때 인접한 곳까지 한꺼번에 캐시 메모리에 저장하고 이 때 단위를 블록(Block)이라고 한다. 그리고 캐쉬는 메인 메모리의 몇번째 블록인지를 알려주는 태그(Tag) 도 함께 저장한다. 메모리 주소 중에 가장 뒷부분(붉은색)은 블럭의 크기 를 의미한다. 지금 블럭의 크기가 4이므로 뒤의 두자리를 사용하여 블럭의 크기를 표현하였다. 그리고 이 영역은 블럭에 몇 번째에 원하는 데이터가 있는지 보여주는 지표가 되어 준다. 만일 위의

[정보보안] IDS(Intrusion Detection System)란?

[정보보안] IDS(Intrusion Detection System)란? 침입탐지시스템(IDS)의 개념 및 기능 이 시스템은 네트워크를 통해 네트워크 자원을 오용하거나, 또는 비정상적인 행위로 시스템의 데이터를 훼손하고 서비스를 불능 상태로 만드는 외부 침입을 탐지 함으로써, 이에 대응하는 보안 시스템이다. 침입 탐지 시스템(IDS)의 유형 침입 탐지 시스템은 침입탐지 대상에 따라 네트워크 기반 IDS와 호스트 기반 IDS로 나뉜다. 침입 탐지 방식에 따라 오용 탐지(Misuse) 방식과 비정상 행위 탐지(Anomaly) 방식으로 구분할 수 있다. 침입탐지 대상에 따른 분류 네트워크 기반 IDS (NIDS) 네트워크 패킷을 분석하여 침입을 탐지한다. 별도의 호스트에 설치된다. 네트워크 침입에 실시간 탐지가 가능하지만 트로이 목마 등은 탐지하기 어렵다. 호스트 기반 IDS (HIDS) 로그 분석과 프로세스 모니터링을 통한 침입을 탐지한다. 기존 서버에 설치되어 별도의 호스트가 필요 없다. 네트워크 공격에 대한 실시간 탐지는 어렵지만 트로이목마 등의 탐지가 가능하다. 침입탐지 방식에 따른 분류 오용 탐지(Misuse) 침입 특징을 시그니처로 정의하고 패턴 매칭을 통하여 판단한다. 새로운 침입 유형의 탐지가 불가능하므로 지속적인 시그니처의 업데이트가 필요하다. 비정상 행위 탐지(Anomaly) 각종 비정상적인 침입 행동을 통계자료를 기반으로 하여 판단한다. 알려지지 않은 공격 기법에 대응이 가능하다. 출처 https://m.blog.naver.com/PostView.nhn?blogId=kjh97852003&logNo=220607562363&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[전자계산기구조] 인터럽트(Interrupt)

이미지
[전자계산기구조] 인터럽트(Interrupt) 인터럽트는 컴퓨터 구조에서 CPU의 활동에 많은 영향을 끼치는 중요한 개념이다. 인터럽트 '끼어 들다', '중단시키다' 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다. 입출력 장치 제어기에서 중앙처리장치로 보내는 신호 인터럽트가 발생하면 운영체제가 제어권을 받는다. 인터럽트 사이클 CPU가 어떤 프로그램을 순차적으로 수행하는 도중에 외부로부터 인터럽트 요구가 들어오게 되면, CPU는 원래의 프로그램 수행을 중단하고 요구된 인터럽트를 처리해주기 위한 프로그램을 먼저 수행한다. 인터럽트에 대한 처리가 끝나면 CPU는 원래의 프로그램으로 복귀(return)하여 그 수행을 계속한다.  인터럽트의 종류 인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉠 수 있다. 외부 인터럽트(비동기) 전원 이상 인터럽트(Power fail interrupt) 말 그대로 정전, 파워 이상 등 기계 착오 인터럽트(Machine check interrupt) CPU의 기능적인 오류 외부 신호 인터럽트(External interrupt) 타이머에 의한 인터럽트 : Preemptive개념을 생각하면 된다. 자원이 할당된 시간이 다 끝난 경우 키보드로 인터럽트 키를 누른 경우 : 대표적으로 Control + Alt + Delete 비동기 인터럽트 외부장치로부터 인터럽트 요청이 있을 경우 : I/O인터럽트는 아니다. 다른 개념이다 입출력 인터럽트(I/O interrupt) 입출력장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우 입출력 데이터에 이상이 있는 경우 하드웨어적 인터럽트로 프린트나 디스크 저장 시에 입출력 채널 확인, 준비, 할당, 완료 시

[Big Data] 5V란?

이미지
[Big Data] 5V란? 기본적인 빅데이터의 특징으로는 크기(Volume), 속도(Velocity), 다양성(Variety) 를 들 수 있습니다. 크기 : 일반적으로 수십테라 바이트 혹은 수십 페타바이트 이상 규모 속도 : 대용량의 데이터를 빠르게 처리하고 분석할 수 있는 속성 다양성 : 정형, 비정형, 반정형 등의 다양한 종류의 데이터 여기서 우리는 2가지 V를 더할 수 있습니다. 가치(Value) 와 정확성(Veracity) 이죠 출처 https://m.blog.naver.com/PostView.nhn?blogId=qwerbk&logNo=221182773286&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[컴퓨터네트워크] TCP header 4계층 TCP 헤더 구조

이미지
[컴퓨터네트워크] TCP header 4계층 TCP 헤더 구조 전이중 방식 Source Port address 필드 (16 bit) 데이터를 생성한 애플리케이션에서 사용하는 포트번호를 나타낸다. Well - Known ports(0~1,023) : IANA에 의해 배정되고 제어된다. Registered port(1,024 ~ 49,151) : IANA에 의해 배정되거나 제어되지 않는다. 하지만 중복을 피하기 위해 IANA에 등록 될 수는 있다. Dynamic Ports(49,152 ~ 65,535) : IANA에 의해 제어되거나 등록되지 않는다. 어느 프로세스라도 사용할 수 있으며 임시 포트이다. Destination Port address 필드 (16 bit) 목적지 애플리케이션이 사용하는 포트 번호 Sequence number 필드 (32bit) 전송되는 데이터의 가상 회선을 통해 전송되는 데이터의 모든 바이트에는 고유한 일련 번호가 부여된다. 네트워크가 불안하여 패킷을 분실, 지연 등으로 세그먼트 순서가 어긋나게 도착 할 수 있기 때문에 sequence number를 이용하여 데이터를 올바른 순서로 재배열할 수 있다. Acknowledgement number 필드 (32bit) 다음 세그먼트를 수신할 준비가 되었다는 사실을 알린다. 모든 데이터가 수신되었다는 것을 나타내는 묵시적인 확인 메시지 역할을 한다. 성공적으로 수신한 데이터의 마지막 바이트에 부여된 순서 번호 Header Length 필드 (4bit) 헤드의 길이를 32비트 단위로 나타낸다. 최소 필드 값은 5 최대 값은 15 Reserved 필드 (6bit) 차후의 사용을 위해서 예약된 6비트 필드이다. Control Flags 필드 (6bit) 6개의 서로 다른 제어 비트 또는 플래그를 나타낸다. 동시에 여러 개의 비트가 1로 설

[컴퓨터네트워크] ATM이란?

[컴퓨터네트워크] ATM이란? Asynchronous Transfer Model 회선 교환의 실시간 전송 방식 + 패킷 교환의 유연성을 결합시킨 기술 회선 교환 : 주소 형식, 신호 방식 등은 회선 교환 방식으로 처리 패킷 교환 : 일정한 길이의 셀(Cell) 처리는 패킷 교환으로 처리 특징 비동기식 시분할 다중화를 사용하는 특수한 형태의 패킷형 전달 방식 B-ISDN의 핵심 기술이다. 음성, 그래픽, 데이터, 비디오 영상 등의 다양한 서비스들을 지원할 수 있도록 설계되었다. 셀의 경로는 S/W적으로 할당되므로 고속 으로 처리한다. 모든 정보를 셀(Cell)이라고 하는 작고 고정된 크기의 패킷 으로 전송한다. 셀 송수신 데이터에 동일한 53바이트 길이의 셀(Cell)을 사용한다. 5바이트의 헤더와 48바이트 길이의 페이로드(데이터)로 구성된 53바이트의 길이로 되어있다. 셀들은 디지털 ATM 망을 통해 매우 빠른 속도로 처리가 되어 600Mps가 넘는 속도로 전송이 가능하다. 셀 릴레이는 음성, 데이터, 동영상 등의 정보를 셀이라는 작은 고정 길이의 패킷으로 분할하여 전송하는 방식이다. 출처 https://www.youtube.com/watch?v=00C8UMebw_M

[컴퓨터네트워크] DHCP란?

이미지
[컴퓨터네트워크] DHCP란? Dynamic Host Configuration Protocol 인터넷에 연결된 호스트의 도메인 이름을 IP 주소로 변환 DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동으로 제공해주는 프로토콜을 말합니다. DHCP에 대한 표준은 RFC문서에 정의되어 있으며, DHCP는 네트워크에 사용되는 IP주소를  DHCP서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용하게 됩니다. DHCP지원 클라이언트는 네트워크 부팅과정에서 DHCP서버에 IP주소를 요청하고 이를 얻을 수 있습니다. 네트워크안의 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미하고, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜입니다. DHCP의 장점 PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능하고, IP를 자동으로 할당해주기 때문에 IP 충돌을 막을 수 있습니다. DHCP의 단점 DHCP서버에 의존되기 때문에 서버가 다운되면 IP 할당이 제대로 이루어지지 않습니다. DHCP의 구성 DHCP 서버  DHCP 서버는 네트워크 인터페이스를 위해서 IP주소를 가지고 있는 서버에서 실행되는 프로그램으로 일정한 범위의 IP주소를 다른 클라이언트에게 할당하여 자동으로 설정하게 해주는 역할을 합니다. DHCP서버는 클라이언트에게 할당된 IP주소를 변경없이 유지해 줄 수 있습니다. DHCP 클라이언트 클라이언트들은 시스템이 시작하면 DHCP서버에 자신의 시스템을 위한 IP 주소를 요청하고, DHCP 서버로부터 IP주소를 부여 받으면 TCP/IP 설정은 초기화되고 다른 호스트와 TCP/IP를 사용해서 통신을 할 수 있게 됩니다. 즉, 서버에게 IP를 할당 받으면 TCP/IP통신을 할 수 있습니다. 출처

[운영체제] 벨레이디의 모순 (Beladys's Anomaly)

이미지
[운영체제] 벨레이디의 모순 (Beladys's Anomaly) 간단히 말해서 페이지 교체 알고리즘 중의 하나인 FIFO(First In First Out)에서, 원래 페이지 프레임의 개수를 늘리면 page fault발생이 감소 해야 하나, 오히려 늘어나는 경우 ex) 출처 https://m.blog.naver.com/PostView.nhn?blogId=cookatrice&logNo=50037414550&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[운영체제] TLB(Translation Lookaside Buffer)

이미지
[운영체제] TLB(Translation Lookaside Buffer) 가상메모리의 주소 전환을 효율적으로 하기 위해 일종의 page table의 cache(캐시)라고 볼 수 있다. 페이지 테이블은 메인 메모리에 저장되기 때문에, 프로그램에 의한 모든 메모리 접근은 최소 두 번 필요하게 된다. 1. 실제 주소를 얻기 위한 메모리 주소 접근 (cpu로 부터 생성된 가상주소를 메모리에 있는 page table을 통해 실제주소로 변환시킨다.) 2. 데이터를 얻기 위한 또 한번의 접근 TLB는 페이지 테이블에 있는 가상 주소 - 실제 주소 사상의 부분집합만을 포함한다. TLB는 가상기억장치에 있어서, 사용한 후 바로 가상 기억 페이지 번호(가상 주소)와 거기에 대응하는 실페이지 번호(실주소)를 격납해 주는 일종의 캐시 기억 장치이다. 명령이 발생하는 가상 주소의 사용에 있어 지역성을 이용하여 대부분의 가상 주소에서 실주소로의 변환 을 TLB를 참조하는것만으로 수행할 수 있다. 출처 https://m.blog.naver.com/PostView.nhn?blogId=xowns4817&logNo=221182043348&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[Database] 트리거(Trigger) & 주장(Assertion)

[Database] 트리거(Trigger) & 주장(Assertion) 트리거(Trigger) 명시된 이벤트가 발생시 DBMS가 자동 수행하는 프로시져 무결성 을 위한 도구 테이블 정의 시 표현할 수 없는 기업 비즈니스 규칙을 시행하는 역할 이벤트-조건-동작(ECA) 규칙이라고도 부름 ex) 책임주부임날짜는 입사년도 이후 주장(Assertion) SQL 표준에 포함되어 있으나, 대부분의 상용 DBMS에서 아직 제공하지 않음 트리거는 제약 조건 위배하는 경우 동작하나, 주장은 제약조건이 위배되는 연산을 수행하지 못하게 함 트리거보다 좀 더 일반적인 무결성 제약 조건 일반적으로 두 개 이상의 테이블에 영향을 미치는 제약조건을 명시하는데 사용함 ex) 책임주부임날짜는 입사년도 이후 출처 https://howtofish.tistory.com/entry/DB-%ED%8A%B8%EB%A6%AC%EA%B1%B0Trigger%EC%99%80-%EC%A3%BC%EC%9E%A5Assertion

[소프트웨어공학] RAD모형(Rapid Application Development)

이미지
[소프트웨어공학] RAD모형(Rapid Application Development) 초고속 어플리케이션 개발 모형, RAD기법 모형 짧은 개발주기(60~90일) 동안 소프트웨어를 개발하기 위한 순차적 프로세스 모델로서 빠른 개발을 위해 CASE도구 사용 특징 2~3개월 정도의 짧은 기간으로 기술적 위험이 적고 빠른 개발이 요구될 때 적합 CASE 도구 및 재사용 가능한 Library 등을 활용하여 신속히 개발 프로토타입 사용 및 개발주기동안 내내 사용자의 적극적인 참여 필요 통합 단계가 필요한 대규모 시스템 개발에는 부적합 출처 https://bongbonge.tistory.com/entry/RAD%EB%AA%A8%ED%98%95Rapid-Application-Development