본문 바로가기

Game DevTip38

2. Algorithm : 알고리즘에 대해서 알고리즘이란 무엇인가?알고리즘은 하나의 문제를 해결하기 위한 단계적 절차나 방법을 의미한다. 같은 문제라도 여러가지 다른 방법으로 해결 할 수 있으며, 이때 효율성이 가장 중요한 선택 기준이 됨. 알고리즘의 핵심 특징- 명확성 : 각단계가 명확하고 모호하지 않아야 함.- 유한성: 유한한 단계 내에서 종료되어야 함.- 입력 : 0개 이상의 입력이 있어야 함- 출력 : 1개 이상의 출력이 있어야 함. - 효율성 : 문제 해결에 걸리는 시간과 공간이 합리적이어야 함. 실생활 예시: 전화번호부에서 이름 찾기문제: 전화번호부에서 "홍길동"의 전화번호 찾기방법 1: 순차검색1. 전화번호부의 첫 페이지부터 시작2. 한 명씩 차례대로 이름을 확인3. "홍길동"을 찾을 때까지 반복4. 찾으면 전화번호 반환 방법 2:.. 2025. 6. 9.
1. Algorithm : 피보나치 수열 & 다이나믹 프로그래밍 피보나치 수열이란? - 피보나치 수열은 이탈리아 수학자 레오나르도 피보나치가 발견한 수열이다. 앞의 두수를 더해서 다음 수를 만들어가는 규칙을 가지고 있음. 참고로 알고리즘을 할 때 해당 수학적 걔념이 많이 쓰인다 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...규칙을 자세히 보면:0번째: 01번째: 12번째: 0 + 1 = 13번째: 1 + 1 = 24번째: 1 + 2 = 35번째: 2 + 3 = 5수학적으로 표현하면: F(n) = F(n-1) + F(n-2)이다. 피보나치 수열을 구현하는 3가지 방법1. 반복문 방식(for문) - 가장 직관적이다. 2. 재귀 방식 - 수학적 정의와 가장 유사하다. 3. 다이나믹 프로그래밍 방식 - 가장 효율적이다. 1. 반복문(for문) .. 2025. 6. 9.
1. Devtalk : 개발 공부에서는 AI를 어디까지 사용하는 것이 이로운가? 현재 개발 업계의 과도한 AI 사용이 과연 옳지 않은 것인가?최근 2~3년 부터 LLM 모델의 등장으로 인해서 세상의 흐름이 매우 빠르게 변하고 있다.개발 업계에서 이미 웹쪽은 LLM AI에 의해서 사실상 초보 개발자가 격퇴당한 수준이나 마찬가지일 만큼그만큼 LLM의 성능이 갈수록 좋아지고, 그만큼 현업의 주니어, 또는 아직 취준생인 사람들은사실상 가장 힘든 시기를 보내고 있지 않을까 싶다. 그만큼 AI를 활용한 코드들도 굉장히 많아지고 있으며, 심지어 마이크로소프트의 경우는 현재 개발, 상용화된 프로그램중 30%정도는 AI가 생성한 코드라고 한다. 메타나 구글도 비슷하게 추세를 따라가고 있는 지금, 과연 현재 개발자를 지망하는 학생들은 어떻게 해야할까? 최근 아마존을 취업한 20대가 사실 코딩 테스트.. 2025. 5. 21.
8. C++로 GameObjectPool을 구현 해보자. C++ 게임 오브젝트 풀 패턴 상세 구현 게임 개발에서의 성능은 핵심 요소이다. 특히 미사일, 총알, 파티클 등 수많은 객체가 동시에 생성되며, 소멸되는 상황에서메모리 관리는 게임의 프레임률과 직결된다. 이번글에서는 메모리 관리 최적화의 대표적 기법인 오브젝트 풀(Object Pool) 패턴을 C++로 구현 해보겠다. 오브젝트 풀 패턴이란?오브젝트 풀 패턴은 자주 생성되고 파괴되는 객체들을 위해 미리 메모리를 할당해 주고서필요할 때 이 풀에서 객체들을 가지고와서 사용한 후 다시 풀로 반환하는 방식이다. 주요 장점은 메모리 할당 및 해제시 오버헤드가 감소한다. new와 delete 연산의 빈번한 호출을 피하게 된다. 또한 메모리 파편화를 방지하여 동적 메모리의 반복적인 할당 및 해제로 인한 메모리 파.. 2025. 5. 21.
7. C++ friend, 동적메모리 관리, 클래스 상속에 대해서 알아보자. C++ Friend 에 대해서 객체지향 프로그래밍의 핵심 원칙중 하나는 캡슐화, 그리고 데이터 은닉이다. 하지만 때로는 예외를 둘필요가 있는데, C++에서는 friend 키워드를 사용하여 은닉성의 예외를 두기도 한다. Friend 키워드는 C++에서 제공하는 특별한 접근 권한 지정자로. 다른 클래스나 함수에게 자신의 private 또는 protected 멤버에 접근할 수 있는 권한을 부여한다. 해당 기능으로 코드의 효율성이나 유연성을 높이기 위해서 제공이 된다. 1. 전체 클래스 권한 부여.class PlayLevel{ // 다른 멤버들... friend class DesignedLevel; // DesignedLevel 클래스에 접근 권한 부여private: int mCompon.. 2025. 5. 21.
0. Direct X 기초 이해하기 : SDK, 라이브러리, Dx역사. DirectX 기초 이해하기: SDK, 라이브러리, 그리고 DirectX의 역사 게임 및 3D 그래픽 프로그래밍에서 가장 중요한 위치를 차지하는 Direct X.그런 다이렉트 X에 대해서 오늘은 알아보고자 한다. 하지만 그전에 용어에 대해서 알아할 개념들이 몇가지 있다. SDK 란 무엇인가?기본적으로 다이렉트 X를 개발하는 사람들은 DX SDK를 사용한다. 즉, SDK는(Software Development Kit)소프트웨어 개발 키트의 약자이다.정확한 정의 : SDK는 특정플랫폼, 운영체제, 또는 프로그래밍 언어를 위한 개발도구 모음.SDK vs API : SDK는 API(Application Programing Interface)를 포함하는 더 큰 개념이다. API는 소프트웨어 간의 통신 방법을 정.. 2025. 5. 21.
Git Bash 심화 사용법 정리 Git 심화 사용법 정리1. 브랜치 전략1.1 브랜치 생성 및 전환git checkout -b feature/login 1.2 브랜치 병합 (Merge)git checkout maingit merge feature/login fast-forward 방식: 단순한 선형 병합--no-ff 옵션: 병합 커밋을 남김git merge --no-ff feature/login 1.3 브랜치 삭제git branch -d feature/login # 병합된 브랜치만 삭제git branch -D feature/login # 강제 삭제 2. Rebase와 Merge의 차이2.1 Rebase 사용 예시git checkout featuregit rebase main 커밋 히스토리를 “깔끔하게” 유지하고 싶을 때 사용.. 2025. 4. 21.
Git Bash 설치및 Git 기본 사용법 Git Bash 설치 및 Git 기본 사용법 1. Git Bash란? Git Bash는 Windows 환경에서 Git을 명령어 기반으로 사용할 수 있게 해주는 도구다. Git은 기본적으로 리눅스/유닉스 계열에서 CLI(명령어)를 기반으로 동작하므로, Windows에서도 유사한 환경을 제공하기 위해 Git Bash를 사용한다. 2. Git Bash 설치 방법 Git 공식 홈페이지에 접속운영체제에 맞는 설치파일 다운로드 (Windows 사용자는 .exe 파일)설치파일 실행 후 기본 설정대로 설치 진행설치 완료 후, 바탕화면 또는 우클릭 메뉴에서 “Git Bash Here” 실행 가능 3. Git 최초 세팅 (사용자 정보 설정)git config --global user.name "Your Name"git .. 2025. 4. 21.