"깊이"가 다른 게임개발자 허민영

유저에서 게임까지, 철학에서 코딩까지, 본질을 보는 게임개발

2025/01 31

명령형? 선언형? 언제 어떻게 쓰는거지?

명령형 프로그래밍과 선언형 프로그래밍: 도메인 분석을 통한 최적화 접근프로그래밍을 처음 접했을 때 대부분의 개발자는 명령형 프로그래밍(Imperative Programming) 방식으로 사고합니다. 이는 컴퓨터에게 어떻게(how) 동작해야 하는지를 단계적으로 설명하는 방식입니다. 예를 들어, 리스트의 모든 요소를 더하는 코드를 명령형으로 작성하면 다음과 같습니다:int sum = 0;foreach (num in numbers){ sum += num;}반면, 선언형 프로그래밍(Declarative Programming)은 무엇(what) 을 원하는지를 설명하는 방식입니다. 같은 기능을 선언형으로 작성하면 다음과 같습니다:using Linqint sum = numbers.Sum();명령형 프로그래밍은 ..

C# 한정자 총 정리

1. 접근 제한 한정자C#에서 멤버의 접근 범위를 결정하는 한정자입니다.public (클래스, 필드, 메서드) : 어디서든 접근 가능 (가장 개방적)private (필드, 메서드) : 같은 클래스 내부에서만 접근 가능 (기본 접근 수준)protected (필드, 메서드) : 같은 클래스 및 파생 클래스에서만 접근 가능internal (클래스, 필드, 메서드) : 같은 어셈블리(프로젝트) 내에서만 접근 가능protected internal (필드, 메서드) : 같은 어셈블리 또는 파생 클래스에서만 접근 가능private protected (필드, 메서드) : 같은 클래스 또는 같은 어셈블리 내의 파생 클래스에서만 접근 가능 2. 클래스 및 멤버 확장 관련 한정자객체 지향 프로그래밍(OOP)에서 상속과 관련..

C# ConsoleKeyInfo 구조체(feat. Read(), SetCursorPosition())

ConsoleKeyInfo설명이 ConsoleKeyInfo 형식은 사용자가 만들 수 없습니다. 대신 메서드 호출에 대한 응답으로 사용자에게 반환됩니다 Console.ReadKey()개체는 ConsoleKeyInfo 누른 콘솔 키에 ConsoleKey 해당하는 상수 및 유니코드 문자(있는 경우)를 설명합니다. 또한 개체는 ConsoleKeyInfo 하나 이상의 Shift, Alt 또는 Ctrl 한정자 키를 콘솔 키와 동시에 눌렀는지 여부에 관계없이 값의 ConsoleModifiers 비트 조합으로 설명합니다. 속성 - Key 현재 ConsoleKeyInfo 개체가 나타내는 콘솔 키를 가져옵니다. - KeyChar 현재 ConsoleKeyInfo 개체가 나타내는 유니코드 문자를 가져옵니다. - Modifie..

모나딕 2차 논리

모나딕 이차 논리(MSO, Monadic Second-Order Logic)모나딕 이차 논리(MSO)는 수리논리학과 이론 컴퓨터과학에서 중요한 역할을 하는 논리 체계로, **1차 논리(First-Order Logic, FO)**의 확장판입니다. MSO는 집합에 대한 양화(quantification)를 허용하며, 그래프, 트리, 문자열 같은 구조를 효과적으로 표현하고 분석할 수 있는 강력한 도구입니다. MSO의 개념과 특징, 표현력, 활용 사례를 구체적으로 설명하겠습니다.1. MSO의 정의MSO는 다음의 구성 요소를 갖는 논리 체계입니다:1차 논리의 확장:**1차 논리(FO)**는 개체(individual)와 개체 간 관계를 기술합니다. 예를 들어, 그래프에서 노드나 엣지의 존재, 특정 노드 간 연결 여부..

잡학다식 2025.01.26

통합 다중 패러다임

통합 다중 패러다임소프트웨어 개발은 다양한 패러다임과 접근 방식이 조화롭게 공존하는 복잡한 환경으로 발전해 왔습니다. 이 도식은 MVC 패턴을 중심으로 여러 프로그래밍 패러다임을 통합한 새로운 소프트웨어 아키텍처를 제안합니다. 이를 통해 개발자는 각 패러다임의 강점을 활용하며 복잡한 요구사항에 대응할 수 있습니다.도식의 중심에는 Controller가 자리 잡고 있습니다. Controller는 모든 구성 요소 간의 상호작용을 조정하며, 사용자의 입력을 처리하고 데이터 흐름을 관리하는 핵심 요소입니다. 이를 둘러싼 주요 구성 요소에는 Model, View, ViewModel, Presenter, Entity, Instance가 있습니다. 각각은 데이터 관리(State), 컨텍스트(Context), 상호작용(..

Unity 7기 TIL 5일차 Coroutine 주시

정의코루틴(Coroutine)은 비동기 프로그래밍과 동시성(concurrency) 처리를 위한 프로그래밍 구조로, 함수나 루틴의 실행을 중단(suspend)하고 필요 시 다시 재개(resume)할 수 있는 특성을 가진다. 코루틴은 일반적인 서브루틴(subroutine)과 달리, 실행 흐름을 협력적으로 제어할 수 있으며, 이를 통해 효율적인 자원 관리와 코드 간결화를 가능하게 한다.특징중단과 재개: 코루틴은 실행 중간에 중단하고 상태를 저장한 뒤, 나중에 다시 실행을 재개할 수 있다.비동기 처리: 입출력(I/O) 작업이나 긴 실행 시간을 요구하는 작업에서 비동기적으로 실행되며, 동시성을 지원한다. 가벼움: 코루틴은 스레드와 달리 가벼운 단위로 동작하며, 하나의 스레드에서 다수의 코루틴을 실행할 수 있다. ..

내일배움캠프 2025.01.23

유니티 GetActiveScene(), Transform.GetChild()

SceneManager.GetActiveScene반환Scene 현재 활성화 된 씬설명현재 활성화 된 씬을 가져옵니다.현재 활성화된 장면은 스크립트에 의해 인스턴스화된 새로운 GameObjects가 대상으로 사용되는 씬입니다.using UnityEngine;using UnityEngine.SceneManagement;public class GetActiveSceneExample : MonoBehaviour{ void Start() { Scene scene = SceneManager.GetActiveScene(); Debug.Log("Active scene is '" + scene.name + "'."); }}Transform.GetChild(i) 파라미터 index..

Math.Ceiling 메서드

오버로드Ceiling(Decimal) 지정된 10진수보다 크거나 같은 최소 정수 값을 반환합니다.Ceiling(Double) 지정된 배정밀도 부동 소수점 숫자보다 크거나 같은 최소 정수 값을 반환합니다. 매개 변수 d Decimal 10진수입니다.decimal[] values = {7.03m, 7.64m, 0.12m, -0.12m, -7.1m, -7.6m};Console.WriteLine(" Value Ceiling Floor\n");foreach (decimal value in values) Console.WriteLine("{0,7} {1,16} {2,14}", value, Math.Ceiling(value), Math.Floo..