전체 글 97

[Window 11] 플러터(Flutter) 설치하기

가장 설치하기 어렵다는 플러터.성능은 좋지만 오류가 꽤 잘나는 내 노트북에서 설치를 해보겠다. 성공 기원...!!! 1. 플러터 SDK를 설치한다. https://docs.flutter.dev/get-started/install/windows/desktop Start building Flutter native desktop apps on WindowsConfigure your system to develop Flutter desktop apps on Windows.docs.flutter.dev위의 웹사이트에서 파란 박스를 눌러주면 된다. 시간이 좀 걸리니 기다릴 것! 2. C드라이브에 src 폴더를 만들어서 해당 폴더에 압축을 풀어준다.  폴더명이나 위치는 다르게 해도 가능하지만 혹시라도 잘못했다간 대참..

개발/Flutter 2024.08.20

[스프링 부트 개요] 스프링 부트 시작하기

스프링 부트란 자바 기반 웹 프로그램을 쉽게 만들 수 있도록 도와주는 도구이다. 스프링 부트를 사용하면 더 쉽고 빠르게 자바 웹 프로그램을 만들 수 있는 것이다. 새로운 도구라기 보다는 스프링 프레임워크를 개선해서 외부 라이브러리를 최적화하여 제공함으로서 개발자의 편의에 집중하였다. 스프링 부트 개발 환경을 설정하기 위해서는 JDK 설치, IDE 설치, 스프링 부트 프로젝트 만들기로 세 가지 단계를 거친다. 가장 기본인 헬로 월드!를 출력해보자 main method를 실행한 후 크롬 localhost:8080으로 접속하면 에러 페이지가 뜬다. 해당 URL은 스프링 부트 프로젝트가 실행된 서버에 접속하라는 의미를 가지고 있다. 에러 message가 뜨는 이유는 아직 웹 페이지를 만들지 않았기 때문이다. 헬..

혼잡제어의 관리(Congestion Control)

전에는 네트워크가 혼잡해짐에 따라 라우터 버퍼들의 오버플로우로부터 발생하는 손실에 대해 알아봤다. 이는 네트워크혼잡(특정한 트랜스포트 계층 세그먼트의 손실)의 증상은 다루지만, 네트워크 혼잡 원인(높은 전송률로 데이터를 전송하려는 너무나 많은 출발지)을 다루지 않는다. 이를 처리하기 위해 네트워크 혼잡을 일으키는 송신자를 억제하는 메커니즘이 필요하다. 혼잡의 원인과 비용 Scenario 1: 2개의 송신자와 무한 버퍼를 갖는 하나의 라우터 호스트 A의 애플리케이션이 λin바이트/초의 평균 전송률로 연결에 데이터를 보내고 있다고 가정하자. 첫 번째 시나리오에서 호스트 A가 라우터에게 제공하는 속도는 λin바이트/초이다. 호스트 B도 비슷한 방법으로 동작하며, λin바이트/초의 전송률로 많은 데이터를 전송한..

연결지향형 트랜스포트 : TCP

TCP 연결 TCP는 두 프로세스가 서로 '핸드셰이크'를 먼저 해야 하므로 연결지향형(connection-oriented)이다. 즉, 데이터 전송을 보장하는 파라미터들을 각자 설정하기 위한 사전 세그먼트들을 보내야 한다. 두 호스트 사이에 3개의 세그먼트가 보내지므로, 이 연결 설정 절차는 흔히 '세 방향' 핸드셰이크(three-way-handshake)라 부른다. TCP는 TCP 헤더와 클라이언트 데이터를 하나로 만들어 TCP 세그먼트를 형성한다. 세그먼트는 네트워크 계층에 전달되며, 네트워크 계층 IP 데이터그램 안에 각각 캡슐화된다. TCP 세그먼트 구조 TCP 세그먼트는 헤더 필드와 데이터 필드로 구성되어 있다. 데이터 필드는 애플리케이션 데이터를 담는다. MSS는 세그먼트의 데이터 필드의 크기를..

파이프라인된 신뢰적 데이터 전송 프로토콜

앞서 배운 rdt3.0은 기능적으로 정확한 프로토콜이다. 하지만 핵심적인 성능 문제는 전송-후-대기(stop-and-wait) 포로토콜이라는 점이다. 아래의 그림처럼 하나의 호스트는 미국의 서부에 위치하고 다른 하나는 동부에 위치한 두 종단 호스트의 가상의 경우를 고려하자. 두 종단 시스템 사이의 광속 왕복 전파 지연(RTT)은 대략 30msec이다. 이들이 1Gbps(초당 109비트) 전송률(R)을 가진 채널에 의해 연결되어 있다고 가정하자. ttrans = L/R = (8,000bits/packet) /(109bits/sec) = 8μsec 8μsec에서 마지막 비트가 송신 측의 채널로 들어가고 패킷은 15msec 동안 대륙을 횡단하고 t = RTT/2 + L/R = 15.008msec에서 수신 측으..

신뢰적인 데이터 전달 프로토콜의 구축 - rdt 1.0/2.0/2.1/2.2/3.0

rdt1.0: reliable transfer over a reliable channel • 이미 보내는 채널이 신뢰성이 있다. -> no bit error / no loss of packet 변화를 일으키는 이벤트(사건)는 변화를 표기하는 평행선 위에 나타낸다. 그리고 이벤트가 발생했을 떄 취해지는 액션(action, 행동)은 평행선 아래에 나타낸다. rdt의 송신 측은 rdt_send(data) 이벤트에 의해 상위 계층으로부터 데이터를 받아들이고 데이터를 포함한 패킷을 생성한다. 그리고 패킷을 채널로 송신한다. 실제로 rdt_send(data) 이벤트는 상위 계층 애플리케이션의 프로시저 호출에 의해 발생한다. rdt2.0: 비트 오류가 있는 채널 상에서의 신뢰적 데이터 전송 • 더 실질 모델은 패킷 ..