디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[💬] 의존성 주입과 싱글톤 이 두개 사이에서 선택하는게 어렵다

ㅆㅇㅆ(124.216) 2024.05.06 11:37:11
조회 363 추천 0 댓글 16
														

보통 의존성 주입은 FindObjectofType를 쓰는데


이는 씬에서 검색을 하기때문에 많은 자원을 먹는데

GPT가 추천을 하지 않음


싱글톤은 그에반해서 분명히 성능적 이점이 존재함


보통 FindObjectofType를 쓸때 의존성 컨테이너, 즉 스타트업 스크립트를 작성해서 의존성 컨테이너를 만들고 그걸 바탕으로 의존성을 주입하는게


전통적 방법이고, 많은 패턴 책에서 장려함


다만 이러한 의존성 주입이 커질수록 결정적으로 코드가 복잡해지기때문에 작업속도와 생산성이 떨어질 수 밖에 없음.


유니티에서는 zenject와 같은 프레임워크를 지원하는데,


이 경우 클래스에서 인터페이스-구현클래스 생성-의존성 주입 컨테이너로 해야해서 이 경우 내 인벤토리 시스템을 다시 고쳐야함.


장단기적으로 따지자면


public interface IItemDatabase

{

}

등으로 만들고,


var itemDatabase=new ItemDatabase();

Field Item 생성시 아이템 데이터 베이스의 인스턴스 주입이 맞는데,


이게 맞는건가 싶다.


일단 싱글톤의 장점


1. 쉽고 빠른 구현


2. 성능상의 분명한 이점


3. 참고할 수 있는 많은 레퍼런스.


싱글톤의 단점


1. QA가 어렵고 버그테스트가 어려움


2. 모듈화로 들어갈 경우 모듈화 싱글톤의 개념이 훨씬 어려움


3. 추가 기능 구현에 따른 어려움.(폐쇄성)


의존성 주입을 사용할 경우 장점


1. 낮은 결합도로 인한 코드 재사용성 증가


2. 버그 테스트가 쉬움.


의존성 주입의 단점


1. 내 수준에서 쉽지 않은 코드 구현


2. 확장성있는 코드


나의 경우 이미 게임 매니저 클래스를 싱글톤으로 구현했기때문에 싱글톤이 많을수록 점점 더 버그 테스트가 힘들어진다.


이 경우 절대적으로 내가 팔아먹을 상품인 게임에서 유저들에게 불쾌한 경험을 줄 버그를 장기적으로 수정하기가 힘들다.


따라서 원래라면 의존성 주입을 선택해서 스타트업 스크립트로 의존성 컨테이너를 작성 하는게 맞다.


하지만 나의 경우


1.Zenject 프레임워크의 사용 경험 없음


2.완성된 인벤토리 시스템의 폐기


이 2개를 고려해야하는데, 이는 상당히 선택적으로 많은 문제를 따른다.


다만 완성될 경우엔


1. QA상의 이점


2. 완성된 인벤토리 시스템에 시스템 추가구현상의 이점


이중 2번이 상당히 매력적인 옵션인데, 잘 모르겠다.


전업 개발자라면 배움의 시간이 충분하지만 나는 노가다 공장일을 하면서 게임 만들기떄문에 빠듯한데


어렵다. 인생


완성한걸 부순다는 심리적 저항감이 너무 크다.


벌써 몇번을 했지만 이게 제일 힘들다


시간이라는 리소스가 조금만 더 많았으면 좋았을텐데

배움의 나이가 너무 늦었고, 시간이라는 리소스가 너무 부족하다.


자동등록방지

추천 비추천

0

고정닉 0

