스스로 구축하는 파이썬 개발환경

이미지
개요 시대가 변해도 인간세상의 주류언어 는 영어 에서 변함이 없습니다. 하지만 프로그래밍 세상에서는 느리지만 변화가 있습니다. 과거의 C, C++, JAVA 에서, 2024년 현재의 프로그래밍 주류언어 는 Python 이라고 생각합니다. 미래를 예측하는 능력은 없지만 다음 세대는 아마도 Dart 언어 기반의 Flutter Framework 이 아닐까 추측해 봅니다.

C++ 예제 (Tetris, 테트리스 게임)

이미지
개요 이전 게시물과 동일하지만 C++ 언어로 만든 테트리스 게임 입니다. 파이썬 버전과 최대한 동일하게(변수, 함수, 클래스명 등) 만들어져 있으므로 코드 설명은 이전 게시물 참조 바랍니다.

파이썬 예제 (Tetris, 테트리스 게임)

이미지
개요 이번 주제는 Python + PyQt5 로 만든 테스리스 게임입니다. (키보드 화살표 ←, →, ↑(회전), ↓(빨리하강) 로 조작) 예전에 C++ 로 만들어 올려둔 게시물이 있는데, 구글에서 저작권 위반 신고가 들어와 게시물이 삭제(?)되어 현재는 게시글이 없어진 상태입니다. 제가 직접  짠 코드인데 이유는 정확히 모르지만 같이 넣어둔 게임 효과음이 원인이 아닐까 추측합니다.😓 

파이썬 예제 (QTableWidget Copy & Paste)

이미지
개요 최근 QTableWidget Class를 사용하는 중,  Excel 파일 값 복사, QTableWidget에 붙여넣기 QTableWidget의 값 복사 Excel에 붙여넣기 를 할 필요가 생겼습니다. 혹시나 해서, 코드를 따로 작성하지 않고 빈 QTableWidget 을 만들고 엑셀 데이터를 복사( Copy )해 붙여넣기( Paste ) 해보니 역시나 동작하지 않습니다. 세상에 공짜는 없습니다. 😅 아마도 QWidget 에서 Ctrl + C, V 키보드 이벤트 발생을 감지하고, 복사된 클립보드의 내용을 따로 처리해주는 코드가 필요할 것으로 예상됩니다. 간단하게 생각하고 바로 코드를 작성하기 진행하였지만 생각보다 복잡해 그 과정을 정리해 보았습니다.    목표 Copy data from Excel file to QTableWidget   Copy data from QTableWidget to Excel 소스코드 from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem from PyQt5.QtCore import Qt import sys QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) class Window(QWidget): def __init__(self): super().__init__() self.initUi() self.resize(400,600) def initUi(self): self.setWindowTitle('Ocean Coding School') self.tw = QTableWidget() row = 10 col = 3 self.tw.set

나만의 페이스 (My own pace)

이미지
New York is 3 hours ahead of California, but that does not make California slow. 뉴욕은 캘리포니아보다 3시간 빠르지만, 캘리포니아가 느린 것은 아닙니다.   Someone graduated at the age of 22, but waited 5 years before securing a good job! 누군가는 22살에 졸업했지만, 좋은 일자리를 얻기까지 5년을 기다렸습니다! Someone became a CEO at 25, but died at 50. 누군가는 25살에 CEO가 되었지만, 50살에 세상을 떠났습니다. While another became a CEO at 50, and lived to 90 years. 또 다른 누군가는 50살에 CEO가 되어 90년까지 살았습니다. Someone is still single, while someone else got married. 누군가는 아직 싱글인 반면, 누군가는 결혼했습니다. Obama retires at 55, but Trump starts at 70. 오바마는 55살에 은퇴하지만 트럼프는 70살에 시작합니다. Absolutely everyone in this world works based on their Time Zone. 이 세상의 모든 사람은 자신의 시간대에 따라 움직입니다. People around you might seem to go ahead of you, 당신 주변 사람들은 당신보다 앞서가는 것처럼 보일 수도 있고, some might seem to be behind you. 당신 뒤에 있는 것처럼 보일 수도 있습니다. But everyone is running their own race, in their own time. 하지만 모든 사람은 자신의 시

HIL Simulation 경험담

이미지
개요 오늘은 "HIL ( H ardware I n the L oop) Simulation" 이라는 주제에 대해 제가 경험해본 내용을 소개하려 합니다. 학원을 운영하기 전 연구소생활을 하던 시절 HIL Test 를 조선소(Shipyard)를 통해 처음 알게되었습니다. 당시 DP, PMS HIL Test기술을 가진 국내업체가 없어 조선소 입장에서 기술 국산화 가 필요했었고 한번 시도해 보지 않겠냐는 감사한 제안이었습니다.  - DPS : Dynamic Positioning System - PMS : Power Management System ( HILS는 자동차, 항공기 등 분야에서는 이전부터 사용되던 테스트 기법)   간단히 요약하면, HILS는 복잡한 시스템의 제어기를 현실성있게 검증 (수치해석 시뮬레이션 X)하기 위한 시뮬레이션 기법입니다. 그럼 HIL Test 가 무엇인지 자세히 설명하기 전 이 테스트가 필요해진 배경 을 소개하고자 합니다. 선박의 건조는 보통 선주가 배를 조선소에 의뢰하면 조선소는 선주의 요구사항에 맞는 선박을 건조해 납품하는 방식입니다. 선박은 워낙 덩치가 크고 구성품목이 많다보니 모든 선박 구성품을 조선소에서 직접 다 만들어 탑재하지는 못하고 여러 기자재를 개발, 생산 납품하는 업체들과 협력해 선박을 건조하게 됩니다. 대부분 선박에 탑재되는 기자재는 국산화 되고 있지만 일부 핵심적인 시스템은 해외 업체가 그것도 거의 독점적인 위치를 차지하는 분야가 존재합니다. 그 중 DPS ( D ynamic P ositioning S ystem)라는 시스템이 있습니다.

C++ 예제 (Qt Android 게임개발)

이미지
개요 약 3년 전 C++언어로 Qt, Android 개발환경 구축 을 소개한 글이 있었습니다. 참조 : C++, Qt Android App 개발 (이전 글)   세월이 지나 최근 C++ Qt 환경에서 Android 배포용 앱을 만들다 보니 기존과 변경된 부분이 있어 정리해두고자 합니다. 이 글은 Windows 11 에서  Qt Creator, C++ , Cross Platform 을 활용해 Android Device 용 앱을 개발하고 업로드하는 과정을 담고 있습니다.

파이썬 예제 (엑셀 업무자동화)

이미지
개요 오늘은 파이썬으로 엑셀파일을 분석 해 데이터를 통계화 하고 박스차트 로 표현하는 예제를 만들어 보겠습니다. 

C++ 예제 (동기 vs 비동기)

이미지
개요 이번 주제는 C++ 코드 실행의 Synchronous(동기) vs Asynchronous(비동기) 에 대한 기록입니다. 동기화된 프로그래밍은 어떤 한 작업이 완료될 때까지 다른작업은 수행되지 않고, 비동기는 그 반대입니다.

Qt Creator + CMake + vcpkg

이미지
개요 Qt Creator C++ 개발환경에서 vcpkg 를 설정하는 방법에 대해 설명하고자 합니다. 먼저 아래 구성요소의 사전 설치가 필요합니다. Qt Creator + MSVC Compiler ( MinGW X ) CMake (Qt 설치시 같이 가능) vcpkg

이 블로그의 인기 게시물

Qt Designer 설치하기

C++ 예제 (소켓 서버, 이미지, 파일전송)