본문 바로가기

전체 글170

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.
청강문화산업대 게임스쿨 2년 재학 후기를 적어보자. 2편 군대는 언제가야 할까 나는 군대를 사실 가지 않아도 됐었다. 난시로 공익이 되었는데, 그럼에도 군대를 갔다 올 수 밖에 없는 상황이었다. 모두가 그런건 아니지만, 나는 1학년 2학기 당시 원인 모를 우울증에 걸렸고, 학교도 나가지 않고 방황을 하며 지냈다. F는 6개까지 맞을 위기에 처했고, 결국에는 2학기가 끝나기전 휴학을 신청하며 1학년 2학기의 모든 성적을 초기화 시켰다. 사실 공익이 붙었다면 그냥 무시하고 공익 근무를 갔을지도 모르겠지만, 11월 보충역 근로지 선발에서 떨어지게 되었고, 결국엔 2학기 휴학을 한지 대략 17일만에자원입대를 하게 되었다. (솔직히 말하자면 지금은 나름 최고의 선택이라 생각한다.) 12월에 입대해서 6월에 전역을 하면 나름대로 2학기를 다시 복학해 바로 진행을 할 .. 2025. 5. 20.
청강문화산업대 게임스쿨 2년 재학 후기를 적어보자. 1편 참 갑작스럽게도 내가 현재 다니고 있는 대학교의 리뷰(?)를 진행하게 되었다. 군대전역하고 단 2개월만에 복학을 하고나서는 생각보다 바쁘게 살다보니 어느덧 벌써 2학년. 내 전공은 프로그래머이고, 현재 풀스택을 하고 싶어 네트워크와 DX(다이렉트 X) 두개를 모두 공부중이다. 참고로 내 면접당시 포트폴리오를 올릴 생각은 없으니, 그런걸 기대한 사람들은 이창을 끄고 돌아가길 바란다. 면접 준비 당시면접 당시를 이야기를 해보자면, 정말 반쯤 미쳐있었다는게 맞는거 같다.당시 나는 선린인터넷고등학교에 재학중이었고, 사실 상 학교를 잘 나오지는 않았다. 뭐 수험생이던 신분이니 모두가 공부에 혈안이 되어있어 다같이 정상은 아니었다고 생각하지만, 그래도 생각해보면 그때도 지금만큼은 바쁘게 살지는 않았던거 같다. .. 2025. 5. 20.
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.
4. C# 인터페이스 및 추상클래스 ,다형성 C#의 인터페이스와 추상 클래스, 그리고 다형성의 활용 C#에서는 클래스 간의 관계를 정의하거나 특정 기능을 보장하기 위해 **추상 클래스(Abstract Class)**와 **인터페이스(Interface)**를 사용한다. 이 글에서는 RPG 전투 시뮬레이션을 예시로 하여, 이 두 개념과 더불어 **다형성(Polymorphism)**을 어떻게 활용할 수 있는지 설명한다. 1. 인터페이스란? 인터페이스는 클래스가 따라야 할 **명세(contract)**를 정의한다. 구현을 포함하지 않으며, 오직 시그니처만을 포함한다. 이를 통해 클래스가 특정 기능을 반드시 제공하도록 강제할 수 있다.interface ISpecialAbility{ void UseSpecial(Character target);}ISp.. 2025. 4. 21.
3. C# 클래스 클래스의 구분내장형식(built-in Type, 닷넷 프레임 워크)Console, String, math…사용자 정의 현식(user defined type)using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace ConsoleApp1{ class MyFirstClass { static void Staticmethod() => Console.WriteLine("[1] 정적메서드"); void InstaceMethod() => Console.WriteLine("[2] 인스턴스 메서드"); static void Main() .. 2025. 4. 21.
2. C# 배열, 함수, 델리게이트 컬렉션이름 하나로 데이터 여러개를 담을 수 있는 그릇C# 컬렉션 - 배열(array) 리스트(list), 사전(dictionary)등등배열var array = new string[] {"Array", "List", "Dictionary"};foreach (var arr in array) {Console.WriteLine(arr);}- 출력값ArrayListDictionary리스트var list = new List {"Array", "List", "Dictionary"};foreach (var item in list ) {Console.WriteLine(item );}- 출력값ArrayListDictionary사전(Dictionary)var dictionary= new Dictionary{{0,"Array.. 2025. 4. 21.
1. C# 기초 1. CLR의 타입 시스템 - CLR : 공통 언어 런타임, 즉 모든 C# 코드의 실행 환경 - 타입 안정성 : 잘못된 타입 사용방지 - 모든 타입은 'System.Object'에서 파생됨. 2. 값 타입 - struct, enum 두가지 형식(값 형식은 sealed) - int, long, double, char, bool등, - 스택에 할당되며, 값 자체를 저장한다. - 변수간의 복사는 값 자체의 복사이다.int // System.Int32long // System.Int64double // System.Doubleint a = 0; // System.Int32 a = new System.Int32(); - 변수간 복사는 값자체의 복사이므로, GC 관여없이 효율적이다. int a = 10;in.. 2025. 4. 21.