ODBC란
서버 & 네트워크2025. 9. 6. 12:16ODBC란

ODBC란?Open Database Connectivity의 약자로 운영체제와 DBMS 사이의 표준 인터페이스를 의미한다. (MS가 개발)즉, MySQL, Oracle, SQL Server, PrstgreSQL 등 서로 다른 데이터베이스라도 OBCD드라이버만 있으면 동일한 방식으로 SQL을 실행하고 주고받을 수 있게 해주는 것이다. 쉽게 말하면 DB에 접속하고 SQL을 실행하기 위한 표준화된 방법을 의미한다. 왜 사용할까?애플리케이션(C/C++)에서 DB에 접속하고 SQL을 보내고 결과를 받아야한다.근데 DB는 SQL Server, Oracle, 등 다양하다. 만약 DB가 변경될 때마다 전용 드라이버 API를 다시 배우고, 코드 구조를 갈아엎어야 한다면 유지보수가 힘들 것이다. DB선택지를 한번 보도..

PCB와 TCB
CS2025. 8. 30. 17:01PCB와 TCB

이번에는 PCB와 TCB가 무엇인지 알아보도록 하자.컨텍스트 스위칭을 할 때 PCB라는 자료구조를 갈아끼운다고 알고는 있는데 TCB는 무엇이고 어디서 어떻게 쓰는지 짧게 정리해 보았다. PCB란?Process Control Block의 약자로 운영체제가 프로세스(한 프로세스 단위의 실행 컨텍스트, 자원 집합)정보를 관리하기 위해 커널이 갖고 있는 데이터 구조를 의미한다.PCB에는 다음과 같은 항목들이 들어간다.- PID(프로세스 식별자)- 프로세스 상태(new, ready, running, waiting, terminated)- 메모리 정보 포인터(페이지 테이블, 주소 공간 정보 등)- 파일 디스크립터 테이블 포인터 (열린 파일 목록)- 시그널 핸들러 정보- 게정/권한 정보(UID/GID)- 부모/자식 ..

빌보드 기법
컴퓨터 그래픽스2025. 8. 27. 21:38빌보드 기법

빌보드 기법이란?3D 공간에 있는 객체가 항상 카메라를 바라보오록 회전하는 기법을 의미한다.게임 내에서 불꽃이나 나뭇잎들이 해당 기법을 사용해서 어디서 바라보더라도 항상 카메라를 향하게 하여 어색하지 않게 보이게 해준다. 빌보드 기법을 통해서 횟불의 불이 항상 카메라를 향하도록 하였다.이를 구현하기 위해서는 View행렬에 대한 이해가 필요한데 아래 링크를 통해 이해를 해보도록 하자.https://cjbworld.tistory.com/71 View Spcae Matrix 만들기뷰 스페이스란?'뷰 행렬은 카메라의 위치와 방향을 기반으로 3D공간을 카메라의 시점으로 변환하는 행렬'이다..이 행렬이 필요한 이유는 월드 공간은 매우 넓은 영역인데 이 영역을 다 보여준다cjbworld.tistory.com 빌보드 ..

PE 포맷 구조 분석과 실행파일 조작하는 방법
CS2025. 7. 30. 22:40PE 포맷 구조 분석과 실행파일 조작하는 방법

우리가 흔히 아는 컴파일 과정이 있다.전처리 > 컴파일 > 어셈블 > 링크 > 실행파일 생성이중에서도 실행파일의 PE포맷을 짧게 알아보고 실행파일 조작을 어떻게 하는지 알아보자. obj파일 생성과 분석우선 .obj이 어떻게 생성되는지 부터 보도록하자.#include using namespace std;int main(){ int a = 10; return 0;}위처럼 코드를 작성해주고 PowerShell을 켜준다. (본인은 직접 .obj파일을 생성하고 링크할 것이다) cl /c main.cpp위 명령어를 통해 .obj파일을 뽑아내준다. (물론 중간에 전처리, AST, IR등 어렵고 복잡한 단계를 거쳐서 .obj파일이 생성된다. 이부분은 다음에 글을 쓰도록 하겠다) 생성한 main.obj을 그냥 열면 알수..

