brand

QUICK
MENU

홈 › 정보 › 게임 › 프로그래밍 지식

게임 최적화 기본: 드로우콜과 메모리

게임이 아무리 재미있어도 화면이 끊기고 기기가 뜨거워지면 플레이어는 금방 떠납니다. 최적화는 같은 화면을 더 적은 비용으로 그리고 계산하는 작업입니다. 이 글에서는 게임 최적화의 출발점인 측정 방법과, 가장 자주 문제가 되는 드로우콜과 메모리를 중심으로 기본기를 정리합니다.

최적화의 첫 단계는 측정

최적화에서 가장 흔한 실수는 느릴 것 같은 곳을 감으로 고치는 것입니다. 실제 원인은 다른 곳에 있는 경우가 많습니다. 먼저 엔진의 프로파일러로 한 프레임 안에서 어떤 작업이 시간을 얼마나 쓰는지 측정해야 합니다.

병목은 크게 CPU 쪽과 GPU 쪽으로 나뉩니다. CPU는 게임 로직, 물리, 애니메이션, 그리고 GPU에 그리라고 명령을 보내는 일을 하고, GPU는 실제로 픽셀을 그립니다. 어느 쪽이 프레임 시간을 잡아먹는지 알아야 올바른 처방을 고를 수 있습니다. 또 개발용 PC가 아니라 목표로 하는 실제 기기에서 측정해야 의미가 있습니다.

드로우콜이란 무엇인가

드로우콜은 CPU가 GPU에게 '이 물체를 이 재질로 그려라'라고 보내는 명령 한 번을 말합니다. 명령 하나를 준비하고 보내는 데에도 비용이 들기 때문에, 작은 물체 수천 개를 따로따로 그리면 GPU가 여유 있어도 CPU가 명령 보내느라 바빠집니다. 특히 모바일 기기에서 자주 문제가 됩니다.

재질(머티리얼)이 바뀔 때마다 GPU 설정을 바꾸는 상태 변경 비용도 생깁니다. 그래서 같은 재질을 쓰는 물체를 묶어 한 번에 그리는 것이 드로우콜 최적화의 기본 방향입니다.

게임프로그래밍 과정, 내 상황에 맞게 시작하는 방법이 궁금하다면무료 상담 →

드로우콜을 줄이는 방법

방법원리주의점
정적 배칭움직이지 않는 물체를 미리 하나로 합침메모리 사용이 늘 수 있음
동적 배칭작은 움직이는 물체를 실행 중에 묶음조건이 까다롭고 CPU 비용 발생
GPU 인스턴싱같은 모델을 위치만 바꿔 여러 번 그림풀, 나무, 총알처럼 같은 물체가 많을 때 효과적
텍스처 아틀라스여러 텍스처를 한 장으로 모아 재질 하나로 공유UI와 2D 스프라이트에서 특히 유용
컬링카메라에 보이지 않는 물체는 그리지 않음가려진 물체를 거르는 오클루전 컬링은 준비 작업 필요

UI도 드로우콜을 만듭니다. 캔버스 안의 요소 하나가 바뀌면 캔버스 전체를 다시 계산하는 경우가 있어, 자주 바뀌는 UI와 고정된 UI를 다른 캔버스로 나누는 것이 흔한 방법입니다.

메모리 관리의 기본

메모리가 부족하면 모바일에서는 게임이 강제 종료되기도 합니다. 메모리를 가장 많이 차지하는 것은 대체로 텍스처, 메시, 사운드 같은 리소스입니다. 텍스처 해상도를 화면에 보이는 크기에 맞추고, 기기에 맞는 압축 형식을 쓰고, 밉맵을 적절히 설정하는 것만으로도 크게 줄일 수 있습니다.

  • 필요할 때 불러오고 다 쓰면 내리기: 스테이지별로 리소스 묶음을 나눠 관리
  • 같은 리소스 중복 로드 막기: 여러 곳에서 같은 파일을 따로 불러오지 않게 확인
  • 사운드: 긴 배경음은 스트리밍, 짧은 효과음은 메모리에 미리 올리기

가비지와 오브젝트 풀

C# 기반 엔진에서는 쓰지 않는 메모리를 가비지 컬렉터가 자동으로 회수합니다. 편리하지만 회수 작업이 한꺼번에 일어나면 프레임이 순간적으로 멈춥니다. 매 프레임 문자열을 이어 붙이거나, 리스트를 새로 만들거나, 총알을 생성하고 파괴하는 코드가 대표적인 원인입니다.

