전체 글 42

[Unity] C# Plugins DLL 만들기

이번 게시글에서는 Unity에서 활용가능한 DLL에 대해서 다루어보겠습니다. Unity를 활용하다 보면 외부 라이브러리를 많이 볼 수 있고 해당 라이브러리는, DLL을 활용하는 경우를 많이 볼 수 있습니다. 이러한 DLL을 직접 만들어 여러 프로젝트에서 재사용할 수 있고, 관리할 수 있습니다. DLL이란?Dynamic-Link Library로 동적 링크 라이브러리라는 뜻입니다. 여러 프로그램이 공통으로 사용하는 코드, 데이터, 리소스 등을 담고 있는 파일로, 프로그램이 실행되고, 필요한 시점에 동적으로 로드하여 사용합니다. 여러 프로그램에서 공통으로 사용하기 때문에 코드의 재사용성을 높여주는 장점이 있습니다. Unity DLL 만드는 법Visual Studio or Rider에서 Class Librar..

카테고리 없음 2025.12.06

[디자인 패턴] 구조 패턴 - 어댑터 패턴

이번 게시글에서는 구조 패턴 중 하나인 어댑터 패턴에 대해서 이야기해보려고 합니다.이번 어댑터 패턴을 공부하면서, 기존에 사용하고 있다고 생각했던 어댑터 패턴이 잘못되었다는 사실을 잘 알게 되는 계기가 된 것 같습니다. 아래 문제 상황을 가정해 보겠습니다. 문제 상황소리를 재생하는 시스템 A와, B가 있다고 가정을 하였을 때, A의 소리를 재생하는 시점은 유니티 내부에서 특정 버튼을 클릭하였을 때 PlaySound()로 소리를 재생하고, B의 경우에 똑같은 시점 혹은 방법(유니티 내부에서 특정 버튼을 클릭하였을 때)으로 API를 통해 외부 디바이스에서 소리를 재생한다고 하는 경우를 문제 상황으로 제시해 보겠습니다. 이때 Client는 같은 방식으로 메서드를 실행하지만, 내부적으로 처리가 달라야 하는 경..

Unity 2025.12.01

[디자인 패턴] 생성 패턴 - 프로토타입 패턴

이번 게시글에서는 생성 패턴 중 하나인 프로토 타입 패턴에 대해서 이야기해보려고 합니다.아래와 같은 문제 상황이 있다고 가정하여, 이를 해결하고자 할 때 해결책에 대한 방안을 고려해 보도록 하겠습니다. 문제 상황이미 생성되어 있는 복잡한 구조의 오브젝트를 기준으로, 정확한 복사본을 만들어야 하는 상황이 발생하였습니다. 그렇다면 다음과 같이 복사를 진행하게 될 것입니다. 먼저 같은 클래스의 새 객체를 생성하고, 원본 객체의 모든 필드(오브젝트의 복잡한 구조)를 새 객체에 복사해야 합니다. 하지만, 객체의 일부 필드들이 private, 직렬화 되지않을 때 복사하기 어려움이 생기게 됩니다. 해결책실제 복제가 진행되는 객체들에게 복제 프로세스를 위임합니다. 이 말은 특정 객체 A를 사용하는 클래스 B가 있다고..

Unity 2025.11.21

[디자인 패턴] 생성 패턴 - 빌더

이번 게시글에서는 생성 패턴 중 하나인 빌더 패턴에 대해서 이야기해보려고 합니다.아래와 같은 문제 상황이 있다고 가정하여, 이를 해결하는 디자인 패턴의 구조를 작성하고, 실제 스크립트를 구현해 보겠습니다. 문제 상황많은 멤버 변수를 필드로 가지는 특정 클래스의 객체를 생성한다고 하였을 때, 각 멤버 변수마다의 초기화 값을 생성자를 통해 입력해야 합니다. 이때 생성되는 객체별로, 사용하지 않는 멤버 변수들이 종종 있을 수 있지만, 생성자를 통해 초기화를 진행하게 되면 생성자에 포함되어 있는 파라미터들을 전부 넣어줘야 합니다.빌더 패턴이란?빌더 패턴(Builder Pateern)은 복잡한 객체의 생성 과정과 표현 방법을 다양한 구성의 인스턴스를 만드는 생성 패턴입니다.기존 생성자에 들어갈 매개변수들을 메서드..

Unity 2025.10.14

[디자인 패턴] 생성 패턴 - 추상 팩토리

