강의 내용 정리(126)
-
오픈소스 SW개발 (8) LINUX
LINUX 1. Linux란? 컴퓨터 하드웨어에 접근하고 어플리케이션에게 인터페이스를 제공하는 운영체제다. 1) Kernel OS의 핵심적인 역할을 수행하는 것 (1) 커널이란? - 컴퓨터 하드웨어 리소스를 추상화한다. 예를 들어 코어를 프로세스로 추상화하거나 디스크를 파일로 추상화한다. - 시스템 자원을 관리한다. - 보안기능을 제공하거나 하나의 어플리케이션이 다른 곳에 침범하지 않도록 도와주는 역할을 진행한다. - 어플리케이션의 요청에 응답하는 것을 한다. (2) 커널의 목표 - 성능이 좋아야한다. 커널의 성능이 느리면 어플리케이션이 느리게 동작한다. - 안정성이 높아야한다. 커널의 안정성이 낮으면 어플리케이션이 동작하지 않을 수 있다. 혹은 진행 중인 작업이 날라 갈수도 있다. - 기능이 다양해야한..
2022.05.06 -
오픈소스 SW개발 (7) Express
Express NodeJS를 사용하는 웹 프레임워크 0. 기본 개념 1) Request와 Response 브라우저가 요청을 보내고 서버에서 응답을 보낸다. 네이버는 페이지를 열자마자 여러가지 요청을 보낸다. 2) HTTP 메소드 GET: 리소스를 단순히 요청하는 것으로 브라우저 페이지를 여는 것도 이에 해당한다. POST: 새로운 리소스를 만드는 것 PUT: 기존에 존재하는 리소스를 수정하는 것 DELETE: 기존에 존재하는 리소스를 지우는 것 3) REST 브라우저에서 화면을 만들기 위함 뿐만이 아니라 클라이언트와 서버의 통신을 위해 HTTP 프로토콜로 사용하는 것으로 점차 확장되고 있다. 따라서 각 HTTP 메소드와 함께 대상이 되는 주소를 적어 요청한다. 이 방식을 RESTful 방식이라 한다. 대..
2022.05.03 -
자료구조 (6), Linked Structured
Linked Structured 1. Linked Structure을 활용한 Stack 1) ADT의 장점 내부적으로 사용하는 자료의 유형을 변경할 수 있다. - ADT의 장점은 사용된 구현 유형을 변경할 수 있다는 것이다. 2) (동적) 배열 구현 시 발생할 수 있는 문제점 자료구조의 최대 크기가 정해져있다. - Stack의 (동적) 배열 구현에는 단점이 존재한다. Stack의 최대 크기는 매개변수로 생성자에 전달한다. 이에 따라 배열의 크기를 초과하는 데이터를 삽입해야할 때는 문제가 발생할 수 있다. 따라서 데이터의 입력 예측이 어려운 경우나 예측을 벗어난 데이터가 입력된 경우에는 배열이나 동적배열을 사용할 때는 문제가 발생할 수 있다. 3) (동적) 배열 구현 시 문제 해결 링크드 리스트를 통해 사..
2022.05.02 -
컴퓨터 네트워크 (7), Transport layer 1
Transport layer 1 TCP/UDP를 중심으로 설명 1. Transport layer basic Process to Process Delivery - Physical layer와 Data link layer는 두 장치의 송수신을 배움 -> node to node 전송 - 통신 장비가 매우 많아지면 network layer로 했다. -> host to host 전송 1) Process-to-Process Delivery - 앞서 4계층인 경우에는 컴퓨터 안에 있고, 어느 프로그램 중에 어느 프로그램이 목적지인지, 소스인지 확인하는 작업을 주로 한다. 그림을 보면 컴퓨터 내부에 있는 프로그램 중 소스프로그램이 존재하고 오른쪽의 프로그램 중에 데스티네이션이 있다. - host 내부에 있는 어느 프로..
2022.04.28 -
컴퓨터 네트워크 (6), Network Layer 2
Network Layer 2 1. Softwarization "Software is eating up the world." - Mark Adreeseen - 전세계에서 주요한 소프트웨어를 장악하는 것은 리눅스이다. 리눅스 파운데이션은 전통적인 OSI 7 layer는 소프트웨어가 IO Abstraction and data path에, disaggregate는 네트워크 하드웨어와 커뮤니케이션과 해당된다. 어플리케이션 하나에 모든 것을 다하는 것이 과거의 접근이었다면 최근에는 하드웨어와 소프트웨어가 분리되어있음. 1계층부터 4계층까지 IO Abstraction and data path에 집어넣는다. 전통적인 OSI 7 layer 처럼 네트워크를 복잡하게 분리하는 것이 아니라 1 ~ 4계층을 밑에 깐다. 또한 ..
2022.04.28 -
컴퓨터 네트워크 (5), Network Layer 1
Network Layer 전달받은 패킷을 어디에 전달할지를 정하는 것이 네트워크 계층의 주요 역할이다. 1. Network layer 개념 0) 개요 host to host 커뮤니케이션 - 컴퓨터가 host가 되고, 많은 줄과 호스트가 존재할 때 본인이 원하는 호스트와 연결하는 3계층 - Alice는 어플리케이션 혹은 노트북 / Bob은 서버 - 라우터는 3계충까지 올라갈 수 있기에 1계층부터 3계층까지 쌓여있는 것을 확인할 수 있다. - 라우터: 메세지를 받아서 제대로된 것으로 전달하는 네트워크 장비로 받은 메세지를 어디로 보낼지 결정한다. - Alice -> R2 -> R5 -> R7 -> Bob의 과정을 통해 Alice에서 Bob에게 통신이가능하다. ex) 우체부 비유 1) Packetizing (..
2022.04.28