전체 글 12

[SOLID 원칙] DIP(의존 역전 원칙)

목차1. DIP란?2. 예시  2-1. DIP를 따르지 않은 코드 2-2. DIP를 따른 코드  DIP(Dependency Inversion Principle)란? DIP란 객체에서 어떤 클래스를 참조해서 사용해야하는 상황이 생긴다면, 그 클래스를 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스 or 인터페이스)로 참조하라는 원칙입니다. 예시DIP를 따르지 않은 코드#include using namespace std;class Warrior{public: void UseSkill() { cout DIP 위반 요소상위 모듈(Player)이 하위 모듈(Warrior)에 직접 의존합니다.Player 클래스는 Warrior라는 구체적인 클래스에 강하게 결합되어 있습니다.다른 직업(예: Wizard..

SOLID 원칙 2025.01.16

[SOLID 원칙] ISP(인터페이스 분리 원칙)

목차1. ISP란?2. 예시  2-1. ISP를 따르지 않은 코드 2-2. ISP를 따른 코드  ISP(Interface Segregation Principle)란?ISP란 사용자가 자신이 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 분리해야 한다는 원칙입니다.즉, 인터페이스는 사용자의 필요에 맞게 설계되어야 하며, 하나의 거대한 인터페이스를 여러 개의 작고 명확한 인터페이스로 나누어야 합니다.이를 통해 불필요한 의존성을 줄이고, 코드의 유지보수성과 재사용성을 높일 수 있습니다. 예시ISP를 따르지 않은 코드#include using namespace std;class Weapon abstract{public: virtual void Cut() = 0; virtual void Stab(..

SOLID 원칙 2025.01.16

[SOLID 원칙] LSP(리스코프 치환 원칙)

목차1. LSP란?2. 예시  2-1. LSP를 따르지 않은 코드 2-2. LSP를 따른 코드 LSP(Liskov Substitution Principle)란?LSP란 서브 타입은 반드시 기반 타입의 행동을 대체할 수 있어야 한다는 원칙입니다.즉, 프로그램에서 서브 클래스를 부모 클래스 타입으로 치환하더라도 프로그램의 동작에 이상이 없어야 합니다. 예시LSP를 따르지 않은 코드#include using namespace std;class PlayerCharacter abstract{public: virtual void SayHello() { cout  LSP 위반: PlayerCharacter 클래스의 자식 클래스인 NonPlayerCharacter가 부모 클래스의 행동(Contr..

SOLID 원칙 2025.01.16

[SOLID 원칙] OCP(개방 폐쇄 원칙)

