목록전체 글 (54)
Let's Girin!
1) 자료 구조 형태 중 트리 구조에 대한 설명트리(Tree) 구조는 계층적인 관계를 표현할 수 있는 자료 구조이다. 기본 단위는 노드이며, 각 노드는 데이터를 가지고 있고 다른 노드들과 연결될 수 있다. 가장 상위 노드를 루트 노드라고 하며, 그 아래에는 부모 노드와 자식 노드의 관계로 이어진다.가장 대표적인 트리 구조는 이진 트리로, 하나의 부모 노드가 최대 두 개의 자식 노드를 가지는 형태이다. 이진 트리는 탐색, 정렬, 계층적 구조 표현에 자주 사용된다. 2) 트리 구조를 사용하는 이유트리 구조는 탐색과 정렬에서 매우 효율적이기 때문에 사용된다. 특히 이진 탐색 트리(Binary Search Tree)는 정렬된 데이터를 다룰 때 탐색, 삽입, 삭제 연산의 시간 복잡도가 평균적으로 O(log N)..
🗂 목차1. 트리란?2. 이진 트리란?3. 이진 탐색 트리란?4. 힙이란?5. DFS vs BFS6. 시간 복잡도7. 게임 속 트리 구조1. 트리(Tree)란? 트리는 계층적 자료를 표현하기 좋은 비선형 자료구조이다. 트리는 루트(Root) 노드에서 시작하여 여러 자식 노드를 가질 수 있으며, 대표적인 예는 씬 그래프, UI 계층 구조, FSM(Finite State Machine) 등이 있다. • 노드(Node): 트리의 구성 요소 • 간선(Edge): 노드를 연결하는 선 • 루트(Root): 최상위 노드 • 리프(Leaf): 자식이 없는 노드class TreeNode { public int Value; public List Children = new();} 2. 이진 트리 (Binary..
🗂 목차 1. 동시성이란 2. 프로세스와 스레드의 개념 3. 멀티스레드와 메인 스레드 4. 스레드 전환과 컨텍스트 스위칭 5. 스레드 간 충돌과 동기화 문제 6. 동기화 도구: 뮤텍스, 모니터, 세마포어 7. Unity에서의 동시성 적용 사례 8. Unity C# 예제 코드9. 데드락1. 동시성이란?동시성이란, 여러 작업을 동시에 처리할 수 있는 능력을 말한다. 주의해야 할 점은 실제로 “동시에 실행된다”는 의미가 아니라, CPU가 아주 빠르게 작업을 전환하면서 동시에 실행되는 것처럼 보이도록 처리하는 기술이다. 게임에서는 다음과 같은 다양한 비동시 작업이 요구된다: • 사용자 입력 처리 • AI 계산 • 서버와의 통신 • 애니메이션 및 물리 연산 • 렌더링 처리 이러한 작업들을 효율적으로 병렬 처리하..
1. 포스트 프로세싱(Post Processing)이란?1-1. 정의포스트 프로세싱은 카메라에서 렌더링된 화면에 후처리 효과를 적용하여 그래픽 품질을 향상시키는 기술이다.1-2. 활용사실적인 그래픽 표현색감 조정 및 영화 같은 효과 적용2. 유니티에서 포스트 프로세싱 설정하기2-1. 포스트 프로세싱 설정 단계Post Process Volume 추가빈 GameObject를 생성한 후 Post Process Volume 컴포넌트를 추가한다.Is Global 옵션을 활성화하여 전체 씬에 효과를 적용할 수 있다.Post Process Layer 설정카메라에 Post Process Layer 컴포넌트를 추가한다.Layer 필드를 적절한 레이어로 설정한다.Post Processing Profile 생성Assets..

1. SRP(Scriptable Render Pipeline)렌더링 API를 커스터마이징하여 나만의 렌더링을 만들 수 있는 렌더 파이프라인으로, 사용자가 필요한 기능에 맞춰 렌더링을 확장하고 지정할 수 있다. HDRP(High Definition Render Pipeline, 고해상도 렌더 파이프라인), URP 등은 SRP 기반의 렌더 파이프라인이며 오픈소스로 되어있다. 2. URP(Universal Render Pipeline)빌트인 렌더 파이프라인(레거시 렌더 파이프라인)에 비해 다양한 성능적 이점을 지니고 있으며 스크립트로 제어가 가능한 구조이다. 기존 렌더링보다 성능 대비 고품질 그래픽을 표현할 수 있으며, 많은 플랫폼 사용의 호환성과 확장성을 지니고 있다. 3. Command Buffer다음 ..
1. 공유자원과 동기화1. 1 공유 자원(Shared Resource)공유 자원은 프로세스나 스레드가 함께 사용하는 자원을 의미하며, 메모리, 파일, 전역 변수, 입출력 장치 등이 해당된다. 여러 프로세스나 스레드가 동시에 공유 자원에 접근할 때, 적절한 관리가 없으면 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 동기화가 필요하다.1.2 임계 구역(Critical Section)공유 자원에 접근하는 코드 중, 동시에 실행하면 문제가 생길 수 있는 부분을 '임계 구역'이라고 부른다. 즉, 프로세스나 스레드가 동시에 임계 구역에 진입하여 자원에 접근하면 자원의 일관성이 깨지거나 예기치 않은 결과가 발생할 수 있다. 따라서 임계 구역에는 한 번에 하나의 프로세스나 스레드만 진입하도록 제어하는 것이 중..
1. 운영체제란?운영체제는 하드웨어를 작동시키는 프로그램으로, 다양한 하드웨어 자원을 프로그램에 배분하는 프로그램이다.CPU, 메모리, 보조기억장치 등 컴퓨터 부품에 접근하여 효율적으로 사용되도록 관리한다. 컴퓨터 부품들을 할당받아 응용 프로그램에게 자원을 할당한다. 응용 프로그램은 CPU, 메모리 등 자원에 직접 접근이 불가능하기 때문에 운영체제 코드를 실행하여 운영체제가 응용 프로그램 자원에 접근을 대신한다. 2. 운영체제의 핵심 기능2.1 자원 할당 및 관리자원(Resource, System Resource)이란 프로그램 실행에 마땅히 필요한 요소이다. 소프트웨어는 실행에 필요한 데이터 자원이고, 하드웨어는 실행에 필요한 부품이다. 2.1.1 CPU 스케줄링CPU 자원은 한정적이기 때문에 다른 ..
1. 컴퓨터가 이해하는 정보: 데이터와 명령어개발자가 작성한 소스 코드는 컴파일을 통해 컴퓨터가 이해할 수 있는 데이터와 명령어로 변환된 후에 실행된다. 컴퓨터가 이해하는 정보는 크게 두 가지로 나뉜다. 데이터는 숫자, 문자와 같은 실제 값을 의미하고, 명령어는 CPU가 처리할 작업을 지시하는 역할을 한다. 컴퓨터 내부에서 이 데이터와 명령어가 처리되는 과정을 이해하기 위해서는 컴퓨터의 주요 부품들에 대해 알아야 한다.2. 컴퓨터의 핵심 부품컴퓨터는 CPU, 메모리, 캐시 메모리, 보조기억장치, 입출력장치라는 핵심 부품으로 이루어져 있다. 이 부품들은 서로 상호작용하여 프로그램을 실행하고 데이터를 처리한다. 2.1 CPU(Central Processing Unit, 중앙처리장치)CPU(Central Pr..