2026년 1월 10일 토요일

6살 딸아이를 위해 직접 만든 '쑥쑥 한글 퀴즈' 개발기 🍎🦁


안녕하세요! 오늘은 6살 된 딸아이의 한글 공부를 위해 직접 개발한 '쑥쑥 한글 퀴즈' 프로젝트를 소개하려고 합니다. 시중에 많은 학습 앱이 있지만, 우리 아이의 수준에 딱 맞고 부모가 직접 콘텐츠를 관리할 수 있는 도구를 만들어주고 싶어 시작하게 되었습니다.

1. 왜 시작했나요? (Motivation)

아이가 한글에 관심을 가지기 시작하면서 단어 카드를 활용해 공부하곤 했습니다. 하지만 금방 지루해하는 모습을 보고, "아이들이 좋아하는 게임 요소와 보상을 결합하면 어떨까?" 하는 생각이 들었습니다.

단순한 암기가 아닌, 시각(이모지), 청각(TTS), 촉각(글씨 쓰기)을 모두 활용하는 인터랙티브한 환경을 목표로 했습니다.

2. '쑥쑥 한글 퀴즈'의 주요 기능

이 게임은 단순한 퀴즈를 넘어 아이의 성장 단계에 맞춘 다양한 기능을 포함하고 있습니다.

  • 다양한 학습 모드:

    • 알쏭달쏭 퀴즈: 그림을 보고 단어를 맞히는 기초 모드

    • ✏️ 글자 쓰기: 캔버스 API를 활용해 직접 글씨를 써보는 연습(이 부분은 일부 오류가 존재 합니다.)

    • 🎤 따라 말하기: 음성 인식을 통해 단어를 정확히 발음해보는 훈련

  • 강력한 보상 시스템 (Gamification):

    • 문제를 맞힐 때마다 칭찬 스티커를 획득하고, 스티커함에 수집할 수 있습니다.

    • 스티커 10개를 모으면 부모님이 미리 설정한 '현실 보상 쿠폰(예: 아이스크림)'이 나타나 동기부여를 극대화합니다.

  • 펫 성장 시스템:

    • 학습 성취도에 따라 펫 캐릭터가 알에서부터 영웅까지 진화합니다.

  • 부모님 전용 메뉴:

    • 우리 가족만의 퀴즈 만들기 (가족 사진 활용 가능)

    • 학습 리포트 확인 및 난이도 조절

3. 개발 기술 포인트 (Technical Highlights)

이번 프로젝트는 Google Antigravity 환경에서 웹 표준 기술(HTML, CSS, JS)을 활용해 제작되었습니다. 특히 유지보수를 위해 몇 가지 원칙을 지켰습니다.

🛠 모듈화된 데이터 관리 (word_data.js)

누리과정 기반의 300개 단어를 수준별(Level 1~3)로 분류하여 관리합니다. 아이의 실력이 늘어감에 따라 자동으로 난이도가 조절되도록 설계했습니다.

🎨 인터랙티브 UI/UX (style.css)

아이들의 눈높이에 맞춰 파스텔 톤의 테마를 적용했습니다. 특히 중력 효과를 활용해 단어 이모지가 아래로 떨어지는 애니메이션은 아이의 집중력을 높여주는 핵심 요소입니다.

🧠 스마트한 학습 로직 (script.js)

  • TTS (Text-to-Speech): Web Speech API를 사용하여 모든 안내를 음성으로 제공합니다.

  • 오답 우선 노출: 아이가 틀린 단어는 LocalStorage에 저장되어 복습 모드에서 더 자주 등장하도록 구현했습니다.

마무리하며

직접 코딩을 통해 아이에게 필요한 선물을 줄 수 있다는 것은 개발자로서 큰 기쁨입니다. 이 프로젝트의 소스코드는 모듈화와 재사용성을 고려해 작성되었으며, 앞으로 더 많은 단어와 재미있는 테마를 추가할 계획입니다.

