이번 포스팅에서는 화면 사이즈가 변경될 때마다 mapComponent의 사이즈와 위치를 변경시키는 작업을 하겠습니다(반응형 작업). 사이즈 측정을 위해서 GameSetting 이라는 클래스를 만들었습니다. GameSetting 클래스를 사용해서 DefenseGame 위
최근 Flutter 3.7 업데이트에서 Flutter의 성능이 개선되고 3D 렌더링 엔진이 추가 된다는 것을 알게됐습니다. 그래서 이번 기회에 Flutter Game을 더 공부해보고자 Flame을 사용해서 간단한 디펜스 게임을 만들어 보기로 했습니다. 코드가 꽤 길어질
3way handshake클라이언트가 서버에게 패킷을 보낸다.서버가 패킷을 받으면 클라이언트에게 요청을 받아들인다는 패킷을 보낸다.클라이언트가 요청 수락 패킷을 받는다면 다시 최종적으로 수락한다는 패킷을 서버에게 보낸다.데이터 송수신 과정TCP를 이용한 데이터 통신을
네트워크 상에서 데이터를 교환하기 위한 프로토콜이다. 데이터가 정확하게 전달될 것을 보장하지는 않는다.중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. 데이터의 정확성과 순차적인 전달을 위해 상위 프로토콜인 TCP에서 보장한다.
ARP 프로토콜은 같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC 주소를 IP주소를 이용해서 알아오는 프로토콜이다. 같은 네트워크 대역에서 통신을 한다 하더라도 데이터를 보내기 위해서는 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP 주소와 MAC주소가 모
3계층은 다른 네트워크 대역, 즉 멀리 떨어진 곳에 존재하는 네트워크가 어떻게 데이터를 전달할지 제어하는 일을 담당한다. 다시 말해 LAN과 LAN은 연결시켜준다. 이러기 위해서는 router와 같은 장비가 필요하다. IP주소를 사용할 때 IPv4, 서브넷 마스크, 기
현재의 인터넷에서 컴퓨터들이 정보를 주고받는데 쓰이는 통신규약(프로토콜)의 모음이다. 4개의 계층(네트워크 인터페이스, 네트워크, 전송, 응용)이 있다.7개의 계층(물리, 데이터 링크, 네트워크, 전송, 세션, 표형, 응용)이 있다.공통점 : 계층적 네트워크 모델, 계
노드들이 데이터를 공유할 수 있게 하는 디지털 전기 통신망의 하나다. 다시 말해 분산된 컴퓨터를 통신망으로 연결한 것이다. 여기서 노드란 네트워크에 속한 컴퓨터 또는 통신 장비를 의미한다. 컴퓨터는 네트워크라는 통신망에서 하나의 노드가 된다. 그리고 이 노드들이 연결된
FutureBundle이번 시간에는 FutureBundle이라는 api를 소개하겠습니다. FutureBundle은 여러 api를 호출할 때 비동기 처리를 좀 더 편리하게 해주는 Plugin입니다. 자바스크립트의 promise와 코루틴(코틀린)의 join과 유사한 방식으
Layout widget(LW) Visible widget(VW)flutter의 위젯은 Layout widget과 Visible widget으로 구분할 수 있다. LW은 Container, Center와 같은 위젯처럼 child나 children property가 있는
Skia 엔진은 C++로 개발된 오픈 소스 2D 그래픽 라이브러리입니다. Chrome, Android, IOS등의 제품들에서 그래픽 엔진의 역할을 하고 있습니다. 2005년에 구글에 인수되었고, 계속해서 Google의 후원을 받고 있습니다. 2005년 구글이 인수한 기
여러개의 프로세스들이 존재한다. 프로세스들은 서로 독립적으로 동작할 수 있다. 하지만 동시에 동일한 자원을 사용한다거나 할 때 문제가 발생할 수 있다.프로세스들이 서로 동작을 맞추면서 정보를 공유하는 것이다.프로세스들이 서로 어떻게 동작하고 있는지 모른체 각각 행동하는
Flutter를 이용하면 개발자들이 모든 플랫폼에 어플리케이션을 배포할 수 있습니다. 때문에 소프트웨어 회사와 개발자들은 Flutterf를 사용하는 것은 당연합니다. 전톡적으로 모바일 게임 개발자들은 네이티브와 유니티 둘 중 하나를 선택해야 했습니다. 네이티브는
작업(or 우선순위)별 별도의 ready queue를 가진다. 최초 배정된 queue를 벗어나지 못하고, 각각의 queue는 자신만의 스케줄링 기법을 사용한다. Queue사이에는 우선순위 기반으로 스케줄링을 사용한다. 우선순위가 높은 경우에는 응답이 빠르다는 장점이 있
Non-preemptive scheduling(한번 할당받으면 끝날 때 까지 실행)이며, 실행시간(burst time)이 가장은 프로세스를 먼저 처리한다. 장점으로는 평균 대기시간(Waiting Time)을 최소화 할 수 있다. 또한 프로세스 수를 최소화 할 수 있기
Non-preemptive scheduling도착시간을 기준으로 한다(ready queue 기준). 먼저 도착한 프로세스를 먼저 처리한다.자원을 효율적으로 사용할 수 있다. 들어온대로 순서대로 처리해서 내보내기 때문에 불필요한 스케줄링 오버헤드가 없고, cpu가 계속
시스템에는 여러개의 프로세스가 존재하는데 자원을 할당 할 프로세스를 선택하는 것을 스케줄링(Scheduling)이라 한다. 스케줄링의 목적은 시스템의 성능을 향상시키는 것이다. 이를 위해서는 자원관리를 해야하는데, 자원관리의 방법으로는 시간분할(time sharing)
예상치 못한, 외부에서 발생한 이벤트를 말한다.인터럽트의 종류I/O interrupt, Clock interrupt, Console interrupt, program check interrupt, Machine check interrupt, Inter-process i
작업(Job) / 프로그램(Program)Job이란 우리가 짠 프로그램과 이 프로그램이 처리하는 데이터를 묶어놓은 것이다. 심플하게 프로그램이라고 부르기도 한다. Job은 Disk에 보관된 상태이고 실행 요청 전의 상태이다.프로세스(Process)실행을 위해 시스템(커
운영체제 구조에서는 사용자영역과 커널 영역으로 나뉜다. 사용자 영역은 응용프로그램이, 커널영역은 커널이 있다.단일구조사용자 영역에 있는 여러 응용프로그램들은 시스템 호출 인터페이스를 이용해서 커널에게 작업을 요청한다. 커널에는 메모리 관리자, 프로세서 스케줄러, 파일