코딩의 신 65

김동관·2026년 1월 6일

오늘 한 일

오늘은 개발자들이 받을 수 있는 면접질문들에 대해 정리해보았습니다.

프로젝트 장르별 기술적 질문
(예: 디펜스, 로그라이크, 뱀서라이크 등에 대한 시스템 구현 의도)
:

  • 디펜스 장르는 경로와 웨이브가 핵심이기 때문에적 이동은 Waypoint 기반으로 단순화하고,웨이브 데이터는 CSV로 관리해 기획자가 조정할 수 있게 설계합니다.타워 공격은 Tick 기반으로 처리해 성능을 안정화.
  • 로그라이크는 반복성과 랜덤성이 중요하기 때문에모든 랜덤 요소를 시드 기반으로 관리합니다.아이템과 스킬은 데이터 테이블로 분리해 조합 확장이 쉽도록 설계.
  • 뱀서라이크 장르는 수백 개의 적과 투사체가 동시에 등장하기 때문에오브젝트 풀링과 GC 최소화가 최우선 과제입니다.모든 공격 로직은 Update가 아닌 Tick 기반으로 처리하고,자동 타겟팅은 거리 계산을 최소화해 성능을 유지

CS/프로그래밍 기초

객체(Object) 개념이란? “객체는 단순한 데이터가 아니라 상태와 행동을 함께 가지는 단위
접근제한자란? 이 멤버를 누가 접근할 수 있는가”를 정하는 규칙 public private, protected 어디서든, 해당 클래스 내부, 해당 클래스 + 자식 클래스

  • 자료구조
    • Stack / Queue stack:후입 queue:선입 선출 Undo나 상태 복원에 적합, 작업 대기열이나 이벤트 처리에 사용
    • Array / List / LinkedList : 차이크기가 고정된 데이터에는 Array를,대부분의 가변 데이터에는 List를 사용합니다.LinkedList는 중간 삽입/삭제가 매우 잦은 특수한 경우에만 사용
    • 얕은 복사 / 깊은 복사. 의도적으로 공유할 때, 설정 테이블, 읽기 전용 데이터, 캐시 데이터/ 독립적인 상태가 필요할 때,런타임 인스턴스플레이어 상태,시뮬레이션
  • 힙 / 스택 메모리 스택(Stack)함수 실행 중 필요한 임시 메모리, 힙(Heap) 런타임 중 동적으로 할당되는 메모리. 값타입 스택은 복사를 하고, 참조타입 힙은 객체를 가르킴
  • 다형성 다형성의 목적은 유연성 + 확장성 같은 인터페이스나 부모로 다른 행동을 하게 하는것. 이걸 if 문 같은거로 하면 오래걸림
  • 인터페이스 vs 추상 클래스 서로 다른 클래스에 같은 기능을 부여하고 싶을 때” 저는 분모라 생각합니다 추상 클래스는 캐릭터의 공통 뼈대
  • 클래스 vs 구조체 전달방식이 클래스는 참조전달 구조체는 값 복사입니다.상태를 공유하거나 수명이 긴 객체는 클래스를 사용하고,좌표나 색상처럼 가볍고 자주 생성되는 데이터는구조체를 사용해 GC를 줄입니다

Unity 엔진 관련 질문

  • Unity 생명주기 - 1. (Initialization) Awake-Enable-Start. 2.(Physics) FixedUpdate - OnTrigger - OnCollision - Update - LateUpdate 3.(Decommissioning) OnApplicationQuit - OnDisable - OnDestroy.
  • Update / FixedUpdate / LateUpdate 차이1. Update(): Update는 프레임마다 한 번씩 동작하며 그 간격이 일정하지 않다. 렌더링 엔진에서 얼마나 많은 그래픽 리소스를 로드하는지에 따라 느려지거나 빨라지기 때문에 일정하지 않은 시간에 물리적 충돌이 발생할 수 있다.2.(FixedUpdate): 는 보통 물리 처리에서 자주 사용되는데 프레임당 실행되는 Update와 달리 고정 시간 마다 동작하기 때문3.LateUpdate(): LateUpdate는 모든 Update 문이 호출되고 가장 마지막에 호출이 된. 여기에는 보통 카메라를 가장 많이 넣는다.왜나면 Update에서 Input 체크, FixedUpdate에서 이동 처리 등의 과정이 다 끝나도 LateUpdate에서 카메라를 움직여 준다면 더욱더 부드러운 움직임을 보여줄 수 있다.
  • Time.deltaTime: 100프레임 =. 1초에 100번 바뀜 0.01초에 Time.deltaTime을 사용하면 다른 플랫폼과 장치여도 각 프레임에 맞게 업데이트를 해줌으로써 다양한 사용자들이 일관된 환경에서 게임을 플레이 할 수있게 도와준다.
  • 코루틴 - 프레임 간에 멈추고 재개할 수 있는 특별한 형태의 메서드. 특정 시간 동안 대기하거나 비동기 작업을 수행할 떄 유용
  • 멀티스레딩 - Unity API를 건드리지 않는 순수 연산을 백그라운드에서 처리하는 것
  • GC / 최적화 - GC(가비지 컬렉션)란? GC = 더 이상 쓰지 않는 메모리를 자동으로 정리하는 시스템. 문제대표: Update에서 new 남발,string 연결,LINQ 사용,foreach (컬렉션),GetComponent 반복 호출 줄이는법:런타임 중 할당을 하지 말 것Update / FixedUpdate 에서 new 금지한 번 만든 건 재사용, 오브젝트 풀링
  • DrawCall - cpu가 GPU 최적화의 핵심. 이 오브젝트를 어떤 재질로 어떤 메쉬로 그려라 ,움직이지 않는 오브젝트 static mesh renderer사용률 줄이기 같은 Mesh + 같은 MaterialGPU Instancing (같은 Material 사용) sprite Atlas 사용하나의 텍스처
  • Canvas 동작 방식 - UI를 그리는 하나의 묶음 단위 Canvas가 자신의 자식 UI 전체를 스캔. RectTransform / Layout 계산(Draw Call 생성). UI들을 하나의 Mesh 묶음으로 생성
  • 디버깅 방식 ① 재현 → ② 범위 축소 → ③ 가설 → ④ 검증 → ⑤ 재발 방지 1: (특정 씬 / 상황 / 입력 조건 고정랜덤 요소 제거 로그 시점 명확화,2: 특정 컴포넌트 / 씬 / 시스템 분리 임시로 기능 비활성화해서 범위축소, 3:가설을 세웁니다. 4: 수치로 확인 디버그 같은 도구사용 5:“같은 유형의 버그가 다시 나오지 않게 설계 방어코드 구조개선
  • 데이터 파일 포맷 (CSV / JSON) 코드와 분리된 게임 데이터를 저장하는 형식
  • TCP / UDP 차이(네트워크 기초)TCP는 정확성 느림, UDP는 실시간성에 초점을 둔 프로토콜 네트워크 관련 4번째 단계

제가 미리 써둔 답변들이며 개념적인 질문이 많이 포함됩니다.

profile
아이디어 뱅크

0개의 댓글