CS 29

렌더링 파이프라인

사진/정리 출처 렌더링 파이프라인 핵심 정리 및 hwp, pdf 파일[렌더링 파이프 라인] 🤯 해당 포스팅은 21년 9월에 정리한 자료이므로, 현재 최신 정보와 상이한 정보가 있을 수 있습니다. 문제가 되는 부분 혹은 현재와 상이한 정보가 있을 시, 댓글 남겨주시shung2.tistory.com 정의렌더링 파이프라인 (Rendering Pipeline)은 3D 모델 데이터를 우리가 보는 2D 화면(픽셀 이미지)으로 변환하는 전체 과정을 단계별로 처리하는 파이프라인(흐름)입니다.('그래픽스 파이프라인'이라고도 부릅니다.) 여기서 래스터(Raster)란, 이미지를 픽셀(점)의 집합으로 구성하여 화면에 표시하는 방식을 말합니다. 파이프라인의 종류파이프라인은 프로그래머의 제어 가능 여부에 따라 두 가지로 나뉩..

CS/그래픽스 2025.10.20

Call by Value / Call by Sharing / Call by Reference

함수에 인자를 전달할 때, 값을 통째로 복사할 것인지(Call by Value), 객체를 가리키는 주소 값만 복사할 것인지(Call by Sharing), 아니면 원본 변수의 별명을 넘길 것인지(Call by Reference)에 대한 방식의 차이입니다. Call by Value (값에 의한 호출)개념 : 함수에 인자를 전달할 때, 변수가 가진 값을 그대로 복사하여 전달하는 방식입니다.동작 : 함수 내부에서 사용되는 매개변수는 원본 변수와는 완전히 독립된 메모리 공간(스택에 새로 생성)을 가집니다.특징 :장점 (안정성) : 함수 내에서 매개변수의 값을 변경해도, 원본 변수의 값은 절대 변하지 않습니다. (Side Effect 없음)단점 (성능) : 만약 전달하는 데이터가 크기가 매우 큰 struct나 c..

CS/개념 2025.10.20

C# 매개변수 전달 ref의 유무

C#에서 참조 타입(Reference Type) 변수를 '그냥' 넘길 때와 'ref' 키워드를 붙여서 넘길 때의 차이점을 알고 있는지는 중요합니다. 'Class는 참조 타입이니까 어차피 참조로 전달되어서 ref를 쓰나 안 쓰나 똑같지 않나?'라고 오해하기 쉽지만, 결론부터 말하면 전혀 다릅니다. C#의 메모리 작동 방식(값 복사 vs. 참조 복사)과 매개변수 전달 메커니즘을 스택(Stack)과 힙(Heap) 메모리 관점에서 명확하게 이해해야 합니다. 사전 지식 : 값 타입(Value Type) vs 참조 타입(Reference Type)값 타입 (struct, int, float, bool)변수가 실제 데이터 값을 스택(Stack) 메모리에 직접 저장합니다.다른 변수에 할당하거나 메서드에 전달하면, 값이..

CS/C#_C++ 2025.10.19

자료구조

자료구조의 정의자료구조는 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것입니다. 단순히 데이터를 저장하는 것에서 그치지 않고, 데이터에 대한 접근, 검색, 삽입, 삭제 등의 연산을 효율적으로 수행할 수 있도록 설계되었습니다. 데이터의 특성과 사용 목적에 맞게 '정리정돈'하여 프로그램의 전반적인 성능을 향상시키는 것이 핵심입니다. 자료구조의 분류자료구조는 크게 선형 구조와 비선형 구조로 나뉩니다. 1. 선형 자료구조 (Linear Data Structures)데이터를 순차적으로 나열시킨 형태입니다.배열 (Array) : 같은 타입의 데이터들이 메모리 상에 연속적으로 저장되는 가장 기본적인 구조입니다. 인덱스(index)를 통해 데이터에 빠르게 접근(O(1))할 수 있다는 큰 장점이 있습니다. ..

CS/자료구조 2025.10.17

서버 구현/구조 방식

서버의 구현 방식'서버 프로그램을 어디서, 누가 실행할 것인가?'이 질문에 대한 답에 따라 게임의 비용, 안정성, 구조가 완전히 달라집니다. '실행 주체'를 결정하는 대표적인 세 가지 방식에는 데디케이티드, 리슨, P2P가 있습니다. 1. 데디케이티드 서버 (Dedicated Server)데디케이티드 서버는 이름 그대로 '게임 서비스만을 위해 존재하는 전용 서버'입니다. 게임 회사가 직접 고성능 컴퓨터(서버)를 구매하거나 클라우드 서비스를 임대하여 24시간 안정적으로 운영합니다. 이 서버는 플레이어로서 게임에 참여하지 않고, 오직 모든 클라이언트의 데이터를 처리하고 동기화하는 역할만 수행합니다.개념 : 게임만을 위한 독립된 고성능 전용 서버.장점:안정성 & 쾌적함 : 고성능 서버를 사용하므로 모든 플레이..

CS/서버 2025.10.16

TCP / UDP