오브젝트 풀은 자주 쓰는 객체를 미리 만들어 두고, 필요할 때 꺼내 쓰고 다 쓰면 돌려놓는 방식입니다. 생성과 파괴가 사라지니 가비지도 줄고 생성 비용도 아낄 수 있습니다. C++ 엔진에서도 메모리 조각화를 줄이기 위해 비슷한 방식을 씁니다.

그 밖의 기법과 최적화 습관

  • LOD: 멀리 있는 물체는 폴리곤이 적은 모델로 바꿔 그림
  • 그림자와 실시간 조명 수 줄이기, 필요한 곳은 라이트맵으로 미리 굽기
  • 투명 물체 겹침(오버드로) 줄이기: 파티클과 반투명 UI가 여러 겹 쌓이면 GPU 부담 증가
  • 무거운 계산은 몇 프레임마다 한 번씩만 수행
  • 해상도와 프레임 제한 옵션을 플레이어에게 제공

최적화는 출시 직전에 몰아서 하면 고칠 범위가 너무 커집니다. 개발 초기에 목표 기기와 목표 프레임을 정하고, 기능을 추가할 때마다 프로파일러로 확인하는 습관이 가장 효과적입니다. 아티스트와 리소스 규칙(폴리곤 수, 텍스처 크기)을 미리 합의해 두는 것도 중요합니다.

SBS아카데미게임학원 게임프로그래밍 과정은 Unity, Unreal Engine 기반 프로젝트 수업을 통해 실제 개발 환경에서 성능 문제를 다뤄 볼 수 있도록 구성되어 있습니다.

자주 묻는 질문

드로우콜은 몇 개 이하로 맞춰야 하나요?

정해진 기준은 없고 기기 성능, 엔진, 렌더링 방식에 따라 다릅니다. 목표 기기에서 직접 측정해 프레임 목표를 지키는지로 판단하는 것이 맞습니다.

최적화는 프로그래머만 하는 일인가요?

리소스 크기와 이펙트 구성에 따라 성능이 크게 달라지므로 아티스트, 기획자와 함께 기준을 정해야 효과가 큽니다.

이 글과 이어지는 과정

엔진 기반 프로젝트 수업에서 실제 게임을 만들며 성능 측정과 최적화를 경험할 수 있습니다.

게임프로그래밍학과

게임프로그래밍 과정

Unity, Unreal Engine 등 최신 게임 엔진 기반 실습을 중심으로 게임 개발 역량을 키우는 실무형 과정입니다. C# 및 C++ 언어를 활용한 게임 시스템 구현, 캐릭터 컨트롤, 물리 엔진 적용, UI/UX 연동, AI 알고리즘 등 다양한 개발 기술을 학습하며, 2D/3D 게임부터 온라인 멀티플레이까지 포괄적인 기획과 제작을 경험하게 됩니다.

교육기간 6~10개월강의정원 10명 내외강의시간 2시간 내외교육난이도 Lv.1~5
수업 진행 순서

단위 수업: 개념 설명 → 강사 시연 → 코드 구현 → 실행·디버깅 → 피드백 / 전체 과정: C/C++ 기초 → WinAPI와 2D 구현 → 게임 엔진(Unity·Unreal) 활용 → 프로젝트와 포트폴리오

실습 내용

C·C++로 코드를 직접 작성해 실행해 보고, WinAPI로 창 띄우기·도형 그리기·파일 입출력 같은 윈도우 프로그램을 만들어 봅니다. 이후 게임 엔진에서 캐릭터 조작, 물리 효과, UI, AI 같은 게임 기능을 구현합니다.

강사 피드백 방식

