내가 만들고 있는 게임에서 Script 구조가 CharacterSystem, SkillSystem, StatSystem으로 폴더를 구분하고 어셈블리 definition을 각 파일에 넣어둔 상태임

그런데 CharacterSystem은 SkillSystem을 참조하고 SkillSystem은 CharacterSystem을 참조하는 순환 참조 문제가 발생함

그래서 AI한테 물어보니 의존성 역전 얘기를 하더라고


Core라는 새로운 폴더와 asmdef를 만들고 Core는 다른 무엇도 참조하지 않게 하고 CharacterSystem의 핵심인 Character.cs만 Core로 옮겨서 해결하라고 해서 옮김

그 결과 Core가 StatSystem이랑 SkillSystem을 참조해야만 하는 상황이 만들어져서 다시 물어보니 Character.cs에 필요한 파일들만 Core로 옮기라고 하는데 이거 계속 반복하면 Core에 모든 파일이 들어가게 생겨서 그냥 내가 생각을 해봤음


그렇게 생각을 해서 나온게 ICharacter같은 인터페이스를 만들어서 이 인터페이스를 Core에 넣어두고 실제 구현은 CharacterSystem에서 하고 SkillSystem은 ICharacter를 참조하게 했는데 내가 제대로 해결한게 맞는지 의문이 들어서 글 씀


1. 폴더 구조를 처음부터 잘못 잡아서 문제가 생긴건가?

2. 의존성 역전을 제대로 사용한게 맞나?