[내일배움캠프 Unity 9기]

04/24 캠프 배치고사 및 복습 내용

kyvv 2025. 4. 24. 21:08

오늘은 배치고사로 인해 팀 프로젝트보다는 이쪽으로 치중한 하루였다.
기능 구현들은 거의 다 완성된 상태이니 리팩토링이나 사소한 수정 부분을 제외하면 남은 것이 없었기에 개인 공부에 시간을 투자했고, 그 과정 중 하나가 과거에 배웠던 내용을 복습하는 것이었다.
어제 잠을 덜 자서 그런지 복습양이 많지는 않았지만 잊고 있었던 부분을 다시 돌아보게하는 시간이었다.

✅ 디자인 패턴

🔹 싱글턴(Singleton)

  • 하나의 인스턴스만 존재해야 하는 경우 사용.
  • 생성자 private, static 멤버 함수로 접근.
  • inline static (C++17 이후)으로 멤버 변수 정의 가능.
  • 구현 방식
    • 지역 static 변수: 첫 호출 시 생성.
    • 동적 할당 시 atexit()으로 소멸자 등록 가능.
  • 주의사항
    • 정적 멤버 변수 간 초기화 순서, 파괴 순서 보장 어려움.
    • 멀티스레드 환경에선 동기화 필요.

🔹 커맨드 패턴(Command Pattern)

  • 명령(Command), 수신자(Receiver), 발동자(Invoker), 클라이언트(Client)로 구성.
  • 비동기 명령 처리 시 유용 → 큐에 명령 객체를 담아 실행.
  • 명령은 추상 클래스에서 파생된 다형성 구조로 구현.

✅ 소프트웨어 구조 및 객체지향

🔹 유닛 클래스 구조

  • 다형성을 활용해 각기 다른 유닛도 동일한 방식으로 동작 처리.
  • 클래스는 역할보단 능력치 차이만 강조.

🔹 Scene 객체

  • 화면 배치 역할만 수행하는 데이터 껍데기.
  • 실제 액션은 별도의 매니저가 처리.

🔹 Don't Destroy 객체

  • 게임 전체에서 유지되어야 할 정보를 보관하는 객체.
  • 씬 전환 시에도 파괴되지 않음.

✅ 게임 설계 방식

🔹 DOD (Data-Oriented Design)

  • CPU 캐시 효율을 고려한 구조체 중심의 설계.
  • 성능 최적화에 유리하지만, 설계 및 유지보수는 어려움.

✅ 윈도우 API 및 문자열 처리

🔹 그래픽 테스트용 윈도우 API 사용

  • 콘솔 기반 테스트 외에 윈도우 창 기반 그래픽 출력 실습.

🔹 유니코드 및 인코딩

  • 유니코드는 기본적으로 2byte 단위지만, BOM 포함 여부 주의.
  • 웹 서버(Apache 등)에서는 BOM이 문제를 일으킬 수 있음.

🔹 문자열 함수 종류

  • W: 유니코드(와이드), A: ANSI, T: 중립형
  • 현대 환경에서는 W 계열 사용 권장.