전체 글 75

내일배움캠프 82일차 TIL 최종 프로젝트 - CPU와 GPU

20250109 / Unity_6차  18주차 목요일  CPU와 GPU의 작동 방법 차이CPU와 GPU는 모두 컴퓨터의 연산 장치로, 데이터를 처리하고 작업을 수행하는 역할을 합니다. 그러나 설계 철학과 구조, 작동 방식에서 큰 차이가 있습니다. 이 차이는 각 장치가 특화된 작업에 대해 효율적으로 동작하도록 설계되었기 때문입니다.1. 설계 철학CPU (Central Processing Unit)목적: 범용 프로세서로, 모든 종류의 작업을 처리하도록 설계되었습니다.설계 초점: 빠르고 복잡한 순차적 작업 처리.소수의 강력한 코어를 사용하여 복잡한 계산이나 로직을 효율적으로 처리.작업 유형: 운영 체제 제어, 애플리케이션 실행, 명령어 해석 등.GPU (Graphics Processing Unit)목적: 특화..

카테고리 없음 2025.01.09

내일배움캠프 81일차 TIL 최종 프로젝트 - 쿼터니언(Quaternion)

20250108 / Unity_6차  18주차 수요일  https://docs.unity3d.com/kr/2021.1/Manual/class-Quaternion.html 중요 클래스 - Quaternion - Unity 매뉴얼Unity는 Quaternion 클래스를 사용하여 게임 오브젝트의 3차원 방향을 저장하고, 이를 통해 한 방향에서 다른 방향으로의 상대 회전을 설명합니다.docs.unity3d.com 1. 쿼터니언의 등장 배경쿼터니언은 3D 공간에서 회전을 표현하기 위해 수학자 윌리엄 로완 해밀턴(William Rowan Hamilton)이1843년에 개발했으며, 등장 배경은 다음과 같다.회전 표현의 한계: 3D 공간에서 오일러 각(Euler Angles)로 회전을 표현할 때, 깁스 현상(Gimba..

카테고리 없음 2025.01.09

내일배움캠프 80일차 TIL 최종 프로젝트 - 쿼리 식