혹시 비슷한 고민을 하는 부모 개발자분들이 계신다면, 여러분도 아이만을 위한 특별한 '놀이터'를 만들어보시는 건 어떨까요?

혹시나 궁금 하신 분들을 위해 압축파일 링크 공유 합니다. WordCard

최근 AI를 이용한 개발에 RULES.md로 코딩 규칙을 정하고 readme.md 파일을 생성 해둔 이후 코드 작성을 진행 하는 테스트를 진행하고 있습니다. 해당파일들도 포함되어 있습니다.

파일내 전문가는 AI에 역활을 주어 결론을 도출 하는 형식으로 사용 했습니다.

프로젝트 진행은 개인의 스터디를 위해 개발 되는 부분들이 있음을 양해 해주시기 바랍니다.


저작권 및 이용 안내 (License)

본 프로젝트의 소스 코드와 자산은 아래의 라이선스 정책을 따릅니다.

CC BY-NC-ND 4.0 (저작자표시-비영리-변경금지)

실행 허용: 코드 수정 없이 원본 상태로 실행 및 학습 목적으로 사용하는 것만 허용됩니다.

비영리: 상업적 목적으로 이용할 수 없습니다.

변경 금지: 코드를 수정하거나 이를 기반으로 한 2차 저작물 제작이 금지됩니다.

* 본 프로젝트의 공유는 AI를 이용한 코딩 방법에대한 공유와 피드백을 위해 공유 합니다.

#한글공부 #6세교육 #육아코딩 #한글게임 #웹개발 #Javascript #ParentingTech #딸바보개발자 #홈스쿨링 #한글놀이 #쑥쑥한글퀴즈 #GoogleAntigravity


[AI로 생성한 프로젝트의 인포그래픽]




2026년 1월 3일 토요일

Modbus Monitor: 이제 데이터 흐름이 보인다! 실시간 그래프 기능 탑재 📈

 안녕하세요! ㄱRockdiesel3 입니다.

산업용 통신 프로토콜의 표준인 Modbus를 더욱 효율적으로 모니터링하기 위한 Modbus Monitor의 최신 업데이트 소식을 전해드립니다.

이번 업데이트의 핵심은 사용자가 데이터의 변화 추이를 한눈에 파악할 수 있도록 돕는 Real-time Graphing(실시간 그래프) 기능입니다. 이제 숫자 기반의 모니터링을 넘어, 시각적인 분석이 가능해졌습니다.


1. 이번 업데이트의 핵심: Real-time Graphing

데이터가 갑자기 튀거나 주기적으로 변하는 현상을 놓치지 않도록 그래프 윈도우(Graph Window) 기능을 대폭 강화했습니다.

  • 최대 8개 채널 동시 추적: Coil, Discrete Input, Holding/Input Register 등 다양한 주소를 최대 8개까지 등록해 실시간으로 비교 분석할 수 있습니다.

  • 유연한 축 설정: 실제 시간 기반의 Time Mode와 데이터 패킷 수신 순서 기반의 Count Mode를 지원하여 데이터 패턴을 명확히 볼 수 있습니다.

  • 직관적인 제어: Start/Stop 버튼과 체크박스를 통해 원하는 데이터 구간만 손쉽게 기록하고 관리할 수 있습니다.


2. 완벽한 테스트 환경: Modbus Simulator

강력해진 모니터 기능을 하드웨어 장비 없이도 즉시 검증할 수 있도록 Modbus Simulator도 최적화되었습니다.

  • 워크스페이스 연동: Modbus Monitor에서 설정한 .json 파일을 로드하여 동일한 테스트 환경을 즉시 구축할 수 있습니다.

  • Dual Protocol 지원: TCP/IP 및 Serial RTU 통신 환경을 모두 시뮬레이션할 수 있어 다양한 현장 대응이 가능합니다.

  • 스마트 메모리 관리: ModbusSparseDataBlock 적용으로 넓은 주소 대역에 유연하게 대응하며, 안정적인 데이터 송수신을 보장합니다.