프로토콜(Protocol)과 TCP/IP 4계층 모델프로토콜은 "컴퓨터 네트워크에서 장치들끼리 데이터를 원활하게 교환하기 위해 약속된 규칙과 절차의 집합"입니다.네트워크 통신은 하나의 규칙으로만 이루어지지 않고, 여러 개의 계층(Layer)으로 나뉘어 각자 역할에 맞는 프로토콜을 사용합니다.이 구조를 TCP/IP 4계층 모델이라 부릅니다. (UDP도 동일한 4계층을 사용하지만, TCP가 대표적이라 TCP/IP 4계층 모델이라 부릅니다.)네트워크 계층은 OSI 7계층이라는 정교한 이론 모델도 있지만, 이 글에서는 실제 인터넷의 표준인 TCP/IP 4계층을 기준으로 설명하겠습니다.4계층 (응용 계층) : HTTP, 게임 프로토콜 등 실제 프로그램의 통신 담당.3계층 (전송 계층) : 데이터 전송 방식을 결정..

CS/서버 2025.10.16

클라이언트와 서버

관계네트워크 통신을 한 문장으로 요약하면 ' 요청(Request)과 제공(Response) '입니다.클라이언트 (Client) : 서비스를 요청하는 쪽 서버 (Server) : 클라이언트의 요청에 응답하여 서비스를 제공하는 쪽 클라이언트(Client)클라이언트는 서버가 제공하는 서비스를 받아 사용하는 모든 장치 또는 프로그램을 의미합니다.클라이언트 장치 : 우리가 일상적으로 사용하는 데스크톱, 노트북, 스마트폰, 태블릿처럼 네트워크에 접속하는 물리적인 기기 자체를 말합니다.클라이언트 프로그램 : 사용자가 서버에 특정 서비스를 요청할 수 있도록 해주는 소프트웨어입니다. 대표적으로 웹 브라우저(크롬, 사파리)나 PC/모바일에 설치된 온라인 게임 클라이언트(실행 파일)가 있습니다. 서버(Server)서버는 클..

CS/서버 2025.10.16

Map / Set 비교

Map Setmap과 set은 모두 정렬된 상태로 데이터를 저장하는 연관 컨테이너(Associative Container)입니다. 둘 다 내부적으로는 레드-블랙 트리(Red-Black Tree)라는 균형 이진 탐색 트리로 구현되어 있어, 데이터를 항상 정렬된 상태로 유지하며 빠른 검색, 삽입, 삭제가 가능합니다. (평균 시간 복잡도: O(log N)) 하지만 둘 사이에는 데이터를 저장하는 방식에서 차이가 존재합니다. mapKey-Value 쌍으로 데이터를 저장합니다.마치 사전처럼, 키(Key)를 통해 값(Value)에 접근할 수 있습니다.Key는 중복될 수 없지만, Value는 중복이 가능합니다.map[key] = value 와 같은 형태로 데이터를 저장하고 조회하는 데 사용됩니다.사용 예시: 플레이어의..

CS/자료구조 2025.10.16

싱글톤 패턴

싱글톤 패턴의 개념싱글톤 패턴이란, 특정 클래스의 인스턴스(객체)가 프로그램 내에서 오직 하나만 생성되도록 보장하고, 어디서든 그 유일한 인스턴스에 접근할 수 있도록 하는 디자인 패턴입니다. 즉, 아무리 new 키워드를 여러 번 호출해도 새로운 객체가 생성되는 것이 아니라, 최초에 생성된 단 하나의 객체만을 계속해서 반환합니다. 게임 개발에서는 전역적으로 상태를 관리하거나 유일해야 하는 시스템에 주로 사용됩니다. 예를 들어, 게임의 모든 설정을 관리하는 GameSettings 클래스나, 사운드를 총괄하는 SoundManager, 플레이어의 데이터를 관리하는 PlayerDataManager 등이 싱글톤 패턴의 좋은 예시입니다. 싱글톤 패턴의 구현 핵심싱글톤 패턴을 구현하기 위한 핵심 아이디어는 다음과 같습..

CS/디자인 패턴 2025.10.15

디자인 패턴

디자인 패턴의 개념디자인 패턴(Design Pattern)이란 소프트웨어를 설계할 때 자주 발생하는 문제들을 해결하기 위한, 검증된 해결책들의 모음이라고 할 수 있습니다.우리가 요리를 할 때, 맛있는 김치찌개를 만들기 위한 '황금 레시피'가 있는 것처럼, 프로그래밍 세계에도 특정 문제를 효과적으로 해결하기 위한 '모범 답안' 혹은 '설계의 정석'이 존재합니다. 이것이 바로 디자인 패턴입니다.중요한 점은 디자인 패턴은 특정 언어나 기술에 종속된 완성된 코드가 아니라, 문제 해결을 위한 설계 사상(Concept) 이라는 점입니다. 따라서 개발자는 디자인 패턴을 이해하고, 현재 마주한 문제 상황에 맞게 적절히 변형하여 적용할 수 있어야 합니다. 디자인 패턴을 장점재사용성 및 확장성 향상 : 검증된 설계 구조를..

CS/디자인 패턴 2025.10.15