코루틴(Coroutine)의 개념과 동작 원리
·
유니티(Unity)/이론 정리
Unity에서 사용하는 코루틴(Coroutine)은 코드의 흐름을 제어할 수 있도록 해주는 기능입니다. 코루틴을 사용하면 특정 이벤트가 발생하거나 시간이 경과한 뒤에 실행될 작업을 손쉽게 처리할 수 있습니다. 오늘은 이 코루틴에 대한 개념과 원리에 대해 자세히 알아보도록 하겠습니다. 코루틴(Coroutine)이란? 함수를 호출하면 시작과 끝이 1 프레임 안에 수행됩니다. 하지만 게임을 개발하다 보면 특정 로직이 몇 프레임(혹은 몇 초) 동안 수행되어야 하는 순간들이 많습니다. 그래서 코루틴이라는 새로운 개념이 나타나게 되었습니다. 코루틴: 특정 작업(Task)를 다수의 프레임으로 분산시킬 수 있는 실행 기능"Coroutine"은 "Co"와 "Routine"이 합쳐진 말로, 루틴(함수)들이 서로 협력하면서..
[Unity Korea] 객체 지향 설계 원칙 (SOLID)
·
유니티(Unity)/이론 정리
게임 시스템을 설계하기 위해선 유지보수성과 확장성이 좋은 코드를 작성하는 것이 중요합니다. 이를 위해 객체 지향 설계 원칙인 SOLID 원칙을 따르면 코드 구조를 더 명확하고 효율적으로 설계할 수 있습니다. 이번 포스트에서는 SOLID 원칙이 무엇인지, Unity Korea 채널을 통해 정리하고 관련 정보를 알아보겠습니다. GoF & SOLID GoF: "Gang of Four"의 약자로, 디자인 패턴에서 중요한 역할을 수행한 4명의 개발자를 의미합니다. 이들은 객체 지향 소프트웨어 설계를 체계화하여 디자인 패턴을 정리하였으며, 디자인 패턴은 크게 생성 패턴, 구조 패턴, 행동 패턴으로 나뉩니다. 총 23개의 패턴이 존재하는데, 추후에 게임 개발에서 자주 사용되는 패턴에 대해 따로 정리하도록 하겠습니다...
[기능] GetComponent 최적화 (CachedMonobehaviour.cs)
·
유니티(Unity)/기능 구현
Unity 개발을 하다 보면 GetComponent를 빈번하게 사용하게 됩니다. 하지만 매번 호출할 때마다 성능 오버헤드가 발생한다는 사실을 알고 계신가요? 이번 포스팅에서는 GetComponent를 캐싱하여 최적화하는 방법과 그 중요성에 대해 다뤄보겠습니다. 캐싱(Caching)이란?캐싱: 자주 사용되는 데이터를 미리 저장해두고, 이후에 해당 데이터에 빠르게 접근할 수 있도록 하는 기술 캐싱은 성능을 크게 향싱시키는 중요한 최적화 기법 중 하나 특히 GetComponent와 같은 무거운 연산을 반복적으로 호출하는 상황에서 매우 유용함 이제 캐싱으로 GetCompoent를 최적화하는 방법을 살펴보자   CachedMonobehaviourusing System;using System.Collections...
[이론] 비트마스크(Bitmask)
·
IT/알고리즘
비트마스크는 주어진 문제를 효율적으로 해결하기 위한 강력한 도구로, 특히 상태를 간단하게 표현하거나 부분 집합을 다룰 때 유용하다. 코딩 테스트에서는 메모리와 연산 시간을 절약할 수 있어 많이 활용되며, 비트 연산의 기본 개념만 이해해도 문제 해결에 큰 도움이 된다. 이번 글에서는 비트마스크의 기본 원리와 활용 예제를 통해 그 응용법을 살펴보겠다.  비트마스크(Bitmask)란? 비트 마스크: 비트 연산을 사용하여 데이터를 효율적으로 처리하는 기법 보통 상태를 표현하거나 조작할 때 유용하며, 특히 메모리를 절약하고 빠른 계산을 필요로 하는 상황에 유용하다. 이진수의 각 비트를 이용하여 여러 상태를 표현한다. 그래서 int형 value 하나로 32개의 Boolean 상태를 표현할 수 있다.이러한 구조를 통..
[이론] DFS & BFS (+ 트리 순회)
·
IT/알고리즘
깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS)은 그래프 탐색에서 자주 사용되는 기본적인 알고리즘이다.DFS는 한 노드의 끝까지 탐색한 후 돌아오는 방식이고, BFS는 가까운 노드부터 차례로 탐색해 나가는 방식이다.오늘은 DFS와 BFS의 동작 원리와 구현 방법, 그리고 각각의 특징과 활용 사례를 알아보도록 하겠다. 깊이 우선 탐색(DFS) DFS: 가능한 깊은 경로를 따라 탐색하다가 더 이상 깊이 갈 수 없을 때 뒤로 돌아가서 다른 경로를 찾는 방식stack 혹은 재귀 함수를 통해 구현할 수 있다.  DFS 응용탐색 경로: 미로 찾기 및 퍼즐 문제 등에서 특정 목표 지점에 도달하는 경로 탐색백트래킹 문제: 조합, 순열 생성 등에서 백트래킹 기법과 함께 활용사이클 탐지: 그래프에서 사이클이 존재하는지..