비트를 쪼개는 개발자

allen321@naver.com

전체 글 84

Python과 PySide6를 이용해 데스크톱 펫 만들어보기

운동하는 데스크톱 펫 만들어보기바탕화면 위에서 캐릭터가 돌아다니고 운동도 하는 프로그램을 만들어보고 싶었다.Python과 PySide6를 이용해 데스크톱 펫을 제작해보자.이번에는 별도의 서버나 API를 사용하지 않고 로컬 환경에서만 동작하는 형태로 구현하도록 하자. 구현할 기능투명한 창 위에 캐릭터만 표시다른 창보다 항상 위에 표시마우스로 캐릭터 드래그우클릭 메뉴와 종료 기능화면 좌우 이동랜덤 행동 전환스쿼트, 팔굽혀펴기, 명상 동작상태별 말풍선여러 모니터 환경 지원캐릭터의 행동은 다음과 같이 구성했다.IdleWalkSquatPushUpMeditationTalkPySide6란?PySide6는 Qt 프레임워크를 Python에서 사용할 수 있도록 해주는 라이브러리다.Qt는 윈도우 프로그램을 만들 때 필요한..

장난감 2026.09.08

Unity에서 Firebase를 이용해 실시간으로 DB를 연동해보기 (2)

https://mozartnt.tistory.com/86 Unity에서 Firebase를 이용해 실시간으로 DB를 연동해보기 (1)Firebase란? Firebase는 구글에서 제공하는 모바일이나 웹용 애플리케이션 개발을 위한 개발 플랫폼이다.여러가지 기능들을 제공하며 실시간 데이터베이스, 인증, 클라우드 스토리지 등 서버를 직mozartnt.tistory.com  지난 글에서는 Firebase의 데이터베이스 기능을 Unity와 연동 시키기 위한 초기 세팅과 프로젝트 세팅을 완료하였다. 이제 직접 데이터베이스와 데이터를 주고 받기 위한 코드를 작성해보자. 먼저 우리는 Firebase와 통신하기 위한 매니저를 담당하는 클래스를 만들어 주어야 한다. 또한 해당 매니저 클래스는 partial class*로 작..

Unity 2025.03.29

Unity에서 Firebase를 이용해 실시간으로 DB를 연동해보기 (1)

Firebase란? Firebase는 구글에서 제공하는 모바일이나 웹용 애플리케이션 개발을 위한 개발 플랫폼이다.여러가지 기능들을 제공하며 실시간 데이터베이스, 인증, 클라우드 스토리지 등 서버를 직접 구축할 필요 없이 백엔드의 여러 기능을 사용할 수 있다.무료로 제공하는 기본 용량이 있어 접근성이 편리하다.    우리는 Firebase의 다음과 같은 기능 중 데이터베이스 기능을 Unity와 연동시켜보자. Unity로 게임을 개발하다 보면 여러가지 기능을 DB와 연동시킬 필요성이 느껴진다. 캐릭터의 레벨이나 재화, 그리고 로그인 시스템, 인벤토리 등 여러가지 기능들을 실시간으로 서버와 연동하고 이를 수시로 받아오고 쓰는 과정이 필연적으로 발생하는데 Firebase를 사용하면 이러한 기능들을 간단하게나마 ..

Unity 2025.02.04

C# [프로그래머스] 멀리 뛰기

