전체 글 137

[컴퓨터 네트워크] 3.2 multiplexing and demultiplexing

우리는 현재 3장, Transport layer에 대해 배우고 있다. Transport layer의 주 기능은 end-to-end 통신을 제공한다는 것이다. 이 계층은 송신 호스트와 수신 호스트 간의 데이터 전송에 필요한 신뢰성, 효율성 및 보완성을 제공한다. Transport 라는 이름때문에 Network layer와 헷갈리기 쉬운데 데이터를 보낼 곳에 대한 주소를 이용하여 전송에 도움을 주는 것은 Network layer에서 담당하고 Transport layer에서는 데이터 전송에 있어서 사용자의 요청(Message)를 담아 원하는 Socket으로 전송해주고 신뢰성을 부여한다고 생각해보면 좋을 것 같다. 3.1부터 3.4까지는 빠르고 짧게 진도가 나갈 것이다.. 하지만 만약에 이 글을 보고 있는 미래..

[컴퓨터 네트워크] 3.1 Transport-Layer services

1장에선 인터넷을 배우며 5계층에 대해 알아보았고 2장부터는 이 5계층에 대해 한 챕터씩 자세하게 배운다. 2장에서는 application layer에 대해 배웠고 3장에서는 Transport layer에 대해 배운다 ~~ 서로 다른 호스트들은 locgical한 communication을 주고 받는다. 물론 이 communication 과정은 그냥 일어나는 것이 아니다! Transport layer를 통해 소통을 할 수 있다. 이 계층에서는 송신자와 수신자 사이에 연결을 설정하고 데이터 전송을 관리하는 프로토콜을 구현하기 때문이다. 조금 더 쉽게 다가가보자면 사용자의 요청(Message)를 담아 원하는 소켓으로 전송해주는 계층이다. 2장 마지막에서 배웠던 socket programming에 대해서 생각해..

[ 컴퓨터 네트워크 ] 3장에 들어가기 앞서

1장에서는 인터넷, 네트워크에 대해서 알아보았다. 2장에서는 애플리케이션 계층에 대해 알아보았다. 열심히 적었지만 내 머리에는 남아있는 지식이 얼마 없다. 또한 이전 포스팅들은 필자의 온전한 이해를 기반으로 작성하였다기보다 필자가 들은 정보를 나열한 식이었기에 다소 부족한 면이 있다고 생각하였다. 그래서 3장에 들어가기에 앞서 네트워크 학습과 관련한 포스팅을 하나 더 작성해보려고 한다. 우리가 지금까지 배워왔던 과정을 조금 더 세분화하여 살펴보고 흐름을 이해해보자 ! 1장부터 어떤 내용을 배웠는지 복기해보자 우선 인터넷에 대한 정의를 했다. 기술적인 부분과 서비스적인 부분으로 크게 정의한 뒤 인터넷에서 필수적으로 사용되는 프로토콜에 대한 설명을 해주었다. 이어서 인터넷/네트워크의 구성요소인 네트워크 ed..

[Python/백준] 2467번: 용액 - 투포인터

