개발자 능력치 물약(20)
-
파일 시그니처
파일 시그니처란? 파일 시그니처는 파일의 시작 부분에 위치한 특정 바이트 시퀀스로, 해당 파일의 유형이나 형식을 식별하는 데 사용됩니다. 일반적으로 "매직 넘버(Magic Number)"라고도 불리며, 파일을 열 때 어떤 프로그램이나 처리 방식이 필요한지 결정하는 중요한 정보를 제공합니다. 표준 파일 포맷의 시그니처 예시 대부분의 표준 파일 형식들은 고유한 시그니처를 가지고 있습니다:JPEG 파일: FF D8 FF (16진수)로 시작PNG 파일: 89 50 4E 47 0D 0A 1A 0A (16진수)로 시작GIF 파일: 47 49 46 38 (ASCII로 "GIF8")로 시작PDF 파일: 25 50 44 46 (ASCII로 "%PDF")로 시작 운영체제는 이러한 시그니처를 확인하여 파일의 유형을 판단..
2025.04.29 -
Fall Back, Fall through
🧩 1. Fallback (폴백)✅ 뜻기본 방식이 실패하면 다른 대체 방식으로 넘어가는 것✅ 주요 맥락파일 파싱 실패 시 다른 포맷 시도서버 요청 실패 시 다른 서버나 캐시를 사용폰트가 없으면 대체 폰트를 보여줌if (!LoadNewFormat(filePath)) { LoadOldFormat(filePath); // 폴백: 새로운 방식 실패 → 옛날 방식으로 대체}🧩 2. Fallthrough (폴스루)✅ 뜻switch 문에서 break 없이 다음 case로 넘어가는 것✅ 주요 맥락switch-case에서 쓰임조건이 맞는 case 블록 실행 후, 명시적으로 중단하지 않으면 다음 case도 계속 실행됨switch (command) {case 1: DoBasicAction();// break;..
2025.04.21 -
리소스 작업 자동화 툴 만들기
파이썬의 이미지 라이브러리인 Pillow를 활용해서 만들었습니다. winapi 프로젝트를 진행하면서 리소스를 작업하는일이 많다. 직접 그림판 , Gimp로 작업하는것도 한계가 있다. 프로젝트 볼륨이 커지니까 필요한 리소스도 엄청많아졌다. 1000장정도 되는 파일들을 한번에 처리할 방법을 생각하다가 간단한 파이썬 코드로 자동화툴을 만들어서 쓰기로 했다. 1. png-> bmp 자동변환 툴 from PIL import Imageimport osdef convert_png_to_bmp_recursive(source_dir, dest_dir=None, delete_original=False): # 대상 디렉토리가 지정되지 않았으면 소스 디렉토리와 동일하게 설정 if dest_dir is None: ..
2025.04.17 -
파이썬 문자열 파싱을 이용해서 이미 푼 백준문제 깃허브연동하기
백준허브가 private으로 설정해놔서 3주간 깃허브에 푼문제가 올라가지 않았다.. 자동으로 링크를 넘겨주는 익스텐션인데 이걸 사용하면 1분만에 이미 푼문제들을 올릴 수있다. 첨부할 링크는 해당 맞은문제의 채점화면이다. https://www.acmicpc.net/status?from_mine=1&problem_id={문제번호}&user_id={본인의 아이디} 채점화면의 링크는 이런식으로 구성되어있다. 이제 문제번호만 긁어오면 끝이다. 하지만 채점현황을 보면 문제번호뿐만아니라 여러가지 정보들이 포함되어있다. 그래서 파이썬 코드로 문자열 파싱을 통해 문제번호만 가져와서 채점화면링크에서 문제번호만 바뀐 링크들을 가져오려고한다. 입력 파일: 코드:# 파일에서 데이터를 읽어오기 (인코딩 명시)with op..
2025.04.17 -
레이캐스팅으로 2.5d 맵 만들기
https://github.com/365kim/raycasting_tutorial/blob/master/2_basics.md raycasting_tutorial/2_basics.md at master · 365kim/raycasting_tutorial(한글) 레이캐스팅 튜토리얼 번역. Contribute to 365kim/raycasting_tutorial development by creating an account on GitHub.github.com레이캐스팅 튜토리얼을 보며 학습했습니다. 레이캐스팅은 2차원맵에서 3차원의 원근감을 보여주는 , 2.5d 기법입니다.울펜슈타인3d, 둠같은 예전 게임들은 컴퓨터 성능이 좋지않아서 3d엔진을 실시간으로 실행할 수 없었습니다. 그래서 3d인척하는 레이캐스팅 ..
2025.04.14 -
회전변환행렬
정의 :선형 변환에서 회전변환행렬(Rotation matrix)은 임의의 행렬을 원점을 중심으로 회전시킨다.회전변환행렬(Rotation matrix)은 선형 변환의 성질중 하나이며,동시에 여러 회전변환행렬중 일부는 대칭변환행렬 즉 반사행렬(Reflection matrix)과 관련이 있다. 회전각도( Θ 값 )가 커지거나 작아짐에 따라 x' , y'의 좌표가 바뀐다. 컴퓨터 그래픽에서의 사용: 1) 폰트 그래픽의 회전 2) 레이캐스팅 광선의 방향: 플레이어위치벡터(pos) + 방향벡터(dir) + 화면에 렌더되는 카메라 평면벡터(plane) ( 방향벡터 ) + ( 카메라평면 x 배수 ) 이다. 방향벡터와 카메라 평면벡터를 회전하는 각도(a)에 따라 회전행렬을 곱해주면 광선의 방향..
2025.04.13