CS 20

Little Endia & BigEndian

바이트 저장 방식Big Endian가장 중요한 바이트를 가장 먼저 저장하는 방식큰 바이트 -> 작은 바이트 순서로 저장됨메모리 주소 (오름차순): `0x00 | 0x01 | 0x02 | 0x03`저장된 값: `12 34 56 78` 네트워크에서 주로 사용Little Endian가장 중요한 바이트를 가장 늦게 저장하는 방식작은바이트 -> 큰바이트 순서로 저장됨 메모리 주소 (오름차순): `0x00 | 0x01 | 0x02 | 0x03` 저장된 값: `78 56 34 12`윈도우에서 주로 사용

CS 2024.11.13

[DesignPattern] Service Mediator Pattern

서비스 소비자와 서비스 제공자간을 중개하여 서로 직접적인 커플링 없이 상호작용 할 수 있도록 한 패턴1. 서비스 인터페이스 정의public interface AudioService { void playSound();}2. 구체적인 서비스 구현public class MusicService : AudioService{ public void PlaySound() { }}public class BGMService : AudioService{ public void PlaySound(AudioClip audio) { }}3. 서비스 로케이터 구현public class ServiceLocator { private Dictionary serviceRegistry = new D..

CS/DesignPattern 2024.11.08

[DesignPattern] 컴포넌트 패턴

Component패턴을 왜 쓰는가?플랫포머 게임을 만든다고 가정하면,플레이어가 걷고 뛰고, 공격하고, 맞고, 맞아서 hp가 소모되고, 물리를 체크하고, 사운드를 틀어주고, 애니메이션을 실행하고....엄청나게 많은 행동을 Player 클래스하나에서 한다면, 엄청나게 길어지고 복잡해짐이를 해결하기 위한 패턴이 Component 패턴임유니티에서는 Monobehaviour를 상속받는 클래스는 컴포넌트로 사용할 수 있도록 되어 있음.Inspector창의 컴포넌트가 이 컴포넌트임.언제 쓸 것인가?한 클래스에서 너무 많은걸 하고 있을 때 역할을 나누기 위해서

CS/DesignPattern 2024.11.05

[Archtecture DesignPattern] MVP / MVC / MVVM 패턴

기본 용어Model데이터를 의미함데이터를 갖고 있고, 데이터에 접근하는 방법을 제공함View사용자에게 모델(데이터)를 보여주는 방법UI라고 생각 할 수 있음.MVC참고Controller사용자의 입력을 처리하고, 그에 따라 모델과 뷰를 업데이트 하는 역할MVC 패턴에서 각각의 책임Model데이터를 정의데이터에 접근 하는 방법 제공뷰나 컨트롤러를 알지 못함ViewUI모델에 의존하고 있으며, 모델의 변경사항을 사용자에게 보여줌Controller사용자의 입력을 처리입력에 의존하고 있음사용자 입력에 따라 모델을 업데이트시각적 표시에 관계 없이 모델을 만들고 테스트 할 수 있음.컨트롤러가 비대해질 수 있음MVP참고각각의 책임Model위와 동일ViewUI사용자 입력을 받음더이상 모델에 의존하지 않으며, Present..

CS 2024.11.04

[DesignPattern] BuilderPattern

복잡한 객체들을 단계별로 생성 할 수 있도록 하는 생성 디자인 패턴점층적 생성자를 제거하기 위한 방법예시public class Sandwitch{ private int cheeze; private int tomato; private int bread; private int jalapeno; public Sandwitch (int bread) { this.bread = bread; } public Sandwitch(int bread, int tomato) { this.bread = bread; this.tomato=tomato; }}윽 벌써 귀찮다. 이렇게 생성자를 한땀한땀 만드는 점층적 생성자를 만들어야 하는 상황..

CS/DesignPattern 2024.10.25

[DesignPattern] 타입객체

TypeObject Pattern?클래스 하나를 인스턴스 별로 다른 객체형으로 표현할 수 있게 만들어, 새로운 클래스들을 유연하게 만들 수 있게 하는 방법.예제다양한 몬스터를 생성type Object calss 와 typed object class 정의type object object instance : 논리적으로 다른 타입을 의미typed object : 자신의 타입을 나타내는 타입 객체를 참조함.기본적인 타입객체 패턴public class Breed{ private int _health; private float _attack; pubilc Breed(int health, float attack) { health = health; _attack = att..

CS/DesignPattern 2024.10.23

[DesignPattern] 이중버퍼

Double Buffer Pattern이란?여러 순차 작업의 결과를 한번에 보여주기 위해 사용하는 패턴.그래픽스에서 주로 사용하지만, 그 외에도 사용할 곳이 있을 까?어떤 상태를 변경하는 코드가, 동시에 지금 변경하려는 상태를 읽는 경우. 물리나 인공지능 같이 객체가 서로 상호작용할 때 자주 발생예시그래픽스에 대한 예시는 너무 뻔하고 기본적으로 아는 내용이기 때문에 생략한다.그래픽스가 아닌 다른 코드에서 사용할 수 있다는 점이 흥미로워 책의 내용을 남긴다.액터들이 돌아가면서 서로 때리는 장면을 보여주어야 한다고 가정.조건은 모든 배우가 한번에 업데이트 되는 것 처럼 보여야 한다면?public class Actor{ public bool isSlaped {get;private set;} pub..

CS/DesignPattern 2024.10.21