본문 바로가기
게임 개발 일지/내일배움캠프 TIL

오버로딩과 오버라이딩 / 오브젝트 풀링

by 빛하_ 2024. 1. 2.

 

 

오버로딩과 오버라이딩의 차이

 

오버로딩

같은 이름의 메서드를 서로 다른 매개변수를 사용해 여러 개 정의할 수 있는 것.

동일한 기능을 수행하는 메서드를 다양한 파라미터 조합으로 호출한다는 점에서 코드의 다형성을 높여주는 기능이다.

 

오버라이딩

부모에서 정의한 메서드를 자식 클래스에서 재정의 하는 것.

기능을 새롭게 추가한다는 점에서 다르다.

기능 추가의 양이 너무 많아지면.. 리스코프 치환 법칙에 위배되기 때문에 주의해야 한다.

 

Object Pool

 

생성할 수 있는 오브젝트를 미리 생성해 놓고, 필요할 때만 꺼내어 쓰고 다시 필요없어지면 집어넣는 방식.

가비지 콜렉터가 메모리를 좌지우지하는 주요 멤버인데,

이것이 과도하게 활성화되면 게임 중 프레임 드랍이 발생할 수 있다.

그래서 메모리에 과부하가 걸리지 않도록 하는 방법으로 오브젝트 풀이 등장했다.

 

(1) 성능 향상

오브젝트 생성 및 삭제는 비용(메모리 할당/해제로 인한 가비지 콜렉터 사용)이 크기 때문에 

오브젝트 풀을 이용하면 해당 오브젝트를 재활용함으로써 프로그램 성능을 향상시킬 수 있다.

 

(2) 메모리 관리 

오브젝트 풀 사용 시 프로그램에 사용될 메모리를 예측하기 쉬워지므로 메모리를 효율적으로 관리할 수 있다.

 

(3) 활용 사례

투사체, 적 캐릭터 등

오브젝트가 빠른 주기로 생길수록, 많은 양이 필요할수록, 빨리 사라질수록 이를 효율적으로 관리할 필요가 있다.

 

(4) 오브젝트풀링 주의사항

기본적으로 오브젝트를 담을 풀 자체를 크게 잡기 때문에,

만약 오브젝트의 양이 많다면 그만큼 로딩하는 시간이 오래걸린다.

 

생성과 파괴가 자주 일어나지 않는 소량의 오브젝트의 경우 굳이 오브젝트 풀링을 사용하지 않아도 된다.

 


 

이번 팀 프로젝트도 많은 기능이 들어가는 만큼 재밌게 만들어보고 싶다!!

좋은 결과물을 향하여.. 힘내봅시다!

 

 

 

댓글