woollim.log
로그인
woollim.log
로그인
내일배움캠프 63일차 TIL : 스테이지 매니저 리팩토링
woollim
·
2024년 12월 20일
팔로우
0
스파르타내일배움캠프TIL
0
내일배움캠프TIL
목록 보기
56/65
■ 개요
○ 오늘 계획
중간점검 프로젝트 제출
PPT 발표자료로 편집
디버깅
■ 스테이지 매니저 리팩토링
문제
: 기획 변경으로 인해 리팩토링이 불가피함
원인
:
1) 구 스테이저 매니저 : 스테이지 랜덤 선택+씬전환+몬스터 소환
2) 필요한 작업 : 몬스터에 맞는 씬으로 전환 되어야 함
판단
:
매니저 리팩토링 하여 로직 결합도를 낮추고 유지 보수성을높여야 함
리팩토링 목적
:
1) 기획 변경: 스테이지 랜덤 선택 후 해당 스테이지에 맞는 씬 전환과
몬스터 소환 필요.
2) 기존함수가 씬전환 로직과 몬스터 소환로직을 결합하여 유지보수
힘듬.
3) 유지보수성과 확장성 향상을 목표로 리팩토링 진행.
○ 주요 변경 사항
StageManager 클래스
역할 분리 : 랜덤 스테이지 생성, 씬 전환 / 몬스터 소환 로직 으로 분리
데이터 초기화 : stageType과 stageID를 클래스 필드로 선언하고 초기화.
함수 분리
랜덤 스테이지 생성 : CreateStage()에서 stageType 및 stageID 설정 후 씬 전환 처리.
몬스터 소환 : EnterStageMonsterSpawn()에서 stageID 기반으로 몬스터 소환.
씬 전환 및 몬스터 소환 분리
CreateStage()
RandomStageType() 함수로 stageType, RandomStageID() 함수로 stageID를 결정하고 해당 씬전환
아직 미구현인 이벤트 스테이지는 현재 제외.
EnterStageMonsterSpawn()
stageID를 기반으로 각 스테이지에 적합한 몬스터 소환.
stageType에 따라 보스 또는 일반 스테이지 데이터를 참조.
○ 주요 리팩토링 개선점
역할 분리
스테이지 타입 결정, 씬 전환, 몬스터 소환의 독립성 강화.
로직 간 결합도를 낮추고 유지보수성을 높임.
확장성
새로운 스테이지 타입(이벤트 등) 추가 시 간단한 수정으로 대응 가능.
몬스터 데이터 구조 변경에도 영향 최소화.
안정성
예외 처리 및 데이터 검증 추가
딕셔너리 비어있는 경우 경고 로그 출력.
랜덤 값 범위 제한을 통해 오류 방지.
woollim
팔로우
이전 포스트
내일배움캠프 62일차 TIL : 중간점검 전 버그픽스
다음 포스트
내일배움캠프 64일차 TIL : 중간발표 예상질문 정리
0개의 댓글
댓글 작성