3. 주요 개선 사항 요약

기능 구분주요 업데이트 내용
모니터링실시간 그래프 시각화, 패킷 분석 및 로그 시스템 강화
시뮬레이터모니터 설정 가져오기(Import), 스마트 메모리 할당
안정성안전한 프로세스 종료(Safety Shutdown) 및 실시간 데이터 동기화

4. 맺음말

이번 업데이트를 통해 Modbus 통신 분석의 정확도와 편의성을 한층 높였습니다. 특히 새롭게 추가된 그래프 기능은 시뮬레이터와의 연동을 통해 사전 검증이 완료되어, 더욱 안정적인 모니터링 환경을 제공합니다.

이번 업데이트로 더욱 개선되기를 바랍니다. 감사합니다!










2025년 12월 28일 일요일

8시간의 프로토타입, 그 이후: "내 입맛에 맞는 Modbus 툴"이 갖춰야 할 디테일들

 지난번, 퇴근 후 딱 이틀(8시간)을 투자해 Google Antigravity IDE와 함께 Modbus TCP 모니터링 툴의 프로토타입을 만들었던 과정을 공유했었습니다.

"돌아만 가는" 프로그램에서 멈추지 않고, 지난 며칠간 퇴근 후 시간을 쪼개어 실제 현장에서 쓸 수 있는 수준으로 다듬는 작업을 진행했습니다.

오늘은 그 과정에서 추가된 Monitor(Client)와 Simulator(Server)의 핵심 업그레이드 내용을 정리해 봅니다.


🚀 무엇이 달라졌나? (Update Overview)

가장 큰 변화는 **'안정성'**과 **'디버깅 편의성'**입니다. 단순히 데이터를 주고받는 것을 넘어, 통신 상태를 눈으로 확인하고 예외 상황에서도 프로그램이 죽지 않도록 구조를 탄탄하게 잡았습니다.

구분초기 프로토타입 (v0.1)현재 버전 (v0.2)
통신 방식TCP/IP 기본 구현TCP/IP + Serial RTU (Dual Support)
안정성UI 프리징 발생 가능성 있음Multi-threading (PollingWorker) 적용
디버깅콘솔 출력 의존전용 Log Window (Rx/Tx 패킷 분석)
시뮬레이터수동 주소 할당 필요Smart Memory (SparseDataBlock) 자동 할당

🛠️ 1. Modbus Monitor: "죽지 않는 클라이언트"

현장 툴은 예뻐야 하는 게 아니라, 튼튼해야 합니다. 모니터링 프로그램이 통신 때문에 멈추거나 꺼지면 안 되기에 내부 구조를 대폭 개선했습니다.

✅ Multi-threading 도입 (UI 프리징 해결)

기존에는 통신 대기 시간 동안 화면이 멈칫하는 현상이 있었습니다. 이제 PollingWorker를 별도 쓰레드로 분리하여, 통신이 지연되더라도 UI는 부드럽게 반응합니다.

✅ 똑똑해진 로그 윈도우 (Log Window)

단순히 "연결됨/끊김"만 보는 건 의미가 없습니다.

  • Rx/Tx 패킷 분석: 실제로 어떤 바이트가 오고 가는지 실시간으로 보여줍니다.

  • FIFO 버퍼: 로그가 무한히 쌓여 메모리를 잡아먹지 않도록 1,000줄 제한을 뒀습니다.

  • Auto-Stop: 통신 에러가 10회 연속 발생하면 자동으로 폴링을 멈추고 사용자에게 알립니다. (무의미한 재시도 방지)


🛠️ 2. Modbus Simulator: "알아서 다 해주는 서버"

시뮬레이터의 존재 이유는 **'모니터링 툴을 편하게 테스트하기 위함'**입니다. 귀찮은 설정 과정을 자동화하는 데 집중했습니다.

✅ Monitor 설정 흡수 (Config Import)

이 프로젝트의 핵심 아이디어입니다. Monitor에서 저장한 .json 워크스페이스 파일을 시뮬레이터가 그대로 읽어옵니다.