3

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
2865 AD 호요버스 신작 <젠레스 존 제로> 7월 4일 오픈! 운영자 24/06/05 - -
161030 💬 모바일도 고도엔진이있었네 [1] ㅇㅇ(59.13) 05.29 295 0
161029 🐣질문 순환참조 나쁘다는데 잘 안와닿는다 [9] RIP갤로그로 이동합니다. 05.29 273 0
161028 💬 오늘도 힘내자고 [5] ㅐㅐㅋㄷ갤로그로 이동합니다. 05.29 217 1
161027 💬 플밍 뉴비 이거 이해가 안되는데 어케해? [4] ㅇㅇ(14.52) 05.29 276 1
161026 💬 댄스파딱이 급격히 늙어버린 이유 [5] dawnDev갤로그로 이동합니다. 05.29 382 0
161025 🐣질문 비주얼 스튜디오 작업한Sln파일 DLL 파일로 바꿀수 있음? [8] ㅇㅇ(1.227) 05.29 117 0
161024 🐣질문 게임 개발 개 ㅈ밥아니냐? [9] ㅇㅇ(115.93) 05.29 456 0
161023 💬 어제 새벽에 겪은 당황스런 언리얼 [1] ㅇㅇ(125.132) 05.29 244 0
161022 🐣질문 시스템 변수 나처럼 관리하는 사람 있냐 [2] ㅇㅇ(14.50) 05.29 231 0
161021 🐣질문 유니티 [1] ㅇㅇ(61.108) 05.29 113 0
161020 💬 [경기콘텐츠진흥원] '게임 상용화 지원' 2차 모집(~6.13) [1] ㅇㅇ(124.111) 05.29 250 0
161019 💬 늙엇나 [13] 김메가갤로그로 이동합니다. 05.29 395 0
161018 🐣질문 여기 스팀 출시한단 분들은 스토브도 동시출시 하나요? [1] ㅇㅇ(61.75) 05.29 239 0
161016 🐣질문 c드리이브 공간 D에서 가져오는 방법 있음? [2] ㅇㅇ(121.169) 05.29 139 0
161015 💬 아으 애플 IAP 너무 빡세네 [2] 라라루라갤로그로 이동합니다. 05.29 116 0
161014 📢홍보 [신작출시] 일인 개발 슈팅 로그라이트 게임 [4] 일인일개미갤로그로 이동합니다. 05.29 339 2
161013 🐣질문 형들 언리얼4 공부 할건데 비쥬얼 스튜디오 년도 상관 없나요? [4] ㅇㅇ(211.118) 05.29 151 0
161012 📜일지 Moe Moe Island 일지 116 [2] 개발하는똥개갤로그로 이동합니다. 05.29 324 7
161011 💬 기능 8개로 쪼갰던 매니저 2개로 합쳤다 [2] ㅆㅇㅆ(124.216) 05.29 258 2
161010 🐣질문 유니티 OnTriggerEnter2D 질문이에오;; [2] ㅇㅇ(121.145) 05.29 170 0
161008 💬 게임자체를 판매하거나 구매할수있는 사이트? [1] ㅇㅇ(125.241) 05.29 189 0
161006 🐣질문 유니티 공부방향에 대하여 [4] ㅇㅇ(175.206) 05.29 253 0
161005 📜일지 ATB 좋아해? 1 [4] 디시콘쓸려고만듦갤로그로 이동합니다. 05.29 535 11
161004 📜일지 오늘도 보람찼다 [5] ㅇㅇ(121.128) 05.29 552 10
161003 💬 개발자가 아트와 소통하기위한 기초상식(?)정리※배경,캐릭터편 [10] 허당갤로그로 이동합니다. 05.29 1013 12
161002 💬 구글플레이콘솔 이거 새로 생긴거? [3] ㅇㅇ(222.232) 05.28 235 0
161001 📢홍보 『귀귀살전』을 소개합니다. - 귀귀살전 #1 [6] 저승협회갤로그로 이동합니다. 05.28 637 12
161000 💬 아이 씨발 픽셀퍼펙트가 문제였네 [12] ㅇㅇ갤로그로 이동합니다. 05.28 431 0
160999 🐣질문 공겜인데 데모로 풀까? 얼리엑세스로 풀까? [5] 정글갤로그로 이동합니다. 05.28 238 0
160998 📜일지 퍼즐 플랫포머 게임 제작 후기#5_2 튜토리얼(2) [1] BIB갤로그로 이동합니다. 05.28 328 6
160997 📜일지 퍼즐 플랫포머 게임 제작 후기#5_1 PlayX4전시 후기+튜토리얼(1) [2] BIB갤로그로 이동합니다. 05.28 477 10
160996 💬 3년 웹&유니티 개발자 시선에서 쓰는 의존성 [5] ㅇㅇ갤로그로 이동합니다. 05.28 333 4
160995 🐣질문 루카스 방치형 키우기 게임 괜찮나요? [5] ㅇㅇ(14.49) 05.28 283 0
160994 💬 근데 확실히 동아시아 게임 스타일이랑 다른 대륙권 아트 스타일이 다른듯. [3] ㅆㅇㅆ(124.216) 05.28 333 1
160993 💬 번역 별거 없네 [4] ㅇㅇ(121.186) 05.28 375 0
160991 💬 싱글벙글 다이렉트 X [9] ㅇㅇ(118.219) 05.28 414 1
160990 💬 오늘의 작업 [14] 문캐슬갤로그로 이동합니다. 05.28 350 6
160989 💬 뉴비 겜메 만지려면 c언어 필수인가요?? [5] ㅇㅇ(119.207) 05.28 257 0
160986 💬 살아남는자가 승자라니 전업하시는분께 질문좀 [5] ㅇㅇ(125.132) 05.28 371 0
160984 💬 유니티로 타워디펜스 만드는데 데이터 테이블 관련 질문 [2] ㅇㅇ(211.117) 05.28 195 0
160982 🐣질문 UI좀 심플하고 이쁜 게임없음? [9] 음덕음덕갤로그로 이동합니다. 05.28 309 0
160981 💬 인디게임개발 그냥 단순한데 ㅇㅇ(221.165) 05.28 428 0
160979 💬 챗지피티 쓸때 쾌감있네 [1] ㅇㅇ(218.147) 05.28 259 2
160978 💬 요즘 경제가 힘들어서 만만한 분야일수록 유입이 좀 많음 [2] ㅇㅇ(182.211) 05.28 320 0
160976 💬 정신병 주제로 게임만들어도 검열이나 그런거없지? [8] ㅇㅇ(210.223) 05.28 315 1
160974 💬 나 처럼 현실이 불만족 스러워서 [17] 카프카하루키갤로그로 이동합니다. 05.28 570 4
160973 💬 아래 겜 평 나쁜 이유 확인해봤는데 [2] dryrain갤로그로 이동합니다. 05.28 565 1
160972 💬 프로그래밍 공부하는 방법론은 사람 성향에 따라 결정됨 [7] ㅇㅇ(218.145) 05.28 396 2
160971 💬 유니티 주식 상황을 알아보자 [3] ㅇㅇ(221.165) 05.28 586 0
160970 💬 ㅅㅂ 뭔 나한테 이게 날라오냐 [2] ㅇㅇ(211.220) 05.28 449 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2