2025/10 6

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

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