개념 설명과 강사 시연 후 수강생이 직접 구현한 코드와 실행·디버깅 결과를 강사가 1:1로 점검하고, 프로젝트와 포트폴리오 완성까지 함께 피드백합니다.

  1. C/C++ 기초기본 데이터 및 출력 · 기본 연산 및 흐름 제어 · 데이터 구조와 관리 · 함수와 포인터 · 객체지향 프로그래밍의 기초 · 객체지향 프로그래밍의 고급 개념
    기본 데이터 및 출력, 연산·흐름 제어(변수·조건문·반복문), 함수와 포인터, 객체지향 기초·고급, 자료구조를 배웁니다.
  2. WinAPI와 2D 구현WinAPI란? · 윈도우 객체 생성 · 윈도우 기본 입출력 · 윈도우 도형 그리기 · 윈도우 컨트롤 사용하기 · 파일 입출력 · 멀티스레드의 이해
    WinAPI 개념, 윈도우 객체 생성, 입출력·화면 제어, 도형 그리기·충돌 처리, 컨트롤·파일 입출력, 멀티스레드 이해 및 2D 게임 루프를 구현합니다.
  3. 게임 엔진 활용
    Unity(C#) 또는 Unreal(C++) 엔진을 활용해 캐릭터 컨트롤, 물리 엔진, UI 연동, 씬 구성, AI 알고리즘 등을 실습합니다.
  4. 프로젝트와 포트폴리오
    기능 설계, 구현·테스트, 빌드·발표까지 진행하며 2D·3D 게임 프로젝트와 취업용 포트폴리오를 완성합니다.

수료 후 결과물 — 수료 결과물(2D 게임 제작 및 3D 게임 프로토타입 등 직접 만든 게임 프로젝트 포트폴리오 (실행 가능한 빌드, 기획 의도·구현 기능·개선 과정을 정리한 기능 설명·개발 기록, 소스 코드 및 발표 자료로 구성)), C·C++ 기초 문법 및 자료구조 실습, WinAPI 윈도우 프로그램 및 2D 구현(입출력·화면 제어·충돌 처리·게임 루프), Unity(C#)·Unreal(C++) 게임 엔진 실습(캐릭터·UI·씬 구성), 2D 게임 제작 및 3D 게임 프로토타입 프로젝트, 실행 가능한 빌드·기능 설명(개발 기록)·소스 코드 포트폴리오

이어지는 진로 — 게임 프로그래머, 게임 클라이언트 개발자

게임프로그래밍 과정 자세히 보기 →

함께 보면 좋은 글

게임프로그래밍 과정 무료 상담

현재 실력과 목표를 알려 주시면 맞는 과정과 준비 순서를 안내해 드립니다.

  • 현재 실력과 목표에 맞는 시작 단계 진단
  • 목표(입시·취업·취미)에 맞춘 학습 로드맵
  • 선배 수강생 포트폴리오 상담 시 열람

전화 상담 010-2135-9730 · 카카오톡 상담 바로가기

빠른 수강료 조회

관심있는 교육과정을 선택해 주세요.(중복 선택 가능)

게임디자인학과

세부 교육과정 (선택)

세부 교육과정 (선택)

세부 교육과정 (선택)

게임개발학과

세부 교육과정 (선택)

세부 교육과정 (선택)

세부 교육과정 (선택)

세부 교육과정 (선택)

웹툰·웹소설학과

세부 교육과정 (선택)

세부 교육과정 (선택)

AI X 크리에이터

세부 교육과정 (선택)

가까운 지점을 선택해주세요.

    신청하시는 분의 이름과 연락처를 입력해 주세요.

    - -
    자세히 보기
    수집 항목: 이름, 연락처, 수강안내 관련 이력
    이용 목적: 수강안내 제공, 관련 이력 관리 및 맞춤형 재안내를 통한 서비스 품질 개선
    보유 기간: 수집일로부터 최대 3년간 보관 후 파기
    닫기

    개인정보처리 방침

    SBS아카데미게임학원은 이용자의 자유와 권리보호를 위해 『개인정보 보호법』 및 관계법령이 정한 바를 준수하여, 적법하게 개인 정보를 처리하고 안전하게 관리하고 있습니다.
    이에 『개인정보 보호법』 제 30조에 따라 이용자에게 개인정보 처리에 관한 절차 및 기준을 안내하고, 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립∙공개 합니다.


    제1조(개인정보의 처리 목적, 항목 및 보유기간)

    SBS아카데미게임학원은 다음 목적을 위하여 필요한 최소한의 개인정보를 수집·이용하며, 목적 달성 시 또는 보유기간 경과 시 지체 없이 파기합니다. 이용 목적 변경 시에는 법령에 따라 별도의 동의를 받습니다.


    구분 처리 목적 법적 근거 수집 항목 보유·이용 기간
    상담 신청 수강 상담, 문의 응대, 상담이력 관리 개인정보 보호법 제15조 제1항 제1호(동의) 이름, 연락처(휴대전화), 이메일, 상담내용, 상담일시 수집일로부터 3년
    수강생 관리 학사관리, 수강 이력 관리, 계약 이행 개인정보 보호법 제15조 제1항 제4호, 학원법 이름, 연락처, 생년월일, 성별, 주소, 이메일, 수강과정 등 수강 종료 후 5년
    회원 가입 회원관리, 로그인 인증, 서비스 제공 개인정보 보호법 제15조 제1항 제1호(동의) ID, 비밀번호, 이름, 생년월일, 성별, 연락처, 이메일 회원 탈퇴 시까지 (단, 법령에 따름)
    마케팅(선택) 이벤트, 광고성 정보 안내, 만족도 조사 개인정보 보호법 제15조 제1항 제1호(별도 동의) 이름, 연락처, 이메일 동의 철회 또는 1년 후 즉시 파기

    제2조(만 14세 미만 아동의 개인정보 처리)

    SBS아카데미게임학원은 만 14세 미만 아동의 개인정보 수집 시 반드시 법정대리인의 동의를 받습니다. 동의 여부 확인 절차를 별도로 마련하며, 법정대리인의 동의 없이는 수집하지 않습니다.


    제3조(개인정보의 제3자 제공)

    SBS아카데미게임학원은 원칙적으로 정보주체의 동의 없이 개인정보를 외부에 제공하지 않으며, 다음 경우에 한하여 예외적으로 제공합니다.

    • 1. 법령에 따른 제공
    • 2. 정보주체로부터 별도 동의를 받은 경우
    • 3. 급박한 생명·신체·재산상 이익 필요 시

    ※ 현재 SBS아카데미게임학원은 개인정보를 제3자에게 제공하지 않습니다.


    제4조(개인정보 처리 위탁)

    SBS아카데미게임학원은 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.


    수탁자 위탁업무 내용
    (주)코리아교육그룹 고객상담 시스템관리
    재수탁자 위탁업무 내용
    (주)인케이지 서버 및 DB 운영, 보안 관리
    (주)엠노베이션 광고대행, 광고관리, 광고성과 분석

    제5조(개인정보의 파기 절차 및 방법)

    SBS아카데미게임학원은 개인정보 보유기간 경과, 목적 달성 시 지체 없이 파기합니다.

    - 전자적 파일: 복구 불가능한 방식으로 삭제

    - 종이문서: 분쇄 또는 소각

    파기 기록은 내부 규정에 따라 관리하며, 최소 3년 보관 가능합니다.


    제6조(정보주체 권리)

    정보주체는 회사에 대해 다음 권리를 행사할 수 있습니다.

    1. 개인정보 열람 요구

    2. 오류 시 정정 요구

    3. 삭제 요구

    4. 처리정지 요구

    권리 행사는 서면, 이메일, FAX, 홈페이지, 고객센터 등을 통해 요청 가능하며, 코리아교육그룹은 10일 이내에 회신합니다.


    제7조(안전성 확보조치)

    SBS아카데미게임학원은 개인정보 보호를 위해 다음 조치를 시행합니다.

    - 관리적 조치: 내부관리계획 수립, 교육, 정기 감사

    - 기술적 조치: 접근권한 제한, 암호화, 로그기록 보관

    - 물리적 조치: 전산실, 자료보관실 접근 통제


    제8조(녹취 및 CCTV 관리)

    SBS아카데미게임학원은 상담 품질 개선을 위해 유선 상담 시 녹취를 실시할 수 있으며, 상담직원이 고객과의 통화를 직접 녹음하는 경우, 사전 고지 없이 녹음할 수 있습니다. 녹취파일은 1년간 보관 후 파기합니다. 외부 제공은 원칙적으로 금지합니다.


    제9조(개인정보 보호책임자)

    SBS아카데미게임학원은 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보보호책임자를 지정하고 있습니다.

    - 개인정보보호 책임자: 강경훈 원장

    - 연락처: 1588-0376

    - 이메일: [email protected]


    제10조(권익침해 구제방법)

    정보주체는 개인정보 침해 시 아래 기관에 신고·상담할 수 있습니다.

    - 개인정보침해신고센터: 118

    - 개인정보분쟁조정위원회: 1833-6972

    - 대검찰청: 1301

    - 경찰청: 182


    제11조(처리방침 변경)

    - SBS아카데미게임학원은 개인정보처리방침을 개정하는 경우 최소 7일 전에 홈페이지의 공지사항을 통하여 고지할 것 입니다.

    - 본 방침은 2025년 5월 1일 시행되며, 변경 시 홈페이지에 공지합니다.


    Customer Center

    010-2135-9730

    010-2135-9730

    주말·공휴일 상담 및 접수가 가능합니다.

    Top