전체 글 147

📅08/15| TIL - C# 개발자의 C++ 적응기 - 파일 구조와 클래스의 기초

1. C++ 파일 구조: 헤더 파일(.h)과 소스 파일(.cpp)헤더 파일(.h): 클래스, 변수, 함수의 목차(선언)를 적는 파일 (#pragma once로 중복 로드 방지)소스 파일(.cpp): 실제 동작하는 알맹이(구현)를 작성하는 파일분리하는 이유:C++ 컴파일러는 위에서 아래로 읽기 때문에, 선언을 먼저 읽어 상호 참조 에러를 방지함수정된 파일만 재컴파일하여 대규모 프로젝트의 컴파일 시간을 크게 단축시킴2. 네이밍 규칙 & 파일명과 클래스명의 관계클래스명 규칙: 특수문자(언더바 _ 제외)나 마침표(.), 공백 사용 불가 / 첫 글자 숫자 시작 불가파일명 vs 클래스명: C#과 달리 C++에서는 파일명과 내부 클래스명이 달라도 문제없음팁: 탐색기 정렬을 위해 파일명에는 02_IntegerTypes..

📅08/12| TIL - Rider에서 GitHub으로

이전에는 Unity 엔진에서 변경사항들이 많아서, Rider에서만 커밋한다기보단GithubDesktop이나 Sourcetree / Fork같은 Git GUI Client(깃 GUI 클라이언트)를 사용했었다.C++문법강의를 들으며 스크립트작성만 하는거라 Rider에서 커밋 해보고 싶어서 몇가지를 알아보았는데, GitHub에 레포 만드는 것은 사진 처럼 설정하면 끄-읏! 이후 공부하고, 커밋상태확인 까지 완-료!

📅07/30| TIL - 프로그래밍 & 최적화 기법

1. 프로그래밍 & 최적화 기법 상세 설명 1) Data-Driven Architecture (데이터 기반 아키텍처)개념: 게임 시스템의 로직(코드)과 수치/기획 데이터(ScriptableObject, JSON, CSV 등)를 완전히 분리하여 설계하는 방식입니다.작동 원리: 아이템 속성, 몬스터 스탯, 퀘스트 정보 등을 코드에 하드코딩하지 않고 데이터 파일로 관리합니다. 스크립트는 이 데이터를 읽어와 동작만 수행합니다.최적화 및 장점:기획 변경이나 밸런스 패치 시 코드를 재컴파일할 필요가 없어 개발 생산성 및 빌드 속도가 향상됩니다.Unity의 ScriptableObject 등을 활용하면 동일 데이터를 여러 인스턴스가 공유하므로 메모리 절감 효과가 있습니다.2) Addressable Assets (어드레..

📅07/29| TIL - ERD(Entity Relationship Diagram)이란?

ERD(Entity Relationship Diagram)는데이터베이스를 설계하기 위해 데이터의 구조와 관계를 시각적으로 표현한 다이어그램입니다."어떤 데이터를 저장할지"와 "데이터끼리 어떻게 연결되는지"를 설계하는 도면이라고 생각하면 됩니다. ERD에서 자주 쓰는 용어 용어의미Entity테이블 (회원, 상품 등)Attribute컬럼 (이름, 이메일, 가격 등)Primary Key(PK)각 데이터를 구분하는 고유한 값Foreign Key(FK)다른 테이블의 PK를 참조하는 값Relationship테이블 간의 관계 게임 개발에서의 ERD 예시 Unity 게임이라면 다음처럼 설계할 수 있습니다. Player----------------PlayerIDNicknameLevelGoldInventory-------..

📅07/12| TIL - 구조 (초기설정, 구조설계)

1. 매니저(Manager)의 역할매니저는 객체 간의 의존성 관리, 리소스 관리, 이벤트 조율을 담당한다.비즈니스 로직이나 세부 데이터 처리, UI의 개별 동작은 담당하지 않는다.단일 책임 원칙(SRP)을 지키고, 중앙에서 필요한 기능만 관리하도록 설계하는 것이 중요하다.2. 프로젝트 구조 설계GameManager는 씬 전환과 전역 초기화를 담당한다.SceneInitializer는 씬이 로드된 후 해당 씬의 초기화와 실행 로직을 담당한다.UIManager와 BaseUI, PopupUI 구조를 통해 UI를 계층적으로 관리하는 방식을 학습했다.3. Update() 최적화Unity는 모든 MonoBehaviour의 Update()를 매 프레임 검사하기 때문에 사용하지 않는 Update()도 성능에 영향을 줄 ..

📅06/21| TIL - 최종 공부 순위 및 정리

뒤죽박죽 몇일째 어디서 부터 어떻게 정리 해나가야하며,앞으로 얼마나 정리를 하고개발을 진행해야할지 많이 고민했다. 스토리텔링을 하고, 기획을 하면서 느낀점과 앞으로의 목표설정을 재정리 하고자 한다. 우선순위자료구조알고리즘객체지향디자인 패턴Unity 최적화AddressablesObject PoolEditor Tool 제작AI 활용모바일 및 PC 출시 프로세스 이해1~2주C# 객체지향 복습인터페이스추상클래스SOLID3~4주상태머신디자인 패턴Event 시스템5~6주Object PoolProfiler최적화7~8주EditorWindow 제작Custom Inspector 제작포트폴리오 적용

📅05/14| TIL - MySQL

Unity ↔ MySQL 연동하는 구조Unity는 보안상 DB에 직접 접근하지 않고,API 서버를 통해 요청을 보냅니다.서버가 MySQL에 쿼리를 실행한 뒤 JSON으로 가공해Unity에 전달하면, Unity는 그 데이터를 UI에 표시하는 구조입니다.🎮 Unity (클라이언트)유저 입력, UI, 데이터 표시 담당캐릭터 정보 요청인벤토리 요청스킬 사용 요청🌐 서버 (API)Unity 요청을 받아서 DB에 대신 물어봐주는 중간 관리자C# / Node / Java 등으로 작성SQL 실행JSON 형태로 Unity에 응답🗄️ MySQL (DB)실제 데이터 저장소유저 정보아이템 정보스킬 정보로그 데이터🧪 ‘스킬 목록을 불러오는’ 실제 예시로 설명예를 들어:캐릭터의 스킬 목록을 불러온다 Unity → /get..

📅04/09| TIL - 시네머신 카메라 제어

📍시네머신 카메라 제어Virtual Camera를 생성하고, MainCamera에 Add Component : CinemachineBrain Empty Object : Follow Virtual Camera 생성 후 Add CinemachineVirtualCameraAdd Extension에서 Confiner2D를 클릭하면 자동으로 컴포넌트가 붙음새로운 Object를 생성해주고, Polygon Collider2D 컴포넌트를 추가해주고 Scene에서 조정 해당 오브젝트를 Bounding Shape2D에 추가해주면!폴리곤 콜라이더로 조정 해둔 카메라의 이동범위를 제어함. 💡생각보다 간단한 방법으로 카메라를 제어 할 수 있었다.

📅03/31| TIL - UniTask란?

📌 UniTaskC#에서 만든 라이브러리로,Unity에서 async / await를 코루틴보다 가볍고 안전하게 쓰게 해주는 도구 Async를 Coroutine처럼 가볍게 만든 것✨Coroutine vs C# vs TaskUniTask문법yieldawaitawait메모리가벼움무거움 ❌가벼움 ⭕Unity 친화매우 좋음애매함 ❌매우 좋음 ⭕GC 발생거의 없음발생 많음거의 없음씬 로딩 궁합좋음안 좋음좋음❤ 왜 C# Task를 Unity에서 잘 안 쓰냐await Task.Yield();메인 스레드 보장 애매GC 많이 발생모바일에서 프레임 드랍 🧡 UniTask는 이걸 해결한 것 await UniTask.Yield();메인 스레드 보장GC 거의 없음Coroutine 수준의 가벼움💛예시async UniTask ..

반응형