강의 내용 정리(126)
-
컴퓨터 네트워크 (8), Transport Layer 2
Transport Layer 2 1. Socket Programming 전통적인 TCP/IP, UDP/IP를 트랜스 포트로 삼고, IP layer를 네트워크 계층으로 삼는 통신 기술 1) Socket Programming이란? - 컴퓨터를 식별할 수 있는 IP 주소와 소프트웨어를 지칭할 수 있는 포트 번호를 활용하면 유니크한 소프트웨어를 찾아갈 수 있다. 특정 노드의 엔드포인트가 되는 것이 소켓이었다. - 소켓은 TCP/IP의 IP address와 포트번호에 해당하는 번호이다. 이를 활용해 특정 장치의 특정 프로그램을 찾아갈 수 있다. - 네트워크에서 각각 두개의 엔드포인트를 찾아갈 수 있다. 번호이기에 테이블 형태로 관리한다. - TCP를 돌리기 위한 컴퓨터 메모리 공간이나 프로세스 등이 만들어져서 네..
2022.05.24 -
컴퓨터 구조 (7), Pipelining
Pipelining - 매 사이클마다 단계를 진행할 수 있도록 하는 파이프라인 버퍼가 위와같이 존재한다. - MIPS는 최대 5단계가 존재해 이를 효율적으로 사용하고자 했다. Pipeline Hazards - 파이프라인을 사용했을 때 빠르게 처리하다보니 결과값이 달라질 수 있는 이슈가 존재한다. - 크게 Structural hazards, Data hazards, controal hazards가 있다. - Structural hazards는 메모리를 나눠서 해결할 수 있다. - Data hazards는 stall을 통해 이를 해결할 수 있지만 성능이 많이 떨어진다. 대표적인 Data hazards로는 Read After Write 문제가 발생할 수 있다. 데이터 포워딩을 해 write에 대해 데이터가 쓰..
2022.05.23 -
소프트웨어 공학 (10), Software Testing
Software Testing 1. Development testing 1) Program testing 큰 틀에서의 프로그램 테스트 (1) 주어진 input과 output에 대한 동작이 제대로 나오는지 확인라는 것이 목적 (2) 여러 이유로 프로그램이 비정상 동작을 할 때 어떤 상황에서 오류가 발생하는지 파악하고 이를 대응하는 것이 목적 - 테스트는 다양한 사람과 단계에 걸쳐서 테스트되고, 과거의 혹은 인위적으로 만든 데이터를 투입해서 동작하는지 확인하는 과정이 존재한다. 맨 마지막 단계에서 실 사용자 일부에게 테스트를 진행한다. - 테스트를 수행함으로서 잘못된 것에 대한 에러나 비정상적인 동작에 대한 예외상황 등, non-functional 부분 등에 대해서도 확인해야한다. - 무엇을 테스트하는지에 ..
2022.05.18 -
오픈소스 SW개발 (9) Virtualization
Virtualization 1. Virtualization 1) Virtualization란? 물리적인 컴퓨터는 한 대지만 여러 대의 컴퓨터가 독립적으로 동작할 수 있게끔 도와주는 것 (1) Virtualization의 수준 - 하드웨어에 가까울수록 저수준, 어플리케이션과 가까울수록 고수준이다. 이는 좋고 나쁘고의 의미가 아니라 하드웨어에 얼마나 가까운지에 대해 수준을 나눈 것이다. - 라이브러리는 호환성을 지켜주기 위한 것이 크다. (2) 특징 - 앞으로 하드웨어 레벨, OS 레벨 가상화에 대한 내용을 많이 사용할 것이다. 2) ISA - 이해하기 쉬운 용어를 작성하면 컴파일을 통해 ISA로 번역한다. - 게임은 하드웨어에 맞게 가상화를 해야한다. 이를 게임 에뮬레이터라고 하기도 한다. 3) Run-t..
2022.05.13 -
자료구조 구현 (1), Unsorted list
Unsorted list 구현 C++을 통해서 Unsorted list를 구현했다. 특히 ItemType, Unsorted list, Application을 세 파트로 나누어 코드를 구현했다. Unsorted list는 각 요소로서 ItemType을 포함하고 있고, Application에서 Unsorted list를 객체로 사용했다. 또한 각각의 파트는 헤더와 cpp 파일을 구분해 각각 구현했다. 해당 실습에서의 특징적인 점은 Unsorted list를 Linked list가 아닌 Array list로 구현했다. 이에 따라 데이터 삽입, 삭제하는 방법이 다르니 이를 고려하여 코드를 확인하면 좋을 것 같다. 1. ItemType 1) ItemType h #ifndef _ITEMTYPE_H #define _..
2022.05.11 -
확률 및 랜덤변수(6), 연속랜덤변수
연속랜덤변수 - 치역이 셀 수 없는 집합인 경우 ex) 랜덤변수의 값이 실수값을 가지는 경우 - 연속적인 실수 변수 값을 가지는 경우에는 연속 랜덤변수라고 함 - 연속랜덤변수의 특징: 연속랜덤변수 x가 특정 실수 값을 가질 확률은 0이다. 하지만 특정 구간에 대해서는 확률 질량 값이 존재한다. 연속랜덤변수 각각에 대응되는 확률을 다 합치면 1인데 연속랜덤변수는 셀 수 없기에 특정 실수값에 대응되는 확률이 0이되고 PMF의 값은 0이 된다. 예시 - 연속랜덤변수의 경우에는 부피, 공간 등에 대해 확률 밀도라는 지표로 확률 모델을 설정함 밀도와 부피를 곱한 것의 적분한 것이 질량이기에 이를 통해 확률을 알 수 있다. CDF - PMF는 이산랜덤변수에서만 사용가능하지만 CDF는 이산/연속랜덤변수 모두에서 사용..
2022.05.09