공부 학습 45

Rust 입문 정리

본 게시글은 Udemy "Rust : 실제 애플리케이션 구축을 통한 Rust 완벽 정복" 강의 내용을 정리한 글입니다.변수 선언, 반복분, 등 프로그래밍 기초 관련 문법은 없으니 참고바랍니다.Rust는 안전성, 속도, 그리고 병행성을 강조하는 시스템 프로그래밍 언어입니다. 최근 C/C++의 대체언어로 유명해지면, 배우고 싶은 언어로 뽑히는 언어이기도 합니다.Rust에서의 메모리 관리Rust가 다른 언어와 유별나게 눈에 띄는 특징은 "컴파일만 되면 메모리 문제가 발생하지 않는 언어"라는 점입니다. 물론 그만큼 빡센 문법을 준수해야 하지만 그 안전성과 성능때문에 많은 IT기업에서 차차 사용되고 있습니다.수동 메모리 관리스택 메모리스택 메모리는 함수 호출 시 지역 변수와 매개 변수를 저장하는 임시 메모리 공간..

공부 학습 2024.09.22

Rust 개발 환경 설정 및 빌드 방법

셋팅환경 기준Window10, 11설치 필요 프로그램Visual Studio(링크) 또는 Microsoft C++ Build Tools(링크)Visual Studio Code(링크)rustup-init.exe (링크)설치 순서Visual Studio의 경우 "C++를 사용한 데스크톱 개발 모듈을 체크하여 설치한다.다운로드 받은 rustup-init.exe를 "관리자 권한으로 실행"한다.설치확인 문구에 'Y'를 눌러 설치를 진행한다.rustc --version 와 cargo --version을 cmd에 입력해보며 정상 설치되었는지 확인한다.Visual Studio Code를 설치한다.Visual Studio Code를 실행하고 다음과 같은 extension을 설치한다.rust-analyzer : rust언..

공부 학습 2024.09.22

게임 서버 공부_네트워크

정보 출처 : 게임 서버 프로그래밍 교과서 (배현직 - 길벗출판사) 스트림 형식 A에서 B로 전송되는 데이터 흐름 사용자의 의도와는 다른게 보낸 메세지수와 받은 메세지 수가 다를수 있다. 사용자의 의도대로 데이터를 구분하기 위해 다음과 같은 방식을 사용하나 첫바이트에 전송될 데이터의 크기를 붙히고 데이터를 넣어 전송한다. 데이터를 보내고 구분자를 뒤에 붙힌다. 이때 데이터 내에 구분자와 동일한 부분이 없도록 주의해야한다. 메세지 형식 자체적으로 데이터롸 시작과 끝을 구별하는 방식 약속된 필드를 규정하여 서로의 명령을 주고 받는다. 만약 IP 패킷의 최대 크기(1300byte)를 넘는 메세지를 보내야한다면 크기제한에 맞추어 나눈다.(fragmentation) 게임에서 사용하는 메세지 형식 텍스트 형식 HT..

공부 학습 2023.02.28

게임 서버 공부_멀티스레드 2

정보 출처 : 게임 서버 프로그래밍 교과서 (배현직 - 길벗출판사) 게임서버에서 멀티 스레드를 이용하는 경우 서버 프로세스 당 이용되는 게임 정보가 많을때 (MMO게임) 서버 한대의 프로세스가 여러 CPU의 연상량을 동원해야할때 별도의 비동기 함수를 사용할수 없으며 디바이스 타임이 발생할때 서로 다른 게임 단위가 같은 메모리 공간에 업근해야할때 게임서버에서 상황에 따른 CPU개수와 스레드 생성 개수의 관계 서버가 CPU 연산만을 수행한다면 스레드와 CPU개수가 동일해도 효율적 서버가 DB나 외부 장치 연산이 많으면 디바이스 타임으로 인해 놀동안 배정될 여유 스레드를 확보하는게 효율적 이벤트 쓰레드를 깨우는 장치 : Rest = 0 , Set = 1 window 기준 이벤트에는 자동 스레드와 수동 스레드가..

