강의 내용 정리(126)
-
컴퓨터 네트워크 (4), MAC/DLC
MAC/DLC 1. Ethernet 1) Ethernet이란? - 초고속 인터넷 서비스와 같은 것들을 유선으로 연결할 때 사용하는 것 - local area network를 위해 만들어짐, MAN을 만들 때에도 확장이 됨 - WAN에서도 이더넷이 사용됨 - 이더넷이라는 기술은 local area networks 중 하나였는데 MAN, WAN까지 확장됨 - 제록스라는 회사에서 만든 사적인 기술이었지만 1983년도에 IEEE에서 국제표준으로 인정함 -> 싸고 고속으로 끌어올리기에 굉장한 장점으로 전세계에서 가장 많이 사용하는 무선통신 기술이 됨 - 10BASE5로 10Mbit/s를 지원했는데 광섬유와 같은 고속의 선을 사용하면서 physical layer가 바뀌더라도 MAC layer가 바뀌지 않아도 되고,..
2022.04.28 -
컴퓨터 네트워크(3), DLC Layer
DLC Layer Physical layer에서 에러가 발생했을 때 어떻게 검출하고 복구할지에 대한 Layer 1. DLC Basic - MAC에도 에러 검출이 일부 있었지만 physical인 매체를 어떻게 복수의 노드들이 공유할지에 대한 내용이 주였음 - 에러 검출 및 복구를 제어하고 이를 에러 컨트롤이라 한다. - 프레이밍과 플로우 컨트롤, 에러 컨트롤 등의 기능을 한다. - 플로우 컨트롤(흐름 제어): 보내는자가 받는자의 상황을 고려해서 데이터를 주고 받는 흐름과 속도를 조절한다. - 프레이밍: 메세지를 만듦 1) Framing - 보내는 정보는 형태를 갖춰야하기에 layer3가 보낸 정보에 추가적으로 DLC가 넣어야할 정보를 넣고, 사이즈 등을 조절한다. - 일정 크기나 일정 기준으로 나눈다. -..
2022.04.28 -
컴퓨터 구조 (6), Single-cycle MIPS processor
Single-cycle MIPS processor - 모든 명령어가 한 사이클에서 패칭부터 동작을 다 하는 것을 의미해 single cycle이라고 한다. Instruction fetching 하버드 아키텍쳐: 명령어 메모리와 데이터를 로드하는 메모리를 분리해서 사용하는 것 - 분리되어있는 경우가 이해하기 쉽고, 구현하기도 쉽다. - 합쳐서 사용하는 경우에는 폰노이만 아키텍쳐이다. CPU는 무한히 반복되는 loop로 본다. R-type 명령어 - 어떤 instruction인지 알아야지 동작한다. - 오른쪽에 있는 내용이 register file이다. R-type 명령어가 들어왔을 때 동작 - PC값이 들어오면 명령에서 따라서 각각 레지스터별로 들어가고 RegWrite를 거친 뒤, ALU에서 특정 연산을 ..
2022.04.28 -
소프트웨어 공학 (9), Implementation
Design and Implementation 탑다운 방식이면 디자인과 구현을 명확하게 구현하곤 한다. 이를테면 설계는 한국에서 하되 구현은 외국에서 진행하는 등의 역할을 구분해 나눌 수 있다. 이러한 경우에는 디자인 단계에서 많은 문서가 나올 수 있다. 그러나 데브옵스와 인터넷 설계 등을 봤을 때 설계와 구현은 밀결합되어있는 경우가 많다. 소프트웨어에 대한 상세 설계와 구현은 프로그래밍 언어를 통해 만드는 과정을 의미한다. 결과적으로는 executable한 시스템을 만들 수 있다. 상세 설계와 구현은 매우 밀결합한 경우가 많다. 구현을 하다가 문제가 발생하는 경우에는 상세설계에 피드백을 줄 수도 있다. 둘은 매우 많이 인터렉션해야한다. 둘을 함께 진행하는 경우에는 일반적으로는 agile 기법이다. ag..
2022.04.25 -
소프트웨어 공학 (8), Architectural Design
Architectural Design 1. Architectural Design 앞서 정의한 시스템을 큰 틀에서 디자인 하는 것 0) 개요 - 성취하고자 하는 기능과 성능을 비롯해 보안, 신뢰성, 유지보수 가능성 등의 비기술적인 부분에 대한 뼈대를 결정하는 것 - 요구사항 엔지니어링의 다음 단계로 세부적인 사항을 디자인하기 이전 단계에 해당한다. 따라서 어떤 구성요소가 들어가는지, 구성요소들 간의 관계를 디자인하는 작업이 주 작업이 된다. - 시스템을 구성하는 구성요소와 구성요소간 상호작용이 정형화된 문서나 포맷의 결과물로 도출되어야한다. - 큰 틀을 디자인하는 것이기에 Agile 기법에서도 아키텍쳐에 대한 디자인은 중요하다. - 아키텍쳐를 잘못 만들면 incremental이 어려울 수 있다. 이를 실패..
2022.04.25 -
소프트웨어 공학 (7), System modeling
System modeling 개념적인 모델에서 상호작용하는 내용과, 세부적인 동작을, 시스템 구성 요소에 대한 정의하는 것 1. System modeling 1) System modeling이란? - 요구사항을 반영한 시스템을 모델링하는 것으로 다른 단계에서 사용할 수 있는 도구가 된다. - 상호작용도 반영한다. - 여러 기법들이 존재하며, 이는 요구사항을 구체적으로 풀어가기 위한 단계가 된다. - 각 모델의 특장점을 활용해서 적절하게 맞는 기법을 추출하는 것이 중요하다. - 구체적인 그림을 가지고 서로의 생각을 표현할 것이다. ex) UML(unified modeling language) - 방법 각각이 의미가 있으며 순차적으로 해도 의미있으며 requirement나 소프트웨어 디자인 등에서도 내용을 ..
2022.04.25