"어? 모니터에서 40001번지 보고 있었네? 그럼 난 시뮬레이터에 40001번지 창 띄워줄게."

이 과정이 자동화되어 테스트 준비 시간이 획기적으로 줄어들었습니다.

✅ 스마트 메모리 관리 (Smart Memory Management)

기존에는 시뮬레이터에서 테스트할 번지를 일일이 Add Range로 추가해야 했습니다.

이제는 ModbusSparseDataBlock을 적용하여, 0번지부터 40,000번지까지 표준 주소 대역이 내부적으로 이미 준비되어 있습니다. 클라이언트가 어디를 찌르든, 시뮬레이터는 별도 설정 없이 즉시 응답합니다.

✅ 좀비 프로세스 방지 (Safety Shutdown)

개발하다 보면 프로그램을 껐는데도 백그라운드에서 포트(5020)를 잡고 있는 경우가 많았습니다. 종료 시 실행 중인 서버 쓰레드를 안전하게 정리하는 로직을 추가하여 재실행 시 포트 충돌 문제를 해결했습니다.


⚡ 개발 경험: Serial RTU와 디테일

TCP뿐만 아니라 Serial RTU 기능도 구체화되었습니다. 특히 Baudrate 설정 시 콤보박스를 Editable하게 변경하여, 표준 속도 외에 특수한 통신 속도도 입력할 수 있게 만든 점은 현장 경험을 녹여낸 디테일입니다.

🔮 남은 과제들 (Next Step)

이제 뼈대와 근육은 다 붙었습니다. 다음 단계는 **"피부"**를 입힐 차례입니다.

  • 데이터 시각화: 테이블에 숫자로 찍히는 데이터를 실시간 그래프로 변환하여 추세를 볼 수 있게 만들 예정입니다.

  • 실장비 테스트: 시뮬레이터를 넘어 실제 PLC 및 컨버터 장비와 RTU 통신을 검증하려 합니다.

퇴근 후 개발은 체력과의 싸움이지만, 내가 만든 도구가 점점 똑똑해지는 걸 보는 재미가 쏠쏠합니다. 다음에는 그래프가 움직이는 화면을 들고 오겠습니다! 👋

[복구] [DevLog] 퇴근 후 8시간, 구글 Antigravity IDE로 Modbus TCP 툴 프로토타입 만들기

이전 작성 되었던 블로그의 복구 입니다.

 

📝 Note: 이 글은 현재 개발 중인 프로젝트의 Modbus MonitorModbus Simulatorreadme.md 파일을 기반으로 작성되었습니다.

개발자에게 퇴근 후 시간은 또 다른 창작의 시간입니다. 이번에는 딱 2일, 하루 4시간씩 총 8시간을 투자해 개인 프로젝트로 Modbus TCP/RTU 모니터링 및 시뮬레이션 툴의 프로토타입을 만들어보았습니다.

아직 완성된 프로그램은 아니지만, 구글의 Antigravity IDE 덕분에 짧은 시간 안에 TCP/IP 통신 검증까지 마칠 수 있었습니다. 이 프로젝트의 초기 개발 과정을 공유합니다.


🚀 프로젝트 시작: 왜 직접 만드나?

시중에는 이미 많은 Modbus 툴이 있지만, **"내 입맛에 딱 맞는 테스트 환경"**을 구축하기엔 아쉬움이 있었습니다. 특히 클라이언트(Monitor)와 서버(Simulator) 간에 설정을 매번 따로 잡아줘야 하는 번거로움을 해결하고 싶었습니다.

그래서 **"설정을 공유하는 쌍둥이 프로그램"**을 목표로 개발을 시작했습니다.

