반응형
MVC 패턴 개념 정리역할책임Model• 데이터(상태) 보관 및 갱신 로직• 상태 변경 시 이벤트(옵저버) 발행View• 화면 렌더링·UI 표시 담당• Model 이벤트 구독 혹은 Controller 명령에 반응Controller• 사용자 입력·AI·타이머 등 이벤트 수신• Model 업데이트 및 View 제어 명령관심사 분리 : 데이터 로직 표현을 분리해 각 클래스가 단일 책임(SRP)을 갖도록함유닛테스트 가능 : Model과 Controller는 MonoBehaviour에 의존하지 않고 순수 클래스여서 테스트 작성 쉬움유연한 확장 : View를 바꿔도 Model-Controller 변경 없이 재사용 가능 간단 예시 (버튼 누르면 점수 +1)ScoreModel 생성 -> ScoreView 바인딩 -..
Unity Addressable Asset System 개요Unity Addressable Asset System(이하 Addressables)은 에셋을 번들로 묶어 관리하고, 런타임에 필요한 시점에 로드하여 메모리와 빌드 크기를 최적화하는 기능을 제공한다. 특히 대규모 프로젝트나 리소스가 많은 게임에서 에셋 로딩을 효율적으로 제어할 수 있도록 돕는다. Addressables 구성 요소 및 용어용어설명Address에셋을 고유하게 식별하는 문자열. Load/Instantiate 함수 호출 시 사용. 예: Enemy/OrcLabel에셋 또는 에셋 그룹에 붙이는 태그. 레이블 단위로 의존성 다운로드, 로드 가능. 예: enemy_prefabs, ui_texturesGroup빌드 및 로드 경로, 번들화 설정을 ..
-popupwindow + 커맨드라인 옵션 윈도우 경계(Border) 없이 창 크기만 조절해 띄우는 방법MyGame.exe -popupwindow -screen-fullscreen 0 -screen-width -screen-height -popupwindow : 테두리 없는 윈도우 모드-screen-fullscreen 0 : 풀스크린이 아닌 “윈도우 모드”-screen-width, -screen-height : 위에서 만든 가상 해상도 값 런타임에서 C# 코드로도 동일하게 설정할 수 있음// 합쳐진 해상도로 창 모드를 설정Screen.SetResolution(totalWidth, displayHeight, FullScreenMode.FullScreenWindow); 주의할 점실행 시 고정된 해..
1. 응집도 (Cohesion)정의하나의 모듈(클래스, 스크립트)이 단일 책임 혹은 밀접하게 관련된 기능들만을 모아 수행하는 정도특징높을수록 유지보수, 확장이 쉬워짐한 모듈의 변경이 내부 기능에만 영향을 주므로 부작용이 적음 예시/// /// 플레이어 체력 관리만 담당하는 클래스 (응집도 높음)/// 체력 계산에만 집중하고 화면표시나 사망 이펙트 등은 별도 모듈이 담당하도록 분리/// public class PlayerHealth : MonoBehaviour{ [SerializeField] private int maxHealth = 100; private int currentHealth; void Awake() { currentHealth = maxHealth; }..
SOLID 원칙코드의 유지보수성과 확장성을 극대화하기 위한 다섯 가지 디자인 원칙클래스나 모듈을 어떻게 나누고 구성해야 유지보수·확장성이 좋은지에 대한 가이드라인 1. 단일 책임 원칙 (Single Responsibility Principle, SRP) 정의하나의 클래스는 하나의 책임만 가진다.변경 이유도 하나여야 한다.특징클래스가 작아지고 명확해진다.버그 방생 시 원인 파악이 쉬워진다.사용 예시/// /// 플레이어 입력 처리와 이동 로직을 분리하여 각각 책임을 분리/// // 플레이어 입력만 처리하는 클래스public class PlayerInputHandler : MonoBehaviour{ public Vector2 MovementInput { get; private set; } void..