본문 바로가기

23년 2학기 학교공부

(82)
[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 패킷을 전송하여 과도하게 통신을 시도함으로..
[SE] 아키텍쳐 설계 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 아키텍처 설계과정 아키텍처 설계란 시스템의 기능적 요구사항을 구현하는 방법,재정적 제약 등 비기능적 요구사항에 의한 제약을 준수하는 방법, 좋은 품질의 일반적 원칙을 고수하는 방법을 찾기 위한 문제 해결 과정을 말한다. 설계 담당자는 설계 과정에서 작은 문제들에 직면하게 된다. 이러한 이슈들에는 해결책으로서 여러가지 설계 옵션이 존재하고, 설계 담당자는 이슈를 해결하기 위해 선택사항 중 가장 좋은 방안을 찾아 의사결정을 내려야 한다. 이때 설계에 대한 의사결정을 내리기 위해 소프트웨어 엔지니어가 사용할 지식 및 정보의 종류는 다음과 같다. 요구사항 정보 이전까지 만들어진 설계 작업 정보 가용한 기술 정보 소프트웨어 설..
[SE] 동적 모델링 : 시퀀스, 상태, 활동 다이어그램 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 동적모델링 동적모델링이란, 유스케이스로 표현한 시스템의 기능을 만족시키기 위해 시스템 내부의 구성요소들이 어떻게 상호작용하는지를 나타내는 모델링을 말한다. 시스템의 전반적인 부분보다는 가장 복잡하다고 판단되는 일부분을 동적 다이어그램으로 만든다. 일반적으로 동적모델을 표현할 때 UML 다이어그램을 사용하며, 동적 모델의 종류에는 시퀀스 다이어그램, 상태 다이어그램, 액티비티 다이어그램이 있다. 액티비티 다이어그램과 상태 다이어그램은 구현을 올바르게 하도록 도와준다. 동일한 이벤트에도 다양한 조건에 따라 인스턴스들이 다르게 반응할 때는 상태 다이어그램이 적합하다. 🌱 시퀀스 다이어그램 시퀀스 다이어그램은 시스템의 동적인..
[CN] HTTPS 실습 웹 서버에 https를 적용하기 위해 SSL 인증서를 발급받아보자. 1. openssl 설치 https://code.google.com/archive/p/openssl-for-windows/downloads Google Code Archive - Long-term storage for Google Code Project Hosting. code.google.com https://narup.tistory.com/239 [OpenSSL] SSL 인증서 발급 방법 요약 1. 개요 웹 서버에 https 적용을 위한 SSL 인증서를 발급 받는 방법을 정리했습니다. 2. openssl for windows 다운 https://code.google.com/archive/p/openssl-for-windows/down..