1. 문제 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 2. 해결방법 정렬해서 주어진 배열, 처음과 마지막에서 점점 좁혀들어오는 방식으로 푸는 문제인 점을 고려하여 투포인터 알고리즘을 사용하니 쉽게 해결되었다 ! 우선 투포인터까지 구현은 어렵지 않았으나 .. '특성값이 0에 가까운 용액을 만들어내는 두 용액의 특성값'을 구하는 것이 난관이었다. 생각을 해보잣 ... ! (1) 새로운 리스트를 만들어서 투포인터로 돌면서 (start,end)값을 넣어준 뒤 min(abs(start,end의 두용액의 특성..

[알고리즘]/BOJ 2023.04.06

[소프트웨어공학] Chapter 5 - (1) . 프로젝트 관리

프로젝트 계획 (Project Planning) 프로젝트 계획의 주요 목표 : 복잡한 기술 프로젝트를 제어, 추적 및 모니터링하기 위한 실용적인 전략을 수립하는 것 프로젝트가 시작되기 전 소프트웨어 팀은 다음과 같은 것들을 평가해야함 수행할 작업의 양 필요한 자원 시작부터 끝까지 소요될 시간 Task Set Establish project scope - 프로젝트 범위 정하기 Determine feasibility - 타당성 검토 Analyze risks - 리스크(위험성) 분석 Risk 분석은 항상 고려되어야한다! Define required resources - 필요한 자원 정하기 필요한 인력 자원을 결정하라 재사용가능한 소프트웨어를 정의하라 환경 자원을 정의하라 Estimate cost and eff..

[운영체제/OS] 1. OS란 ?

OS를 위한 컴퓨터구조 기초에 대해서는 5편까지 작성하도록 하고 OS에 대해 본격적인 설명을 해보도록 하겠다 ! What is Operating System? , OS란 ? 운영체제는 컴퓨터 시스템의 핵심 요소 중 하나로 여러 애플리케이션과 사용자들의 요구를 조율하여 공정하고 효율적인 방식으로 시스템 자원을 관리한다. 운영체제는 사용자와 하드웨어 간의 인터페이스 역할을 한다. → 운영체제는 소프트웨어 개발자가 하드웨어를 직접 다루는 것보다 간편한 가상 머신을 구현한다. 운영체제 하드웨어에서 구현되는 표준 서비스(인터페이스)를 제공한다. → 프로세스, CPU스케쥴링, 메모리 관리, 파일 시스템, 네트워킹 등이 포함 운영체제는 여러 애플리케이션과 사용자(멀티 프로세스)를 공정하고 효율적인 방식으로 조율한다...

[소프트웨어 공학] Chapter 4. 프로젝트 관리 개념(2) - 프로젝트 측정

* 교수님께서 소프트웨어 공학은 크게 엔지니어링 / 매니지먼트 (관리) 부분으로 나뉜다고 한다! 이러한 관점에서 이 과목을 잘 살펴보도록 해보자 ~~ 프로젝트 측정 (Measure) 1. 프로젝트 측정이 필요한 이유 1. To charactive : 측정하여 대상을 특징화하고 분류하는 것 2. To evaluate : 측정하여 대상을 평가하고 판단 3. To predict : 측정하여 대상의 미래 상황을 예측하는 것 4. To improve : 측정하여 대상을 개선하는 것 * (세분화된) 측정 이유 - access the status of an ongoing project 진행중인 프로젝트의 상황 평가 → 프로젝트가 계획대로 진행되고 있는지에 대한 여부 확인을 포함 - track potential ris..

[ 컴퓨터 네트워크 ] 2.8 socket programming with UDP and TCP

1. Socket Programming goal : 소켓을 이용하여 통신하는 클라이언트- 서버 애플리케이션을 구축하는 방법을 배울 것이다 ! 소켓 : 데이터를 주고 받기 위한 인터페이스를 제공하는 소프트웨어 모듈이며 클라이언트와 서버 간의 데이터 전송을 안정적으로 처리할 수 있도록 도와준다 ! '문'과 같은 역할을 한다고 생각하면 된다 ~ 애플리케이션 프로세스와 end-end간 전송 프로토콜 사이의 문! ex. 소켓은 클라이언트와 서버 간의 통신을 가능하게 해주는 문과 같은 역할을 한다. 이 문을 통해 애플리케이션 프로세스와 종단 (end-end) 간 전송 프로토콜 간에 데이터를 주고받을 수 있다. 소켓은 통신을 위한 인터페이스를 제공하며, 클라이언트와 서버 간의 데이터 전송을 안정적으로 처리할 수 있도..

[ 컴퓨터 네트워크 ] 2.7 vedio streaming and content distribution networks

이번 장에서는 비디오 스트리밍과 CDN (Content Distribution Networks)에 대해 알아본다 ! 유튜브, 넷플릭스 등 우리가 자주 사용하는 플랫폼에서 어떻게 수많은 영상들을 수많은 사용자에게 제공하는지에 대해 알아보자 ~ ! 1. Video Streaming and CDNs - context 우선 기술적으로 배우기에 앞서 비디오 스트리밍과 CDN의 배경, 문맥에 대해 알아보자! 비디오 트래픽 : 인터넷 대역폭의 주 사용자인 video traffic → 넷플릭스, 유튜브는 각각 ISP트래픽의 37%, 16%를 사용한다 ! 하지만 문제점이 있는데 .. 문제점1. ~1Billion에 달하는 수많은 사용자들에게 도달하는 방법 하나의 대형 비디오 서버는 이러한 트래픽을 감당할 수 없음 문제점 ..

[ 컴퓨터 네트워크 ] 2.6 P2P applications

제목에서 나오는 P2P : Peer to Peer 통신방식 .. 어딘가 익숙한데 .. ? 엇 ? 어디서 봤던 기억이 난다 ! 바로 2.1 network of application에서 ! client-server 방식과 P2P방식을 함께 봤었다 ~ 간략히 짚고 넘어가보자면 client-server , P2P 방식은 application의 아키텍쳐, 즉 애플리케이션의 설계도 혹은 청사진을 의미한다 ! *필자의 뇌가 아직 영어패치가 많이 적용되지 않아 아키텍쳐보단 설계도가 이해하기 쉬워 설계도라고 작성해보겠다. 클라이언트- 서버 설계도에서 클라이언트는 서비스를 요청하는 측, 서버는 이 요청을 받아 처리하고 결과를 클라이언트에게 반환하는 환경이다. 서버는 항상 켜져있고 여러 클라이언트들의 요청을 처리하고 응답을..