목차 1. OCP란? 2. 예시  2-1. OCP를 따르지 않은 코드  2-2. OCP를 따른 코드 OCP(Open Closed Principle)란?OCP란 기존의 코드를 수정하지 않으면서 기능을 추가할 수 있도록 설계해야 한다는 원칙입니다.보통 OCP를 확장(기능 추가)에 대해서는 개방적이고, 변경(기능 수정)에 대해서는 폐쇄적이어야 한다는 의미로 정의합니다. 예시OCP를 따르지 않은 코드class Monster {public: string type; Monster(string type) { this->type = type; } void Attack() { if (type == "Zombie") { cout OC..

SOLID 원칙 2025.01.14

[SOLID 원칙] SRP(단일 책임 원칙)

목차1. SRP란?2. 예시 2-1. SRP를 따르지 않은 코드 2-2. SRP를 따른 코드 SRP(Single Responsibility Principle)란?SRP란 클래스는 단 하나의 책임(기능)을 가져야 한다는 원칙입니다.SRP에 따르면 클래스가 가진 책임에 관한 변경사항이 생겼을 때만 클래스를 변경(수정)을 해야 합니다. 예시SRP를 따르지 않은 코드#include using namespace std;class Player{public: // 체력 관련 변수 float maxHp; float currentHp; // 경험치 관련 변수 int currentExp; // 이동 관련 변수 float speed; void Damaged(float damage..

SOLID 원칙 2025.01.13

[Mirror Networking] SyncVar

Mirror Networking에서는 Attribute를 이용해 간편하게 Network Message를 주고 받을 수 있습니다. 만약 Network Message에 대해 알고 싶으시면 아래 글을 읽어 주세요.https://orakjaengi.tistory.com/entry/Mirror-Networking-Network-Message%EB%9E%80 [Mirror Networking] Network Message란?목차 1. Network Message란? 2. Network Message 사용법  2-1. NetworkMessage를 상속하는 구조체 혹은 클래스를 생성  2-2. 서버나 클라이언트에서 메시지를 등록  2-3. 메시지에 데이터를 담고 메시지를 발송  2orakjaengi.tistory.co..

Mirror Networking 2025.01.10

[Mirror Networking] Command와 Rpc

Mirror Networking에서는 Attribute를 이용해 간편하게 Network Message를 주고 받을 수 있습니다. 만약 Network Message에 대해 알고 싶으시면 아래 글을 읽어 주세요.https://orakjaengi.tistory.com/entry/Mirror-Networking-Network-Message%EB%9E%80 [Mirror Networking] Network Message란?목차 1. Network Message란? 2. Network Message 사용법 2-1. NetworkMessage를 상속하는 구조체 혹은 클래스를 생성 2-2. 서버나 클라이언트에서 메시지를 등록 2-3. 메시지에 데이터를 담고 메시지를 발송 2orakjaengi.tistory.co..

Mirror Networking 2025.01.10

[Mirror Networking] Network Message란?

목차 1. Network Message란? 2. Network Message 사용법  2-1. NetworkMessage를 상속하는 구조체 혹은 클래스를 생성  2-2. 서버나 클라이언트에서 메시지를 등록  2-3. 메시지에 데이터를 담고 메시지를 발송  2-4. 통합 Network Message란?Network Message는 Mirror Networking에서 클라이언트와 서버 간 데이터를 전송하기 위한 기본 단위입니다. 이를 통해 게임의 네트워크 시스템에서 특정 데이터를 주고받을 수 있습니다. 예를 들어, 플레이어의 입력, 상태 정보, 또는 게임 이벤트를 전달하는 데 사용됩니다. Network Message 사용법1. NetworkMessage를 상속하는 구조체 혹은 클래스를 생성메시지 크기가 작고..

Mirror Networking 2025.01.10

[Mirror Networking] 네트워크 객체의 서버 및 클라이언트 상태 관리

이 글은 Mirror Networking에서 네트워크 객체의 상태를 나타내는 속성과 서버와 클라이언트 간의 네트워크 객체 상태를 관리하는 주요 메서드에 대해 설명합니다.아래에서 설명하는 속성과 메서드들은 NetworkBehaviour 클래스를 상속한 클래스에서 사용해야 합니다. 목차1. 속성 2. 메서드  2-1. OnStartServer  2-2. OnStartClient  2-3. OnStopServer  2-4. OnStopClient  2-5. OnServerConnect  2-6. OnServerDisconnect  2-7. OnClientConnect  2-8. OnClientDisconnect 속성속성(bool)설명호스트에서의 값isServer현재 객체가 서버에서 실행 중일 때 true.tr..

Mirror Networking 2025.01.09

[Mirror Networking] Network Manager란?

Network Manager는 네트워크 기능의 기본적인 관리 도구입니다.서버, 클라이언트, 호스트의 시작 및 종료플레이어 오브젝트의 스폰 및 동기화게임의 네트워크 연결 흐름등을 관리 및 처리합니다. 목차 1. 구성요소   1-1. Configuration   1-2. Auto-Start Options   1-3. Scene Management   1-4. Network Info   1-5. Authentication   1-6. Player Object   1-7. Security   1-8. Snapshot Interpolation   1-9. Connection Quality   1-10. Debug   1-11. Registered Spawnable Prefabs 2. 스크립트 구성 요소Config..

Mirror Networking 2025.01.08