본문 바로가기
반응형

전체 글395

[PCCP 기출문제] 1번 / 동영상 재생기 C++ [PCCP 기출문제] 1번 / 동영상 재생기 C++ 문제 설명당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.  10초 전으로 이동: 사용자가 "prev" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 전으로 이동합니다. 현재 위치가 10초 미만인 경우 영상의 처음 위치로 이동합니다. 영상의 처음 위치는 0분 0초입니다.10초 후로 이동: 사용자가 "next" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 후로 이동합니다. 동영상의 남은 시간이 10초 미만일 경우 영상의 마지막 위치로 이동합니다. 영상의 마지막 위치는 동영상의 길이.. 2024. 11. 7.
Quixel Megascans 유료화 대비! 무료 에셋 한 번에 다운로드 받는 크롬 개발자 도구 스크립트 완벽 가이드 Quixel Megascans 유료화 대비! 무료 에셋 한 번에 다운로드 받는 크롬 개발자 도구 스크립트 완벽 가이드 안녕하세요, 크리에이터 여러분! 최근 Quixel Megascans의 유료화 소식이 들려오면서, 그동안 무료로 제공되었던 방대한 에셋들을 미리 다운받아야 하는 상황이 되었습니다. Quixel은 많은 3D 아티스트와 게임 개발자들이 애용해온 플랫폼이기 때문에, 이번 유료화 결정으로 인해 무료 에셋들을 빠르게 받아야 할 필요성이 생겼죠.다행히 vanthunder라는 개발자가 크롬 브라우저의 개발자 도구를 사용해 Quixel의 무료 에셋을 한 번에 다운로드할 수 있는 스크립트를 만들어 공유해주었습니다. 이 스크립트를 활용하면 브라우저 상에서 손쉽게 수십, 수백 개의 무료 에셋을 자동으로 다운로.. 2024. 9. 23.
MySQL 커넥션 풀 개념과 사용법 MySQL 커넥션 풀 개념과 사용법 MySQL 데이터베이스를 사용하는 애플리케이션 개발 시 효율적인 커넥션 관리가 중요합니다. 빈번한 데이터베이스 연결 생성과 해제는 성능 저하를 초래할 수 있습니다. 이를 해결하기 위해 사용되는 기법이 바로 커넥션 풀(Connection Pool) 입니다. 이 포스트에서는 MySQL 커넥션 풀의 개념, 장점, 설정 방법 및 C#에서의 구현 방법을 자세히 설명합니다.MySQL 커넥션 풀의 개념커넥션 풀은 미리 일정 수의 데이터베이스 연결을 생성해 두고, 애플리케이션이 필요할 때마다 이를 재사용할 수 있게 하는 기법입니다. 새로운 연결을 생성하고 닫는 작업의 오버헤드를 줄여 성능을 향상시키고, 데이터베이스 서버의 리소스를 효율적으로 관리합니다. 커넥션 풀의 주요 장점성능 향.. 2024. 7. 20.
MySQL Error Code 1418 원인과 해결 방법 MySQL Error Code 1418 원인과 해결 방법MySQL에서 에러 코드 1418은 주로 저장 프로시저나 함수를 생성할 때 발생하는 에러로, 다음과 같은 메시지를 동반합니다.ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)SQL Statement: 이 에러는 함수나 프로시저가 선언될 때 DETERMINISTIC, NO SQL, 또는 READS SQL DATA 옵션 .. 2024. 7. 20.
C# 이벤트 핸들러(Event Handler) 이해와 활용 C# 이벤트 핸들러(Event Handler) 이해와 활용 안녕하세요! 오늘은 C#의 이벤트 핸들러(Event Handler)에 대해 알아보겠습니다. 이벤트 핸들러는 GUI 애플리케이션, 게임 개발, 그리고 다양한 비동기 프로그래밍 시 매우 유용하게 사용됩니다. 이번 포스트에서는 이벤트 핸들러의 기본 개념부터 구현 방법, 그리고 실제 예제까지 다루어 보겠습니다.이벤트 핸들러란?개념이벤트 핸들러(Event Handler)는 특정 이벤트가 발생했을 때 실행될 메서드를 정의하는 데 사용됩니다. 이벤트는 일반적으로 사용자 입력(버튼 클릭, 키보드 입력 등), 타이머 만료, 파일 입출력 완료 등의 상황에서 발생합니다. 이벤트 핸들러는 이러한 이벤트에 대응하여 적절한 작업을 수행합니다.구조C#의 이벤트 핸들러는 델.. 2024. 7. 11.
C# 소켓 통신 서버 개발하기 Windows에서 개발하여 Linux CentOS 7.6 서버에서 실행하기 C# 소켓 통신 서버 개발하기 Windows에서 개발하여 Linux CentOS 7.6 서버에서 실행하기 이 블로그 포스트에서는 Windows 10의 Visual Studio 2022를 이용하여 C# 소켓 통신 프로그램을 제작하고, CentOS 7.6 Linux 가상 서버로 전송하여 실행하는 전체 과정을 설명합니다. 서버 프로그램은 소켓을 통해 클라이언트의 연결을 받아 메시지를 주고받으며, 클라이언트 프로그램은 서버에 연결하여 메시지를 송신하고 응답을 받습니다.목차개발 환경 설정 (Windows 10)C# 소켓 통신 프로그램 작성 (Visual Studio 2022)프로젝트 빌드 및 결과물 생성파일을 Linux 서버로 전송Linux 서버에서 소켓 통신 프로그램 실행 환경 설정애플리케이션 실행 및 테스트1.. 2024. 7. 11.
Android Studio에서 AAR 파일 생성 및 Unity에서 사용하는 방법 Android Studio에서 AAR 파일 생성 및 Unity에서 사용하는 방법안녕하세요! 이번 포스트에서는 Android Studio에서 AAR 파일을 생성하고 이를 Unity 프로젝트에서 사용하는 방법에 대해 알아보겠습니다. AAR 파일은 Android Archive의 약자로, 안드로이드 라이브러리를 패키징하는데 사용됩니다. Unity에서는 네이티브 안드로이드 기능을 활용하기 위해 AAR 파일을 사용합니다. 이 블로그에서 사용하는 버전은 다음과 같습니다.- android-studio-2024.1.1.11-windows- Unity (2022.3.32f1) LTS Android Studio에서 AAR 파일 생성하기새 프로젝트 생성 또는 기존 프로젝트 열기Android Studio를 실행하고 새 프로젝트.. 2024. 7. 9.
Unity Android 로그인 구현 Unity Android 로그인 구현 CustomMainManifest 생성    jdk 다운로드 Download the Latest Java LTS FreeSubscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.www.oracle.com 3개 중 원하는 파일 형식으로 다운로드 보통 JDK 는 C:\Program Files\Java\jdk-22 경로에 설치된다.Keytool을 사용하기 위해 필요함  jdk 경로를 환경 변수에 등록해줘야 한다.시스템 속성에서 하단 환경 변수를 클릭한다.환경변수에서 Path 값을 수정해줘야한다.편집을 눌러 새로만들기를 눌러주고.. 2024. 7. 8.
Unity에서 Android 빌드 환경 설정하는 방법 단계별 가이드 Unity에서 Android 빌드 환경 설정하는 방법 단계별 가이드Unity로 게임을 개발할 때, Android 플랫폼으로 빌드하려면 몇 가지 설정이 필요합니다. 이 포스트에서는 Unity에서 Android 빌드 환경을 설정하는 방법을 단계별로 안내하겠습니다. Android용 Unity 애플리케이션을 만들려면 먼저 Android를 지원하도록 Unity 프로젝트를 설정해야 합니다. Android를 지원하려면 Unity 프로젝트에는 다음의 종속성이 필요합니다.  Android Build Support 모듈Android SDK(Software Development Kit)NDK(Native Development Kit)Java Development Kit. 기본적으로 Unity는 OpenJDK를 사용합니다.U.. 2024. 7. 6.
C# 멀티스레드 프로그래밍 Thread-Local Storage(TLS)의 이해와 활용 C# 멀티스레드 프로그래밍 Thread-Local Storage(TLS)의 이해와 활용C#에서 멀티스레드 프로그래밍 시 유용하게 사용할 수 있는 Thread-Local Storage(TLS)에 대해 알아보겠습니다. TLS는 각 스레드가 자신만의 데이터 복사본을 가질 수 있도록 하는 기법입니다. 멀티스레드 환경에서 TLS를 사용하는 방법과 그 이점에 대해 자세히 살펴보겠습니다.Thread-Local Storage(TLS)란?개념Thread-Local Storage(TLS)는 여러 스레드가 동시에 실행되는 환경에서 각 스레드가 독립적인 변수 값을 가질 수 있도록 해주는 메커니즘입니다. 즉, TLS를 사용하면 동일한 변수명이더라도 각 스레드는 해당 변수의 고유한 인스턴스를 가지게 됩니다. 이를 통해 스레드 간.. 2024. 7. 1.
C# 멀티스레드 프로그래밍 커스텀 재귀적 락과 스핀락 정책 구현 C# 멀티스레드 프로그래밍 커스텀 재귀적 락과 스핀락 정책 구현재귀적 락과 스핀락이란?재귀적 락재귀적 락은 동일한 스레드가 이미 소유한 락을 다시 획득할 수 있는 락입니다. 재귀적 락이 없다면, 동일한 스레드가 중첩된 호출에서 동일한 락을 다시 획득하려 할 때 데드락이 발생할 수 있습니다.스핀락스핀락은 잠금을 시도하는 스레드가 일정 횟수만큼 바쁜 대기(spin) 상태를 유지하면서 잠금을 재시도하는 락입니다. 바쁜 대기 중에는 컨텍스트 스위칭이 발생하지 않으므로, 락이 곧 해제될 것으로 예상되는 경우 스핀락을 사용하면 성능을 향상시킬 수 있습니다. 스핀 횟수가 일정 수를 초과하면 Thread.Yield()를 호출하여 CPU를 양보합니다.코드 분석아래는 재귀적 락과 스핀락 정책을 사용하여 커스텀 락을 구현한.. 2024. 7. 1.
C#에서의 동기화 전략: ReadWriteLock의 이해와 활용 C#에서의 동기화 전략: ReadWriteLock의 이해와 활용ReadWriteLock란 무엇인가?ReadWriteLock은 다중 스레드 환경에서 데이터를 보호하기 위해 사용되는 동기화 메커니즘입니다. 기본적인 lock이나 Monitor와 달리, ReadWriteLock은 읽기와 쓰기 작업을 분리하여 처리할 수 있습니다. 이를 통해 읽기 작업이 빈번한 경우 성능을 크게 향상시킬 수 있습니다.왜 ReadWriteLock을 사용할까?동시 읽기 허용: 여러 스레드가 동시에 읽기 작업을 수행할 수 있습니다. 이로 인해 읽기 작업이 많은 시나리오에서 성능이 개선됩니다.쓰기 작업 동기화: 쓰기 작업은 단일 스레드만 접근할 수 있도록 동기화됩니다. 이로 인해 데이터의 일관성이 보장됩니다.읽기-쓰기 동시 접근 방지: .. 2024. 7. 1.
반응형