게임에 자주 쓰이는 패턴
·
⭐C Sharp/13. 디자인 패턴
게임에 자주 쓰이는 패턴소프트웨어 개발에서 자주 발생하는 문제 상황을 객체지향 원리에 따라 재사용 가능하게 정리해 둔 설계 아이디어 템플릿이다.수많은 디자인 패턴들이 존재하는데 일부는 확장성에 초점을 맞추기도 하고, 일부는 최적화 및 재활용성에 초점을 맞추기도 한다.게임의 경우, 퍼포먼스가 중요하기 때문에 최적화와 직결되는 디자인 패턴들의 선호도가 높다. 싱글톤 패턴 ( Singleton ) - 생성 ( Creational )애플리케이션 전역에서 딱 하나의 인스턴스만 존재하도록 보장하고 , 어디서든 쉽게 접근하게 하는 패턴 사용하면 좋은 상황글로벌 상태 / 서비스 : 설정 , 오디오 매니저 , 저장소 , 씬 전역 이벤트 , 게임 매니저씬을 넘어 수명 유지가 필요한 매니저 구조private 생성자 ..
디자인 패턴 ( Design Pattern )
·
⭐C Sharp/13. 디자인 패턴
디자인 패턴 ( Design Pattern )프로그래밍 디자인 패턴은 소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 설계 솔루션이다.쉽게 말해, 세상 수많은 프로그래머 선배분들이 각자의 프로그래밍을 해오다가 공통되게 나타난 비슷한 설계 구조들이 있는데, 그 중 이런 설계 구조에 이름을 붙여서 설계 원칙으로 만든 것을 디자인 패턴이라고 한다. 디자인 패턴은 게임 뿐만이 아니라, 다양한 모든 프로그래밍 분야에서 활용 가능한 가이드라인이다.디자인 패턴은 구체적인 코드를 제공하지 않으며, 일반적인 구조와 상호작용을 설명하는 템플릿으로 이해할 수 있다. 핵심 개념소프트웨어 개발에서 자주 반복되는 문제 상황에 대한 재사용 가능한 해결책을 정리해 둔 일종의 설계 템플릿이다.문제 해결 경험의 ..
SOLID 원칙
·
⭐C Sharp/13. 디자인 패턴
SOLID 원칙SOLID 란,객체지향 프로그래밍 ( OOP ) 에서 코드의 유지보수성 , 확장성 , 유연성을 높이기 위해 고안된 5대 설계 원칙을 말한다.로버트 C. 마틴 ( Robert C. Martin , "Uncle Bob" )이 제안했고, 이후 좋은 소프트웨어 설계의 기본 원칙으로 널리 사용한다. S - 단일 책임 원칙 ( Single Responsibility Principle )클래스는 하나의 역할만 가져야 한다.즉 , 하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행하는데 집중되도록 클래스를 개별적으로 설계하는 원칙이다. ▼안좋은 예시class User{ public void SaveToDB() { // DB 저장 로직 } public void..
최초의 컴퓨터
·
🖥️Computer Science
최초의 컴퓨터는 무엇일까?최초의 컴퓨터는 정의에 따라 다르게 해석된다.기계식 관점 : 배비지의 해석기관 ( 설계 ) , 차분기관 ( 부분 제작 )전자식 범용 : ENIAC ( 1945 / 46 , 초기엔 저장 프로그램이 아니었다 )저장 프로그램 최초 실행 : Manchester Baby ( 1948 )상업용 초창기 : UNIVAC I ( 1951 )특수 목적 전자식 : Colossus ( 1943~44 암호 해독 ) 입력 → 연산 → 출력 ( Input → Process → Output ) 구조를 탄생시킨 사람은?입출력 모델 구조는 오늘날 컴퓨터 과학의 기본 개념이다.입출력 구조를 정립한 사람에 관해서 여러 가지 근거와 출처가 있지만,이걸 처음 체계적으로 정립한 사람은 " 존 폰 노이만 " 으로 보는..
컴퓨터의 역사
·
🖥️Computer Science
컴퓨터 공학 기초 ( Computer Science & Engineering ) 컴퓨터라는 이름은 오늘날 우리가 생각하는 전자기계 이전에 사람을 가리키는 말에서 시작했다.많은 과학 분야와 비슷하게 컴퓨터 과학도 수학과 가장 밀접한 관계를 가지고 있고, 수학에 기초를 둔 과학 분야이다. 컴퓨터의 역사 ( Computer History )컴퓨터는 주판과 같은 고대 계산 도구에서 시작하여, 19세기 찰스 배비지가 해석기관을 설계하고, 20세기 초 진공관을 이용한 에니악과 같은 최초의 전자식 컴퓨터를 거처 1970년대 마이크로 프로세서와 개인용 컴퓨터 ( PC ) 의 등장으로 대중화 되었다.이 과정에서 프로그램 내장 방식의 폰 노이만 구조가 도입되었고 , 현대에는 휴대용 기기와 네트워크를 통해 우리 생활 ..
250929
·
📖TIL
디자인 패턴 개념반복적으로 나타나는 코드를 보고 디자인이라고 부른다소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 설계 솔루션이다. class Program{ // 팩토리 패턴 예시 public abstract class Ship { public abstract void Sail(); } public class BattleCruiser : Ship { public override void Sail() { { Console.WriteLine("Battlecruiser operational."); } } } public class..
250929 Revision
·
📖TIL
알고리즘 성능을 수학적으로 나타내는 방법 정확한 실행 시간을 측정하는 것이 아니다 입력 크기를 N 이라고 가정, 성장의 속도 배열 요소가 10개일 때 1초, 100개 일때 10초 , 1000개 일때 100초가 걸린다 선형적으로 증가한다, O(N) 배열 요소가 10개일 때 1초, 100개일 때 100호, 1000개일 때 10000초 제곱으로 증가하고 있다 O(N^2) BigO 는 성능의 '최고차항'만 남겨서 단순화 한 것 n-1 이라던지 /2 같은 상수 같은건 다 무시 for 를 3번 굴리는 알고리즘은 n^3 O(n): 사람을 한 줄로 세워 차례대로 검사.O(log n): 절반씩 줄여가며 검사.O(2^n): 가능한 모든 경우를 일일이 다 시도. 지수 = "곱하기를 몇 번 반복했는가"로그 = "곱하기 ..
델리게이트 ( Delegate )
·
⭐C Sharp/12. 델리게이트
델리게이트 ( Delegate )프로그래밍을 하다 보면 특정 상황에서 어떤 동작을 나중에 결정해야 하는 경우가 있다.사용자 인터페이스 ( UI ) 에서 버튼이 클릭됐을 때 특정 동작을 수행하도록 만들고 싶을때게임에서 몬스터를 처치했을 때 , 코인 적립 , 경험치 지급 등 여러 가지 동작이 동시에 수행되어야 할 때파일 다운로드 진행 상황을 표시하는 라이브러리에서 다운로드가 진행될 때마다 진행률을 업데이트 할 때이런 문제를 해결하기 위한 C# 기능 중 하나가 바로 델리게이트 ( Delegate )이다.해석하면 "대리인" 이라는 뜻의 델리게이트는 "함수를 변수처럼 다룰 수 있는 기능" 이다.즉 , 함수 자체를 변수에 저장하거나 매개변수로 전달할 수 있게 해주는 기능이다. 게임에서 플레이어가 몬스터를 처치했을 ..
그래프 ( Graph )
·
⭐C Sharp/15-6. 트리와 그래프
그래프 ( Graph )그래프는 정점 ( Vertex , Node ) 과 간선 ( Edge ) 으로 이러우진 자료구조이다.객체 간의 관계를 표현하는데 사용한다.정점은 개체를 나타내고 , 간선은 두 정점 간의 연결 관계를 의미한다. ▼정점 ( Vertex , Node )정의 : 그래프에서 표현하는 대상 ( 객체 , 데이터 , 위치 등 )예시 : 소셜 네트워크 - 사람 한명지도 - 도시 , 역웹 - 웹 페이지표현 방식 : 일반적으로 원 ( circle ) 으로 표시하고, 고유한 번호 ( ID ) 나 이름 ( Label ) 을 붙인다.쉽게 말하면, "점" 자체를 나타낸다. ▼간선 ( Edge )정의 : 두 정점을 연결하는 선 ( 관계나 경로 )종류 :무방향 간선 ( Undirected Edge ) : 양방..