본문 바로가기

전체 글

(231)
[CP] Analysis and Optimization 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 📁 Acyclic Code Optimization Acyclic Code란 Loop가 없는 코드를 말하며, 분석 및 최적화가 상대적으로 쉽다. Acyclic code optimization의 종류에는 두 가지가 있다. 1. Inner basic block opt. = Intra opt. = Local opt. 부분적인 관점(단일 block 내)에서, 즉 basic block 내부에서 비효율적인 코드를 구분해내고 좀 더 효율적인 코드로 개선하는 최적화를 말한다. 2. Inter-basic block opt. = Global opt. basic block 간의 관계를 분석하고 이를 고려하는 최적화를 말한다. 🌱 Inner Ba..
[CP] Control Flow Analysis/Optimization 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 컴파일러 후반부.에서 기계와 직접적으로 관련이 없지만 컴파일러 과정에서 빈번하게 일어나는 단계 중 하나가 최적화. Control flow analysis/optimization과 Dataflow analysis/optimization을 살펴보자. 📁 Optimization 최적화란 주어진 입력 프로그램과 의미적으로 동등하면서 좀 더 효율적인 코드로 바꾸는 작업을 말한다. 이때 효율적이라는 것은 실행시간이 짧고, 기억장소 요구량이 최소화되는 것이다. 최적화에서 핵심은 기본적으로 의미적으로 동등한 코드를 만드는 것. 이를 위해서 분석(analysis)를 이용한다. 분석을 통해 코드가 동등함이 보장된 이후에 계산의 횟수를 줄이거..
[SE] 소프트웨어 테스트 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 기본 용어 정리 소프트웨어 테스팅에 대해 알아보기 전에, 테스팅 과정에서 쓰이는 용어를 정리해보자. 1. 실패(failure) 실패란 시스템에 나타나는 용납될 수 없는 행위(unacceptable behavior)를 말한다. 실패는 명세와 실행 동작의 차이(?) 신뢰도(reliability)는 실패의 횟수를 기반으로 측정된다. 중요한 설계 목표는 매우 낮은 고장률과 높은 신뢰성을 달성하는 것이다. 2. 결함(defect) 하나 이상의 장애 발생에 기여하거나 잠재적으로 기여할 수 있는 시스템 측면의 결함(flaw)을 말한다. 특정 실패는 몇 가지 결함에 의해 유발될 수 있다.ㄷ 3. 오류(error) 결함을 발생하게 하..
[SE] 디자인 패턴 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 디자인 패턴 디자인 패턴이란 자주 접하는 설계 문제를 해결해주는 증명된 솔루션을 체계적으로 정리한 것을 말한다. 공통의 설계 목표를 만족시키는 클래스의 조합, 협력 알고리즘이다. 여러번의 시행착오를 거치면서 비슷한 역할의 클래스를 자주 사용하게 되는데, 이를 모아서 목록화한게 무? 전문가의 노하우를 모아놓은 것이므로 이를 적용하면 좋은 설계가 되도록 도와준다. 코드를 더 견고하게 한다던가, 재사용을 용이하게 한다. 디자인 패턴은 크게 기본 패턴, 생성 패턴, 구조 패턴, 행위 패턴으로 나눌 수 있다. 🌱 기본 패턴 객체지향 패턴의 관용구로, 흔히 쓰이는 패턴이다. 개념실체 패턴, 플레이어 역할 패턴, 위임 패턴, 계층..
[CN] WebRTC (Web Real-Time Communication) 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 WebRTC WebRTC란 Web Real-Time Communication의 약자로, 웹 어플리케이션 및 브라우저에서 별도의 플러그인이나 소프트웨어 없이 음성, 영상, 파일 등의 데이터를 공유 가능하게 하는 기술을 말한다. 화상통화 및 화상 공유등을 구현할 수 있는 오픈소스이며, W3C 표준의 JavaScript API로 제공된다. 다음과 같은 브라우저들에서 지원한다. Firefox, Opera, Chrome on desktop and Android native apps on iOS and Android 데이터 전달이 P2P 방식으로 작동하는데, P2P 통신을 위해서는 사용자의 IP주소를 알아야한다. 하지만 대부분의..
[CN] 멀티미디어 스트리밍 프로토콜(RTSP, RTMP, HLS) 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 인터넷 멀티미디어 스트리밍 프로토콜 인터넷에서 멀티미디어 스트리밍을 위해 사용되는 프로토콜은 여러가지가 있으며, 다음과 같이 분류할 수 있다. 1. 신호 SIP, SDP 등이 있다. 2. 오디오/비디오 전송 및 제어 메세지 전송 HTTP(HLS), RTP/RTMP, RTCP/RTMP/RTSP 등이 있다. 3. 스트리밍 프로토콜 RTMP, RTSP 등이 있다. 4. 실시간 프로토콜 WebRTC 등이 있다. 5. 전통적인 프로토콜 RTP/UDP, RTSP 등이 있다. 6. 웹 기반 프로토콜 RTMP, HLS 등이 있다. 📁 Real-Time Streaming Protocol (RTSP) IETF(Internet Engin..
[CN] 전자서명(Digital Signiture) 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 디지털 서명 디지털 서명이란 네트워크에서 송신자의 신원을 증명하는 방법으로, 송신자가 자신의 비밀키로 암호화한 메시지를 수신자가 송신자의 공용키로 해독하는 과정을 말한다. Bob이 본인의 개인키 K(B)- 로 메세지 m을 암호화하여 Alice에게 전달하면, 이 암호화된 메세지를 디지털 서명된 메세지라고 하며, Alice는 Bob의 공개키를 사용해서 복호화할 수 있다. 수신자인 Alice는 송신자인 Bob 외에 그 누구도 이 문서에 서명하지 않았음을 타인에게 증명할 수 있으며, 이런 점에서 검증 가능(verifiable)하고 위조 불가능(nonforgeable)한 특징을 지닌다. 이때, 메세지의 길이가 긴 경우 공개키로..
[CN] 방화벽(Firewall) 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 방화벽(Firewall) 방화벽이란, 어떤 기관의 내부망을 외부의 큰 인터넷으로부터 고립시켜, 특정 패킷들만 통과하게끔하는 네트워크 상의 벽을 말한다. 방화벽을 사용하는 이유는 다음과 같다. 서비스 거부 공격(Denial of Service attack, DoS)을 방어할 수 있다. - DoS : 웹사이트 또는 네트워크가 정상적으로 리소스를 처리할 수 없을 정도로 악성 트래픽을 대량으로 보내는 공격을 말한다. - SYN flooding : 일반적으로 TCP 통신을 위해서는 3way handshaking 과정에서 SYN 패킷을 전달해야한다. 이때 정상보다 훨씬 많은 수의 SYN 패킷을 전송하여 과도하게 통신을 시도함으로..