20250107 / Unity_6차  18주차 화요일  쿼리 식은 LINQ(Language-Integrated Query)의 기능으로,데이터를 질의(Query)하고 조작하기 위해 사용된다. LINQ는 배열, 리스트, 데이터베이스, XML과 같은 다양한 데이터 소스에서 데이터를 처리할 수 있도록통합된 구문을 제공한다. 쿼리 식은 SQL과 유사한 방식으로 데이터를 다룰 수 있도록 설계되었으며,주요 키워드 from, where, select 등을 통해 데이터를 필터링하고 변환할 수 있다. var result = from item in collection where 조건식 select item; 쿼리 식 동작 원리from 키워드:데이터를 쿼리하기 위해 데이터를 순회(i..

카테고리 없음 2025.01.08

내일배움캠프 79일차 TIL 최종 프로젝트 - 튜플(Tuple)

20250106 / Unity_6차  18주차 월요일   튜플(Tuple)은 여러 개의 값을 하나의 데이터로 묶어서 반환하거나 전달할 때 사용하는 데이터 구조다. C#에서 제공하는 튜플은 값형식(Value Type)으로,다양한 데이터 타입의 값을 그룹으로 묶어 처리할 수 있다. class MaxHeap where T2 : IComparable{ private readonly List Heap = new(); public (T1 Data, T2 Value) Peek() { if (Count == 0) throw new InvalidOperationException("Heap is empty."); return heap[0]; } ..

카테고리 없음 2025.01.06

내일배움캠프 78일차 TIL 최종 프로젝트 - OnTriggerStay2D

20250103 / Unity_6차  17주차 금요일  OnTriggerEnter2D 로 Collider 이벤트를 처리하는 경우에이미 대상과 겹쳐 있으면 이벤트를 타지 않는 경우가 있다. 그럴 때 사용할 수 있는 방법이 몇가지 있다. 1. OnTriggerStay2D 이벤트 활용OnTriggerStay2D 이벤트는 Trigger Collider와 겹쳐 있는 동안 매 프레임 호출된다. 특정 타이밍에 확인이 필요하다면 이 이벤트를 활용할 수 있다. 2. Physics2D.Overlap 메서드 사용 Unity의 Physics2D 클래스에서 제공하는 OverlapCircle, OverlapBox, OverlapArea 등의 메서드를 사용하면특정 지점이나 영역 내에 다른 Collider가 존재하는지 검사할 수 있..

카테고리 없음 2025.01.06

내일배움캠프 77일차 TIL 최종 프로젝트 - Quickselect (Partitioning Algorithm)

20250102 / Unity_6차  17주차 목요일  n명의 NPC 중 특정 위치에서 가장 가까운 k명을 뽑기 위해 알고리즘을 찾던 중Quickselect라는 것을 알게 되었다. Quickselect의 작동 원리피벗(Pivot) 선택:리스트에서 임의의 값을 피벗으로 선택합니다.파티셔닝(Partitioning):피벗보다 작은 값은 왼쪽으로, 피벗보다 큰 값은 오른쪽으로 이동합니다.QuickSort와 동일한 방식으로 동작합니다.필요한 부분만 탐색:피벗의 위치를 기준으로, 필요한 부분(상위 N개 또는 k번째 요소가 포함된 부분)만 재귀적으로 탐색합니다.예를 들어, 피벗이 상위 N개의 범위에 속하면, 더 이상의 재귀 호출 없이 종료합니다.결과 반환:특정 k번째 요소 또는 상위 N개 요소를 반환합니다.  보통의..

카테고리 없음 2025.01.02

내일배움캠프 76일차 TIL 최종 프로젝트 - 그리드 맵

20241231 / Unity_6차  17주차 화요일  이제와서 알게 된 것이지만, 맵의 구조물을 배치할 때 Kingdom : New Lands는 그리드를 기반으로일정 간격의 셀 내에 배치하는 것 같다. 맵의 생성이나 연속적으로 밝기가 변하는 영역 등을 어떻게 처리하나 고민했는데,그리드 기반으로 셀의 데이터에 포함시키면 된다는 것을 알았다. 그리드 기반의 데이터 구조 설계맵을 2D 또는 3D 그리드로 나누고, 각 셀에 대한 상태 정보를 저장합니다.셀의 속성셀은 아래와 같은 정보를 가질 수 있습니다:위치 정보: 셀의 월드 좌표 또는 그리드 좌표.밝기 상태: 예를 들어, 0~1 사이의 값으로 어두움/밝음을 표현.환경 타입: 숲, 평야, 물 등.업데이트 상태: 나무가 베어졌거나, 플레이어가 지나갔을 때 변화 ..

카테고리 없음 2025.01.02

내일배움캠프 75일차 TIL 최종 프로젝트 - 태스크(Task), 잡 시스템(Job System)

20241230 / Unity_6차  17주차 월요일  태스크(Task)태스크는 .NET에서 제공하는 비동기 프로그래밍의 일부로, Unity에서도 사용할 수 있다.태스크는 주로 비동기 작업이나 I/O 처리에서 유용하다.특징.NET의 Task를 사용하여 작업을 비동기로 실행.Unity 메인 스레드 외부에서 작업을 수행하고, 작업이 끝난 후 다시 메인 스레드에서 결과를 처리할 수 있음.비동기 작업에 적합하지만, Unity API와의 호환성이 제한적.장점코드 가독성: async/await 키워드를 사용해 비동기 작업을 이해하기 쉽게 작성 가능.멀티스레드 지원: 복잡한 연산을 비동기로 처리 가능.제한사항Unity API는 메인 스레드에서만 접근 가능.높은 성능 병렬 작업에는 적합하지 않을 수 있음. 잡 시스템(..

카테고리 없음 2024.12.31

내일배움캠프 74일차 TIL 최종 프로젝트 - 해시셋(HashSet)

20241227 / Unity_6차  16주차 금요일  해시셋(HashSet)은 데이터를 저장할 때 해시 테이블을 사용하여효율적으로 데이터를 관리하는 Collection이다. 이는 중복되지 않은 요소들을 저장하고 빠른 검색, 삽입, 삭제를 지원하는 특징을 가지고 있다. 주로 프로그래밍에서 사용되는 데이터 구조 중 하나이며,자주 사용하는 언어(Java, Python, C++ 등)에 내장된 자료구조 라이브러리로 제공된다. C#에서는 HashSet 클래스가 .NET Framework의System.Collections.Generic 네임스페이스에 포함되어 있다.  주요 메서드 및 속성Add(T item)요소를 추가합니다. 중복된 항목은 추가되지 않습니다.Remove(T item)지정된 요소를 제거합니다.Cont..

카테고리 없음 2024.12.30

내일배움캠프 73일차 TIL 최종 프로젝트 - 제네릭(Generic)

20241226 / Unity_6차  16주차 목요일   제네릭(Generic)은 데이터 타입을 일반화(generalize)하여 재사용 가능한 코드를 작성할 수 있게 하는 프로그래밍 기능입니다. 탄생 배경타입 안정성 부족 문제C# 1.0과 같은 초기 언어에서는 ArrayList나 Hashtable처럼 데이터 타입을 명시하지 않는 컬렉션이 사용됨.이러한 컬렉션은 컴파일러가 타입 검사를 하지 못하기 때문에, 런타임에 잘못된 타입으로 캐스팅하면 오류가 발생.박싱(Boxing)과 언박싱(Unboxing) 문제값 형식 데이터를 컬렉션에 추가할 때는 박싱, 컬렉션에서 꺼낼 때는 언박싱이 발생.이는 성능 저하와 메모리 사용 증가의 원인이 됨.주된 사용 목적타입 안정성 제공컴파일 시점에 데이터 타입을 지정해, 런타임 ..

카테고리 없음 2024.12.26