공부 학습 2023.02.28

게임 서버 공부_멀티스레드 프로그래밍 1

정보 출처 : 게임 서버 프로그래밍 교과서 (배현직 - 길벗출판사) 프로그램 & 프로세스 프로그램 : 코드와 데이터의 덩어리 프로세스 : 프로그램의 명령어가 실행되는 상태 힙+스택스레드 스레드 : 프로게스 내에서 여러개 존재할수 있으며 명령어를 실행하는 단뒤 같은 메모리 공간을 사용할 수 있음 스레드마다 스택을 가짐스레드의 필요성 오래걸리는 일을 여럿이 해야할때 긴처리를 진행할 동한 작은 단위의 일을 해야할때 CPU를 모두 활용해야할 때스레드 운용 훈령 Context Switch : CPU가 A스레드에서 B스레드로 작업을 변경하는 과정 스레드 실행 시간보다 컨텍스트 스위치 시간이 길다면 작업이 비효율적임 모든 스레드의 수가 CPU 코어 개수보다 많으면 상관없다 Runnable 스레드 구가 CPU 코어 개..

공부 학습 2023.02.28

Docker 명령어 정리

1. Docker 설치 방법 (Cent OS) $sudo yum install -y yum-utils $sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo ---------------Docker에 repo 공간 확보 $sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin $yum list docker-ce --showduplicates | sort -r //도커 프로그램을 이루는 버전들을 내림차순으로 정렬했을때 가장 상위의 버전 확인 ex) docker-ce.x86_64 3:20.10.9-3.el7 doc..

공부 학습 2022.12.17

디자인 패턴 - 관계형 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 관계형 패턴 브릿지 패턴 구현부와 추상층을 분리하여 각각 독립적으로 변형, 확장이 가능한 패턴 기능과 구현을 별도의 클래스에서 구현 책임 연쇄 패턴 요청을 처리할 수 있는 처리 객체의 집합으로 만들어 결합을 느슨하게 만들기 위한 디자인 패턴 요청을 처리할 수 있는 객체를 찾을 수 있을때까지 집합에 요청을 전달하는 패턴 발신자와 수신자를 ..

공부 학습 2022.11.08

디자인 패턴 - 구조 디자인 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 구조 디자인 패턴 데코레이터 패턴 객체에 추가요소를 동적으로 더하는 패턴 서브클래스를 이용하는 것보다 유연하게 기능을 확장할수 있음 클래스가 너무 많아지거나 객체를 알아보기 어려울수 있음 프록시 패턴 특정 객체에 대한 접근을 제어하는 별도의 대리 객체를 제공하는 패턴 다른 객체와 이어지는 인터페이스 역할을 제공할수 있는 패턴 컴포지트 패..

공부 학습 2022.11.08

디자인 패턴 - 행동 디자인 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 행동 디자인 패턴 템플릿 메소드 패턴 추상 클래스를 통해 알고리즘의 골격을 정의하고 구체적인 알고리즘을 부분적으로 다시 정의 할수 있도록 제공하는 패턴 일부 구현으로 인해 알고리즘의 구조를 변경하지 않아도 된다. 상태 패턴 현재 상태에 따라 적절한 객체로 연결해주는 별도의 상태기계를 만들어 호출해주는 패턴 GoF 디자인 패턴 중 한개이다..

공부 학습 2022.11.08

디자인 패턴 - 생성 디자인 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 생성 디자인 패턴 싱글톤 패턴 특정 클래스에 객체 인스턴스가 한개만 만들어지도록 하는 패턴 전역변수와 마찬가지로 어디서든지 액세스가 가능하다 추상 팩토리 패턴 서브 클래스에 의존하지않고 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공하는 패턴 특정 인스턴스를 만들기위한 일련의 클래스를 포함한 Factory 추..

공부 학습 2022.11.08