인기글
-
[C++ 게임 개발 시리즈] Day 3: 개발 환경 설정 (Visual Studio, CMake, SFML/SDL 설치)
개발 환경 설정게임 개발을 시작하기 위해서는 먼저 개발 환경을 설정해야 합니다. 오늘은 Visual Studio와 CMake를 사용하여 SFML과 SDL을 설치하고 설정하는 방법을 학습하겠습니다.1. Visual Studio 설치 및 설정Visual Studio 설치:Visual Studio는 강력한 C++ 개발 환경을 제공합니다. Visual Studio 다운로드 페이지에서 설치 파일을 다운로드하고 설치합니다.설치 중 "Desktop development with C++" 워크로드를 선택합니다.새 프로젝트 생성:Visual Studio를 실행하고, "Create a new project"를 선택합니다."Empty Project"를 선택하고, 프로젝트 이름과 위치를 지정한 후 "Create"를 클릭합니다..
2024.08.01
-
[C++로 배우는 게임 엔진 개발] Day 3: 기본 프로젝트 구조 설정
기본 프로젝트 구조 설정오늘은 기본 프로젝트 구조를 설정하고, 간단한 윈도우 창을 생성하는 방법을 학습합니다. 이를 통해 게임 엔진의 기본 틀을 마련합니다.1. 프로젝트 디렉토리 구조기본 프로젝트 구조는 다음과 같이 설정합니다:GameEngine/├── CMakeLists.txt├── include/│ └── GameEngine.h├── src/│ ├── main.cpp│ └── GameEngine.cpp└── build/2. CMake 설정프로젝트의 CMakeLists.txt 파일을 수정하여 필요한 라이브러리를 추가하고, 소스 파일을 구성합니다. 오늘은 SDL2 라이브러리를 사용하여 윈도우 창을 생성할 것입니다. CMakeLists.txtcmake_minimum_required(VERSION..
2024.08.01
-
[SLAM] 7일차: Visual SLAM 이론과 실습
Visual SLAM 이론과 실습이번 단계에서는 Visual SLAM의 기본 이론을 배우고, 이를 적용한 간단한 실습을 진행하겠습니다.1. Visual SLAM 이론Visual SLAM (V-SLAM)은 카메라를 이용하여 로봇의 위치를 추정하고 지도를 생성하는 SLAM 방식입니다. V-SLAM은 주로 Monocular SLAM (단일 카메라), Stereo SLAM (이중 카메라), RGB-D SLAM (깊이 카메라)을 포함합니다. Visual SLAM의 주요 단계:특징 추출 (Feature Extraction): 이미지에서 특징점(Keypoints)을 추출특징 매칭 (Feature Matching): 다른 이미지의 특징점과 매칭모션 추정 (Motion Estimation): 카메라의 움직임을 추정지도 ..
2024.06.04
-
[C++로 배우는 알고리즘과 자료구조 심화] Day 7: 스킵 리스트 (Skip List)
스킵 리스트 (Skip List)스킵 리스트는 연결 리스트에 인덱스를 추가하여 검색, 삽입, 삭제 연산의 시간 복잡도를 (O(\log n))으로 개선한 자료구조입니다. 여러 레벨로 구성된 연결 리스트로, 각 레벨마다 원소를 건너뛰어가며 검색할 수 있습니다. 이는 균형 이진 탐색 트리와 유사한 시간 복잡도를 가지면서도 구현이 간단합니다.스킵 리스트의 주요 특징시간 복잡도:평균: (O(\log n))최악의 경우: (O(n))레벨 구조: 여러 레벨의 리스트로 구성되며, 각 레벨은 원소를 건너뛰어가며 검색할 수 있도록 합니다.확률적 균형 유지: 랜덤하게 레벨을 선택하여 원소를 삽입함으로써 확률적으로 균형을 유지합니다.스킵 리스트의 기본 연산삽입 (Insert): 새로운 원소를 삽입하고 레벨을 랜덤하게 결정합니다..
2024.08.01
-
[C++로 배우는 게임 엔진 개발] Day 1: 게임 엔진의 기본 개념과 구조
게임 엔진의 기본 개념게임 엔진은 게임 개발을 용이하게 하기 위해 필요한 다양한 기능을 제공하는 소프트웨어 프레임워크입니다. 게임 엔진은 보통 그래픽 렌더링, 물리 엔진, 사운드 관리, 입력 처리, 씬 관리 등의 주요 기능을 포함합니다.그래픽스 렌더링 엔진: 2D 및 3D 그래픽스를 화면에 출력하는 모듈입니다.물리 엔진: 게임 내 물리적인 상호작용을 처리합니다.사운드 엔진: 사운드를 재생하고 관리합니다.입력 시스템: 키보드, 마우스, 게임패드 등의 입력을 처리합니다.엔티티 컴포넌트 시스템 (ECS): 게임 객체를 관리하고 업데이트합니다.스크립팅 시스템: 게임 로직을 작성할 수 있는 스크립팅 언어를 지원합니다.네트워크 시스템: 멀티플레이어 기능을 지원합니다.게임 루프게임 루프는 게임 엔진의 핵심으로, 게임..
2024.08.01
최신글
-
[자격증] 목차
국가기술자격- 웹디자인개발기능사- 정보처리기사- 빅데이터분석기사- 정보보안기사- 정보통신기사- 무선설비기사 국가공인민간자격- 네트워크관리사 2급- 리눅스마스터 2급- 리눅스마스터 1급- ADsP(데이터분석 준전문가)- ADP(데이터분석 전문가)- SQLD(SQL 개발자)- SQLP(SQL 전문가)- ITQ 민간자격- PCCP- PCSQL
2025.02.14
-
[RoadMap] 웹 개발
Frontend: JavaScript + React + Recoil + NextJS + Webpack- JavaScript(LTS기준) + TypeScript + NVM- IDE Tools: VSCode, WebStorm- Browser 개념 및 Chrome 개발자 도구 사용법- 코딩테스트(주요 라이브러리)- React 특징 및 주요 개념, 프로젝트 구조, 주요 클래스 및 메서드, 코딩컨벤션, MVVM 아키텍처- NextJS 특징 및 주요 개념, 프로젝트 구조, 주요 클래스 및 메서드, 코딩컨벤션, MVVM 아키텍처- WebPack Backend: Java + Spring + SpringBoot + Gradle- Java(LTS기준): 17, 21- IDE Tools: Eclipse, IntelliJ- ..
2025.02.07
-
[Roadmap] 컴퓨터 공학
컴퓨터공학 기본기1. C/C++(LTS 기준) 기본 문법- 환경설정(Windows, MacOS, Linux): Visual Studio, GCC- 언어별 특징 및 실행방법: int main(int argc, char** argv)- 코딩컨벤션: camelCase, PascalCase, snake_case, kebap-case, 변수, 함수, 클래스- 변수 및 자료형, 형변환, 상수, primitive type, reference type: char/bool/short/int/long/long long/float/double, const, static- 연산자(산술, 논리, 비교, 비트, 증감, 삼항): +, -, *, /, //, &&, ||, !, ==, !=, , >=, &, |, ~, ++a, a+..
2025.02.07
-
[ITQ] 파워포인트 - 독학 합격 후기
합격 인증샷 2025 이기적 ITQ OA Master 한글 ver2022 + 엑셀/파워포인트 ver2021https://product.kyobobook.co.kr/detail/S000214651806 2025 이기적 ITQ OA Master 한글 ver.2022+엑셀/파워포인트 ver.2021 올인원 | 영진정보연구소 - 교보문고2025 이기적 ITQ OA Master 한글 ver.2022+엑셀/파워포인트 ver.2021 올인원 | 본 도서는 최신 출제기준을 적용한 도서로, ITQ 한글, 엑셀, 파워포인트 시험 경향을 분석하여 수험생들이 혼자서도 학습할 수product.kyobobook.co.kr 내용(시험 준비)(공부 기간)1주동안 매일 1시간씩 반복적으로 교재 읽고 기능별 실습을 진행하였습니다. ..
2025.02.04
-
[SWEA] D1: 연월일 달력(2056) 해설
문제- 문제 링크: 연월일 달력 풀이(C++)solution 1)- 시간 복잡도: 더보기더보기#include#includeusing namespace std;bool is_valid(string month, string day) { int m = stoi(month); int d = stoi(day); if ((m 12)) return false; if (m == 2) { if ((d 28)) return false; } switch(m) { case 1: case 3: case 5: case 7: case 8: case 10: ..
2025.01.31
-
[SWEA] D1: 홀수만 더하기(2072) 해설
문제- 문제 링크: 홀수만 더하기 풀이(C++)solution 1)- 시간 복잡도: 더보기더보기#includeusing namespace std;int main(int argc, char** argv){ int test_case; int T; cin>>T; for(test_case = 1; test_case > num; if (num % 2 == 1) sum += num; } cout (Java)solution 1)- 시간 복잡도: 더보기더보기import java.util.* (Python)solution 1)- 시간 복잡도: 더보기더보기import sysT = int(input())for test_case ..
2025.01.31
-
[SWEA] D1: 평균값 구하기(2071) 해설
문제- 문제 링크: 평균값 구하기 풀이(C++)solution 1)- 시간 복잡도: 더보기더보기#include#include using namespace std;int main(int argc, char** argv){ int test_case; int T; cin>>T; for(test_case = 1; test_case > num; total += num; } cout (Java)solution 1)- 시간 복잡도: 더보기더보기import java.util.* (Python)solution 1)- 시간 복잡도: 더보기더보기import sysT = int(input())for test_case in range(1, T + 1): total = ..
2025.01.31
-
[SWEA] D1: 큰 놈, 작은 놈, 같은 놈(2070) 해설
문제- 문제 링크: 큰 놈, 작은 놈, 같은 놈 풀이(C++)solution 1)- 시간 복잡도: 더보기더보기#includeusing namespace std;int main(int argc, char** argv){ int test_case; int T; cin>>T; for(test_case = 1; test_case > a >> b; if (a > b) cout " (Java)solution 1)- 시간 복잡도: 더보기더보기import java.util.* (Python)solution 1)- 시간 복잡도: 더보기더보기import sysT = int(input())for test_case in range(1, T + 1): a, b = map..
2025.01.31
-
[SWEA] D1: 최대수 구하기(2068) 해설
문제- 문제 링크: 최대수 구하기 풀이(C++)solution 1)- 시간 복잡도: 더보기#includeusing namespace std;int main(int argc, char** argv){ int test_case; int T; cin>>T; for(test_case = 1; test_case > num; if (num > max_val) max_val = num; } cout (Java)solution 1)- 시간 복잡도: 더보기import java.util.* (Python)solution 1)- 시간 복잡도: 더보기import sysT = int(input())for test_case in range(1, T + ..
2025.01.12
-
[SWEA] D1: 중간값 찾기(2063) 해설
문제- 문제 링크: 중간값 찾기 풀이(C++)solution 1)- 시간 복잡도: 더보기#include#include using namespace std;int main(int argc, char** argv){ int test_case; int T; int n; cin >> n; int arr[n] = {}; for (int i = 0; i > arr[i]; } sort(arr, arr + n); cout (Java)solution 1)- 시간 복잡도: 더보기import java.util.* (Python)solution 1)- 시간 복잡도: 더보기import sysT = int(input())arr = list(map(int, input().split()..
2025.01.12