![Pixerise - 고성능 3D 소프트웨어 렌더링 엔진 테스트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz5htl%2FbtsL51zundi%2Fz1Di9hFcckY5xURwgSMjWk%2Fimg.png)
GPU가 아닌 CPU에서 돌아가는 고성능 3D 소프트 렌더링 엔진이라고 소개하고 있는 Pixerise를 발견하여 간단히 테스트해본 결과입니다. NumPy와 Numba JIT compilation을 사용하여 최적화 했다고 합니다. https://github.com/enricostara/pixerise최초작성 2025. 2. 4다음 포스트에 나온대로 Miniconda를 사용한 Python 개발 환경을 윈도우에 설치된 노트북에서 진행했습니다. Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)https://webnautes.tistory.com/1842 윈도우키 누르고 miniconda를 입력하여 보이는 Anaconda P..
Condition을 사용하여 두 개의 스레드가 번갈아 가며 실행하는 Python 예제 코드를 작성하기 위해 Claude 3.5 sonet과 ChatGPT 무료버전에게 질문해본 것을 정리했습니다. 글을 다 작성하고 나서 다시 읽어보니 똑같이 유료 버전의 모델을 사용해야 더 정확하지 않을까 싶네요2025. 2. 2 최초작성클로드와 쳇지피티에게 번갈아가며 물어본 결과 쓰레드 동기화를 AI도 어려워하는 구나 싶네요. 서로 상대방의 코드가 문제 있다고 얘기를 반복하며 수정하다가 최종적으로 쳇지피티가 수정한 코드를 클로드가 그렇게 작성해도 된다고 인정했어요. 마지막 쯤에 서로 주장을 반복하던 때에 답변 얻은 결과만 공유합니다. Claude 3.5 sonet notify_all()보다는 notify()가 더 적..
파이썬을 사용하여 스택, 큐를 구현하는 방법을 다루고 있습니다. 이번 글을 작성하며 파이썬에는 포인터가 없어서 자료 구조를 어떻게 구현할까 싶었던 의문점이 풀렸습니다. 2025. 1. 30 최초작성링크드 리스트(Linked List)스택(Stack)큐(Queue)링크드 리스트(Linked List) 파이썬은 기본적으로 포인터를 직접적으로 사용할 수 있는 언어가 아니지만, 객체 참조를 통해 간접적으로 포인터와 유사한 방식으로 동작할 수 있습니다. 파이썬에서 모든 변수는 객체에 대한 참조(reference)로 작동하며, 이는 C/C++의 포인터와 개념적으로 유사합니다. 링크드 리스트(Linked List) 구조를 사용하여 포인터처럼 동작하도록 구현할 수 있습니다. 링크드 리스트에서 각 노드에 포함되어 있는..
YoLo를 사용하여 영상내와 영상 바깥에 사람이 있었던 총시간을 각각 출력하는 OpenCV Python 예제입니다.한사람만 보이는 경우를 가정하고 있습니다. 최초작성 2025. 1. 28https://youtu.be/4geryGplg24 import cv2from ultralytics import YOLOfrom datetime import datetime, timedelta# 사용할 욜로 모델을 지정합니다.model = YOLO('yolov8n.pt')# 카메라를 지정합니다.cap = cv2.VideoCapture(0)start_time = None# 변수를 초기화합니다.total_sitting_time = timedelta()total_standing_time = timedelta()last_st..
![OpenGL을 사용하여 3D 모델을 로드하여 마우스로 회전시켜보는 Python 예제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb0xAn%2FbtsLDN8y3eR%2FbOo1IizJRurr5g8ecORshk%2Fimg.png)
OpenGL을 사용하여 3D 모델을 로드하여 화면에 보여주고 마우스 드래그로 회전시켜보는 예제 코드입니다.소프트웨어적으로 구현하니 너무 느려서 NVidia 그래픽카드 GPU를 사용하도록 했습니다. 2024. 1. 3 최초작성 실행결과입니다. 마우스 드래그로 모델을 좌우상하로 회전시킬수 있습니다. 하지만 아직 어색합니다. 그리고 모델 문제인지 구현한 코드 문제인지 약간 깨져 보입니다. 그래서 다음 링크에 있는 다른 모델을 테스트해봤습니다. 깨짐이 없어 고양이 모델의 문제로 보입니다. 좌우상하 이동이 고양이에 비해 어색합니다. https://free3d.com/3d-model/tree-74556.html Ubuntu 22.04에 설치된 miniconda를 사용한 파이썬 개발 환경에서 테스트를 ..
![MQTT 개념 및 예제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbwgwa8%2FbtsLBXide7n%2FxzKEX3kWPGiChypOa2xAN0%2Fimg.png)
MQTT 개념과 Python으로 작성된 예제를 다룹니다.다음 링크의 문서를 번역한 내용을 바탕으로 이해한 것을 보충했습니다. https://learn.sparkfun.com/tutorials/introduction-to-mqtt/all 추가적으로 아래 링크를 참고했습니다.https://khj93.tistory.com/entry/MQTT-MQTT의-개념 MQTT 개념MQTT 동작브로커 세팅 우분투 윈도우Python으로 MQTT 통신 subscribe.py publish.py2022. 2. 23 최초작성 2023. 5. 11 추가로 다음 링크를 참고했습니다.https://1000sj.tistory.com/307 https://developer-finn.tistory.com/1 ht..
Python 디버깅시 print 대신 사용할 수 있는 IceCream 패키지의 ic를 다룹니다.최초작성 2024. 11. 14ic는 print 함수보다 많은 정보를 출력해줍니다. from icecream import icdef add(x, y): return x + yprint(add(10, 20)) # 30ic(add(10, 20))# ic| add(10, 20): 30ic의 출력을 한 줄로 조정할 수 있습니다. ic.disable()를 사용하면 ic의 출력을 막습니다. from icecream import icdef add(x, y): return x + y# ic 출력을 막습니다.ic.disable()print(add(10, 20)) ic(add(10, 20)) 30ic.enable(..
![호버와 클릭 효과 있는 PyQt5 QPushButton 예제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlF2ks%2FbtsKDRXpcII%2F0jYb8dQLbNYbuGeHKH5Q80%2Fimg.png)
호버와 클릭 효과 있는 PyQt5 QPushButton 예제입니다.최초작성 2024. 11. 8import sysfrom PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout, QLabelfrom PyQt5.QtCore import Qtfrom PyQt5.QtGui import QFontclass MainWindow(QMainWindow): def __init__(self): super().__init__() self.count = 0 # 카운터 초기화 # 윈도우 설정 self.setWindowTitle("버튼 예제") sel..
Lambda는 이름 없는 일회용 함수를 만드는 방법입니다. lambda 인자: 표현식2021. 5. 29 최초작성2024. 11. 3같은 기능을 하는 일반 함수와 lambda 함수를 비교해봅니다. # 일반 함수def add(x, y): return x + y# lambda 함수add_lambda = lambda x, y: x + yprint(add(3, 5)) # 출력: 8print(add_lambda(3, 5)) # 출력: 8if문에서 사용 is_even = lambda x: "짝수" if x % 2 == 0 else "홀수"print(is_even(4)) # 짝수print(is_even(7)) # 홀수# 삼항 연산자 사용is_positive = lambda x: "양수" ..
파이썬 이터레이터(Iterator)와 제너레이터(Generator)의 차이점을 살펴봅니다.2024. 10. 22 최초작성이터러블과 이터레이터 제너레이터이터러블과 이터레이터이터러블(Iterable)은 반복 가능한 파이썬 객체로 for 루프를 사용하여 객체의 원소를 순회하여 접근할 수 있습니다. 이터러블의 예로는 리스트, 집합, 튜플, 딕셔너리, 문자열 등이 있습니다. iter() 함수를 통해 이터레이터를 반환합니다. 이터레이터(iterator)는 리스트, 튜플 등의 이터러블 객체에 iter() 함수를 적용하여 얻을 수 있는 객체입니다. 이 객체는 __next__() 메서드를 통해 객체의 요소를 순차적으로 접근할 수 있습니다. 한 번에 하나의 요소만 반환하며, 모든 요소를 순회하면 StopIteration..