개발자 능력치 물약(21)
-
게임 동기화 방식) 최종 일관성 , 서버 되감기 기법
CAP 정리를 통한 게임 동기화NDC 발표자료 학습 내용 정리 및 언리얼 엔진 적용 🔹 CAP Theorem 정리 기본 개념분산 시스템에서는 다음 3가지 속성 중 최대 2가지만 동시에 만족할 수 있다:일관성 (Consistency): 모든 노드가 같은 시점에 같은 데이터를 보는 것가용성 (Availability): 시스템이 항상 응답 가능한 상태를 유지하는 것분할용인 (Partition Tolerance): 네트워크 분할 상황에서도 시스템이 동작하는 것멀티플레이 네트워크 게임은 분산 시스템이라고 할 수 있다.🎮 게임 서버 설계 방식동기 vs 비동기 처리동기 처리: 코드 작성 유리, 성능 불리 → 실시간 네트워크게임에 적합비동기 처리: 코드 작성 불리, 성능 유리 → 웹서비스, 모바일/소셜게임에 적합?..
2025.05.28 -
파일 시그니처
파일 시그니처란? 파일 시그니처는 파일의 시작 부분에 위치한 특정 바이트 시퀀스로, 해당 파일의 유형이나 형식을 식별하는 데 사용됩니다. 일반적으로 "매직 넘버(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