본문 바로가기

💻 내 소개 안녕하세요 엄청짱 프로그래머 손다빈 입니다.
  • 나이 : 96년생
  • 특이사항 : MZ세대, INFJ, 오른손잡이, 아이폰 유저
  • 좋아하는 음식 : 햄버거피자치킨솥뚜껑삼겹살떡볶이오튀김밥
  • 취미 : 개발, Programming, 코딩, 프로그래밍, Coding

🥷기술
Unity
Godot
Cpp
Javascript
D3
Vue

🐱 우리집 고양이 소개
츄르 먹은 후 츄르 먹기 전
  • 이름 : 콜라
  • 나이 : 8살
  • 종 : Nado moreum

📱 개인 프로젝트
🏢 참여한 프로젝트
빌런즈 Life is Pair 도씨어부키우기 직장상사혼내주기 서바이벌빙고 SlitherCoin

🌱 내 잔디밭

내가 씬 내장 스크립트를 사용하지 않는 이유 본문

글 묶음/나만쓰는 Godot

내가 씬 내장 스크립트를 사용하지 않는 이유

초긍정 개발자 다빈맨 2020. 1. 24. 02:29

고도엔진의 스크립트 붙이기 화면

스크립트를 만들 때 씬 파일 안에 스크립트를 포함시킬지 아니면 따로 스크립트 파일을 생성해서 관리할지 선택합니다.
처음에는 내장 스크립트로 만들면 씬 파일에 내장되면서 파일 하나가 더 안생기는지라 나름 선호했었는데 고도를 계속 사용하면서 내장 스크립트의 단점을 몇가지 알아냈고 결론적으로 특별한 상황(스크립트를 상속하는 경우 같은..) 이 아닌경우 씬과 GDScript 파일을 따로 가지고 있는것이 유리하다고 판단했습니다. 근거는 여러가지가 있습니다.

1. 내장 스크립트는 class_name 키워드를 사용했을때 다른 스크립트에서 타입을 찾을 수 없습니다.

씬에 스크립트를 내장해서 class_name 키워드를 사용하면, 다른 스크립트에서 해당 클래스 네임을 찾을 수 없습니다. 정적 타이핑을 사용하지 않는다면 큰 문제는 없습니다.

2. 버전관리 시스템에서 충돌문제를 해결하기에 조금 더 번거롭습니다.

씬에 내장하다보니. 버전관리 시스템에서 충돌이 발생하는 경우 씬 파일을 열어서 수정해야하는데.. 물론 고도는 버전관리에 굉장히 유리하게 디자인되어 있어서 씬 파일의 내부 구조가 복잡하지는 않습니다. 하지만 이는 GDScript만 별도로 수정하는것과 비교했을때 조금은 더 번거럽습니다. 대표적인 예로 VSCode 와 같은 외부 에디터에서 충돌을 수정하고자 할 때 내장 스크립트 부분은 Synctax 가 적용되지 않습니다.

3. 스크립트의 재활용이 어렵습니다.

아무래도 씬에 종속시키다보니 다른 씬에서 스크립트를 가져다쓰려면 결국에는 외부파일로 저장해야 합니다. 이는 생각보다 드문 상황이 아닙니다.

4. 고도 에디터 내에서 파일 단어 찾기를 하더라도 내장 스크립트 내의 단어는 찾을 수 없습니다.

 

물론 VSCode 같은 에디터에서 단어찾기로 찾을 순 있는데 고도 에디터 특성상 에디터 내에서만 작업하게되는 경우가 많은데 아무래도 내장 스크립트는 단어 찾기에서 누락된다면 여간 불편한게 아닙니다.