🛠️ 개발 환경 및 현황

  • 개발 기간: 2일 (퇴근 후 4시간 × 2일 = 총 8시간)

  • 핵심 도구: Google Antigravity IDE (초기 구조를 잡는 데 결정적 역할)

  • 개발 언어: Python 3.x, PySide6, Pymodbus

  • 현재 상태:

    • TCP/IP Server/Client: 구현 및 검증 완료

    • 🚧 Serial RTU: 코드 구현 완료 (테스트 예정)

    • 🚧 UI/UX: 기능 추가 및 고도화 진행 중


📦 현재까지 구현된 핵심 기능

1. Modbus Monitor (Client) - TCP 검증 완료

현장의 장비 데이터를 모니터링하는 메인 툴입니다. 현재 TCP/IP 통신을 우선적으로 테스트하고 있습니다.

  • MDI 인터페이스: 여러 데이터 영역(Coils, Holding Registers 등)을 개별 창으로 띄워 관리할 수 있는 기본 골격을 완성했습니다.

  • 워크스페이스 저장: 현재 창의 배치와 주소 설정을 JSON으로 저장하는 기능을 구현했습니다.

  • 기능 확장성: 현재는 TCP 위주로 테스트 중이지만, Serial RTU 연결 설정(Baudrate, Port 등) UI도 미리 구성해 두었습니다.

2. Modbus Simulator (Server) - 설정 연동 성공

이 프로젝트의 핵심 아이디어인 "클라이언트 설정 흡수" 기능이 동작합니다.

  • Config Import: Monitor에서 저장한 워크스페이스 파일(.json)을 불러오면, 시뮬레이터가 자동으로 해당 주소 번지와 데이터 영역을 생성합니다. 일일이 주소를 입력할 필요가 없어 테스트가 매우 빨라집니다.

  • 양방향 동기화: 시뮬레이터와 클라이언트가 TCP로 연결된 상태에서, 양쪽의 값 변경이 실시간으로 반영되는 것을 확인했습니다.


⚡ Antigravity IDE와 함께한 8시간

MDI 구조의 GUI와 소켓 통신을 바닥부터 짜려면 꽤 많은 시간이 걸립니다. 하지만 Antigravity IDE를 활용한 덕분에 보일러플레이트 코드를 줄이고 핵심 로직에만 집중할 수 있었습니다.

단 8시간 만에 **"기획 → UI 구성 → TCP 통신 연동"**까지 사이클을 돌려볼 수 있었던 것은 도구의 힘이 컸습니다. 덕분에 퇴근 후 짧은 시간에도 몰입도 높게 개발할 수 있었습니다.

🔮 앞으로의 계획 (To-Do)

이 프로젝트는 이제 막 걸음마를 뗐습니다. 앞으로 퇴근 후 시간을 활용해 다음과 같은 기능을 추가해 나갈 예정입니다.

  1. Serial RTU 검증: 실제 컨버터 장비를 연결해 RTU 통신 안정성을 테스트할 계획입니다.

  2. 데이터 시각화: 단순 테이블 뷰를 넘어, 데이터 변화를 그래프로 보여주는 기능을 고려 중입니다.

  3. 로그(Log) 기능: 통신 패킷과 에러 로그를 기록하여 디버깅을 돕는 기능을 추가하려 합니다.


아직 갈 길이 멀지만, Antigravity IDE와 함께 발전해 나갈 이 프로젝트의 여정을 지켜봐 주세요! 👋

2025년 12월 26일 금요일

다시 만들기

 워크스페이스를 써보려 계정을 만들어 사용하다 보니 계정을 잘못 만들었더군요


그래서 이전 블로그글(몇개 없었지만) 및 기존 계정 초기화 하고 다시 만들었네요


이번엔 재대로 만들었는지 모르겠네요...

🤖 리틀 로직 봇(Little Logic Bot) 개발 여정기

  "아빠가 설계하고 딸이 완성하는 로직 퍼즐" 만 4~6세 아이들을 위한 초기 코딩 교육용 웹 게임 개발 프로젝트 📌 프로젝트 개요 탄생 배경 이 프로젝트는 펌웨어 엔지니어인 아빠가 딸을 위해 시작한 교육용 게임입니다. 복잡한 텍...