문제 상황RPG 게임을 만드는 개발자가 있습니다. 이때 각 지형 계절별로 생성되는 몬스터가 다르고, 몬스터들의 각 능력치, 행동패턴, 특성이 조금씩 변형이 이루어져야 한다고 가정할 때 몬스터를 생성하는 스포너부터 시작해서, 각 변형된 몬스터들을 전부 정의해야 하는 상황입니다. 문제 해결몬스터를 스폰하는 스포너에서 생성하는 몬스터를 추상화하여, 각 타입에 맞게 나누고, 서브 클래스에서 재정의하여, 몬스터들의 각기 다른 변형(재정의)에 대해 정의하고, 이를 스폰하는 방식으로 구조를 설계해보려고 합니다. 아래와 같은 클래스 다이어그램으로 진행해 보겠습니다. Factory 이를 이용하는 Client 혹은 Manager에서 IMonsterFactory를 참조받습니다.Client에서 CreateZombie, Cr..

Unity 2025.10.13

[디자인 패턴] 생성 패턴 - 팩토리 메서드

디자인 패턴의 항목 중 생성 패턴에 대해서 알아보겠습니다. 스터디 계기개발을 진행하다 보면 디자인 패턴에 대해서 많이들 이야기하고 실제 많이 활용하는 경우가 많습니다. 하지만 정확히 알지 못하고 사용하게 된다면, 오히려 독이 될 수 있다고 판단하여, 디자인 패턴 하나씩 알아가 보며, 예제 파일을 만들어 보려고 합니다.문제 상황3D 컨텐츠를 모델링하고, 관리하는 앱을 개발하고 있다고 가정해 보겠습니다. 프로포 타입으로, FBX만 관리하고, 조작하며, 콘텐츠를 제작한다고 가정하고, 추후 확장하기 위해, Obj, Glb를 추가한다고 하였을 때, 새로운 Obj, Glb에 대한 클래스를 기존 프로그램에 추가하는 것은 매우 어렵습니다. 이 문제를 해결하기 위해 아래와같은 팩토리 메서드를 활용해볼 수있습니다.팩토리 ..

Unity 2025.10.11

ScriptableObject - 2

이번 게시글에서는 이전 게시글에서 다루었던 ScriptableObject의 사용방법과 생성 방식에 대해서 알아보겠습니다.ScriptableObject이론 사용 방법데이터 컨테이너 클래스 정의 및 ScriptableObject 상속. asset생성 및 데이터 할당데이터 활용데이터 컨테이너 클래스 정의 및 ScriptableObject 상속[CreateAssetMenu(menuName = "Game/Monster")]public class Monster : ScriptableObject{ public float speed; public int MaxHealth;}소스와 같이 클래스를 정의하고, ScriptableObject를 상속합니다. 해당 에셋을 생성할 수 있게, CreateMenu를 정의하고..

Unity 2025.10.10

ScriptableObject - 1

오늘 알아볼 내용은 ScriptableObject의 이론에 대해서 정리해보려고 합니다. ScriptableObject란?Unity 공식 ScriptableObject - Unity 매뉴얼ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너입니다. ScriptableObject의 주요 사용 사례 중 하나는 값의 사본이 생성되는 것을 방지하docs.unity3d.com공식문서의 말을 인용하자면, 클래스와 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너입니다. 특징값의 사본이 생성되는 것을 방지하여, 메모리 사용을 감소시킴.런타임에 데이터 컨테이너에 저장해 둔 값을 일괄적으로 변경이 가능.로비씬 -> 게임씬으로..

Unity 2025.10.10

[코딩테스트] 신고 결과 받기

오늘 풀어볼 문제는 프로그래머스의 신고 결과받기라는 문제를 풀어보겠습니다. 신고 결과 받기 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려고 합니다. 문제 조건각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.한 유저가 여러 번 신고할 수 있지만, 동일 유저의 신고는 1회로 처리됩니다.k번 이상 신고된 유저는 불량 이용자 처리 됩니다.파라미터 정보string [] id_list : 게시판 이용자 리스트string[] report : "신고한 사용자 id 신고받은 사용자 id"의 문자열 리스트int k : 불량이용자 처리되는 신고..

코딩테스트 2025.10.10

[코딩 테스트] 공원 산책

오늘 풀어볼 문제는 프로그래머스의 공원 산책이라는 문제를 풀어보도록 하겠습니다.https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr공원 산책 : 출처 "프로그래머스" 코딩 테스트 문제 문제산책 가능한 격자무늬의 공원 안에서, 산책이 가능한 영역에 대한 정보와, 산책이 이루어진 경로가 주어질 때산책이 이루어진 경로를 전부 수행한 결과의 위치를 찾으시오. 문제 조건지나다니는 길을 'O', 장애물(지나갈수 없는 길) 'X', 시작 위치 'S'로 산책이 가능한 영역에 대한 정보를 전달받습니다.산책이 이루어진 ..

코딩테스트 2025.08.20