문제 설명 효진이는 한 번에 1칸 혹은 2칸을 점프 할 수 있음n개의 칸이 주어졌고, 마지막 칸에 도달할 때 발생하는 경우의 수를 따져야 함결과로 나온 값에 1234567로 나눈 나머지 값을 return하는 함수를 완성해야 함 문제의 요지 자체는 간단하지만 오버플로우와 경우의 수가 많아지기 쉬운 케이스라고 생각했다. 문제를 풀다보니 칸 수가 증가하면서 늘어나는 값이 피보나치 수열과 거의 흡사하다는 것을 발견했고 이와 비슷하게 문제를 풀어냈다. 더보기n=1: 1가지 [1] n=2: 2가지 [1,1] [2] n=3: 3가지 [1,1,1] [1,2] [2,1] n=4: 5가지 [1,1,1,1] [1,1,2] [1,2,1] [2,1,1] [2,2] n=5: 8가지 [1,1,1,1,1] [1,1,1,2] [1,1..

코딩테스트 2025.01.31

C# - 조건문을 단순화 하는 방법

코드를 작성하면서 조건문을 작성하는 경우에는 코드가 길어지면서 조건문도 복잡해진다. if문을 사용하는 경우에는 조건식이 복잡해지거나 부정 연산자가 자주 사용되고 조건식 안에서 2중, 3중으로 작성되면서 가독성이 떨어지는 조건문이 만들어지는 경우도 많다. switch문을 사용하는 경우에는 case가 늘어나면서 코드가 길어지는 경우 역시 빈번하게 발생한다. 이렇게 복잡한 조건식이 반복되면 코드의 가독성이 떨어지면서 리팩토링이 상당히 어려워지며 새로운 조건이 추가될 때 마다 조건식 전부를 뜯어 고치거나 더욱 복잡한 조건식이 탄생해버린다. 이런 경우에는 아래의 단순화 방법을 참고해서 코드를 작성하면 너무 복잡한 조건식이 탄생하는 빈도를 줄일 수 있다.  조건문을 단순화 하는 방법  1. 부정 연산자(!) 줄이기..

C# 2025.01.13

부동 소수점(floating point) 이란?

부동 소수점 이란? 부동 소수점은 실수(소수점이 있는 숫자)를 표현 및 연산 하기 위해서 사용하는 실수를 표현하는 방식이다.부동 소수점을 사용하면 상당히 폭넓은 숫자를 표현할 수 있다.부동 소수점은 IEEE 754* 표준에 따라 숫자를 가수, 지수, 부호로 나누어 저장한다.부동 소수점 이외에도 고정 소수점과 같은 표현 방식도 있다. IEEE 754란? : 전기전자공학자협회(Institute of Electrical and Electronics Engineers, IEEE)라는 전기전자공학 전문가들의 국제조직에서 지정한 부동 소수점 관련 표준 포맷을 뜻한다.  부동 소수점의 구성 요소 부동 소수점은 크게 부호(Sign), 지수(Exponent), 그리고 가수(Mantissa)로 구성된다.  1. 부호 (S..

C# [프로그래머스] 모음사전

문제 설명알파벳 모음 **A, E, I, O, U**만을 사용하여 길이가 1부터 5까지인 모든 단어가 사전에 정렬되어 있다고 가정하자.이는 5진수로 이루어진 숫자라고 생각하면 된다.각 자리의 모음 알파벳은 5진수 숫자로 대응되며 해당 알파벳이 가지는 가중치 만큼의 int값을 return 한다. 예 : 'A' 의 경우에는 1을 의미한다.'AA'의 경우에는 2를 의미한다.'AAA'는 3, 'AAAA'는 4, 'AAAAA'는 5를 의미하므로 'AAAAE'는 6을 의미한다. 위 설명을 바탕으로 각각의 자리 마다 가질 수 있는 가중치를 미리 계산해서 (배열의 크기를 정해줘야 하기 때문에) 반복문을 돌려주자, 5진수로 가정하지만 첫번째 숫자를 1로 대입시켜 주기 때문에 return 받는 숫자 값과 인덱스는 다르게 ..

코딩테스트 2024.12.09

메모리 정렬과 패딩

메모리 정렬(Memory Alignment) 이란? 메모리 정렬은 컴퓨터가 데이터를 효과적으로 저장하고 여기에 접근하는 방식을 뜻한다.데이터가 CPU에 저장될 때 컴퓨터가 더 빠르게 접근할 수 있도록 메모리 주소를 특정 기준에 따라 배치한다.핵심 키워드로는 정렬, 구조체 정렬, 패딩 등이 있다.   기본 정렬 규칙 데이터 타입의 크기에 따라 메모리 주소가 정렬된다.데이터의 시작 주소는 해당 데이터 크기의 배수여야 한다.ex) int의 경우는 4바이트 이기 때문에 4의 배수의 주소에 정렬되어야 한다.(0,4,8,12...)ex) double의 경우는 8바이트 이기 때문에 8의 배수의 주소에 정렬되어야 한다.(0,8,16,32...)구조체 내에서의 각 멤버들은 자신의 데이터 크기에 맞게 정렬된다.구조체 전체..