Floating Point 란?
CS2025. 7. 21. 23:08Floating Point 란?

Floating Point는 글자 그대로 해석하면 '떠 있는 점'이고 다른 말로하면 '부동 소수점'이다.부동 소수점이 뭔지 IEEE 754는 또 뭔지 알아 보도록 하자.다른 인터넷글을 찾아보면 부동 소수점에 대한 설명이 불친절? 하다고 느껴서 본인이 공부한 것을 좀 쉽게 풀어서 정리하려고 한다. 그리고 123.125f의 메모리를 까보면 00 40 f6 42가 나오는데 왜 값이 이렇게 나오는지와 에디안에 대해서도 짧게 알아보자. IEEE 754와 float단정도우선 어디서 한번쯤 들어봤을 법한 IEEE 754가 무엇인지 알아보자. (보통 I 트리플 754라고 발음하는 것 같다)'IEEE 754는 컴퓨터가 부동 소수점 수를 이진수로 어떻게 표현하고 연산할지를 규정한 국제 표준이다.' 그럼 IEEE 754라..

[UE5] SetBrushFromSoftTexture함수 분석
UE52025. 6. 21. 18:32[UE5] SetBrushFromSoftTexture함수 분석

UImage클래스의 SetBrushFromSoftTexture함수를 간단하게 분석하고 본인 피셜로 정리하였습니다.우선 해당함수는 텍스쳐를 '비동기 로딩'을 해주는 함수이다. ue에서는 ref가 두가지로 나뉘는데 첫번째는 hard ref 두번째는 soft ref가 있다. hard ref는컴파일 타임에 설정된 Resource 또는 Instance에 대한 직접적인 포인터이다.우리의 캐릭터가 로드되면서, 함께 로딩하는 TObjectPtr로 선언한 언리얼 오브젝트들도 메모리에 함께 로딩된 것을 의미하고 soft ref는 필요한 데이터만 로딩하도록 할 수 있는 것을 의미한다. 에셋의 경로만을 가지고 있고 사용자가 manual하게 로드해주어야한다(필요시) SetBrushFromSoftTexture함수는 텍스쳐를 비동..

[CPP] Universal Reference & forward (모두의 코드 분석)
CPP2025. 5. 31. 18:10[CPP] Universal Reference & forward (모두의 코드 분석)

https://modoocode.com/228" data-og-description="모두의 코드 씹어먹는 C++ - 작성일 : 2018-03-27 이 글은 50581 번 읽혔습니다. 등에 대해 다룹니다. 안녕하세요 여러분! 지난번의 우" data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/228" data-og-url="https://modoocode.com/228" data-og-image=""> 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2018-03-27 이 글은 50581 번 읽혔습니다. 등에 대해 다룹니다. 안녕하세요 여러분! 지난번의 우modoocode.com위 글에서 좀 내리다 보면 perfe..

[UE] UnrealEngine 빌드 과정과 Module 추가방법
UE52025. 5. 30. 15:56[UE] UnrealEngine 빌드 과정과 Module 추가방법

우선 unreal engine이 어떤 요소들로 이루어져있는지 부터 알아보자.ue는 module, plugin, project로 구성이 되어있으며 ue에서 코드 구조를 조직화하고 확장하는데 필수적인 구성요소들로 이루어져있다. Module이란module은 에디터 툴, 런타임 기능, 라이브러리 등과 같은 기능을 담당하는 코드의 패키지이다. 좀더 쉡게말하면 하나의 DLL처럼 동작하며, 코드 파일들을 하나의 단위로 묶어주는 역할을 한다.각 module은 .cpp, .h를 함께 갖고있으며, 이 둘을 하나의 최소실행 단위로 생각할 수 있다. module은 프로젝트, 플러그인과 같은 다른 요소에 종속적이다. 즉, 모듈은 단독적으로 동작할 수 없으며, 다른 plugin 또는 project와 함께 동작하도록 설계되어야 한..

image