[프롬프트] 지구 구름 사진 바탕화면
지구 구름 사진 바탕화면 앱의 프롬프트를 정리해 공개합니다.
바이브 코딩을 통해 앱 개발 전혀 모르는 문송 50대도 이런 앱을 만들 수 있습니다.
진짜 누구나 간단한 프로그램은 AI를 이용해 만들 수 있는 세상이 된 것이지요.
바이브 코딩의 핵심은 '프롬프트'입니다. 내가 원하는 것을 AI에게 정확히 전달하는 능력이 중요합니다.
내가 원하는 것을 글로 정리 할 수 없다면 AI 사용자가 아닌, AI의 노예가 될 거예요.
바탕화면 구름사진 EarthWallpaper(Desktop Earth, xplanet) 0.4
http://jikji.duckdns.org:8085/cloud/EarthWallpaper_v0.4.zip 실시간 지구 구름 사진 바탕화면 앱입니다.사용법은 여기 참고하세요.https://www.epubguide.net/692 0.3에서 몇가지 개선사항이 있어 버전업 합니다.- 배경
www.epubguide.net
이 앱의 기본 기능은 다음과 같습니다.
1. 지구 평면 사진, 낮과 밤 사진 2장을 조합해 원형으로 지구를 표현
2. 원형 지구 위에 실시간 구름 사진을 표시(데이터 업데이트 주기가 있어 실제로는 1시간)
3. 위도, 경도를 조절 할 수 있고 확대/축소, 구름사진 설정 등을 조절
4. 정해진 시간에 한 번씩 업데이트를 함. 이때 실제 시간에 맞춰 밤낮을 표현

이 앱을 만들기 위한 기본 프롬프트를 정리했습니다.
물론, 이 프롬프트를 넣어서 만들어 달라고 해도 완벽한 상태가 나오지는 않습니다.
이 프롬프트로 기본을 잡고, 앱을 실행시켜 확인하면서 본인이 원하는 기능을 추가해 나가야 합니다.
이 프롬프트를 공부하다 보면, 더 복잡한 프로그램도 AI를 이용해 만들 수 있습니다.
# 역할 부여
당신은 시니어 파이썬 개발자입니다. Windows 환경에서 작동하는 '실시간 3D 지구 배경화면 프로그램'을 제작해야 합니다. 코드는 단일 파일(`desktop_app.py`)로 작성하되, 아래의 요구사항을 완벽하게 준수해야 합니다.
# 프로젝트 개요
- 사용자의 설정(위도, 경도, 줌, 자전축 기울기 등)에 따라 실시간으로 지구 이미지를 렌더링합니다.
- 태양의 위치를 계산하여 낮과 밤의 경계(터미네이터 라인)를 시각화합니다.
- 실시간 구름 위성 사진을 합성하고, Windows 바탕화면으로 지정합니다.
- 시스템 트레이에 상주하며 백그라운드에서 주기적으로 배경화면을 업데이트합니다.
# 기술 스택 (필수)
- 언어: Python 3.9+
- GUI: PyQt6 (모든 UI 구성)
- 이미지 처리: Pillow (PIL), Numpy (고속 연산 및 매트릭스 처리 필수)
- 천문 계산: ephem (태양 위치), 없을 경우 수식으로 대체하는 예외 처리 포함
- 네트워크: requests (구름 이미지 다운로드)
- 시스템 제어: ctypes (배경화면 변경), winreg (레지스트리 조작)
# 상세 기능 요구사항
1. **천체 및 위치 계산 (CelestialCalculator)**
- `ephem` 라이브러리를 사용하여 현재 태양의 적경/적위를 계산하고 지구상의 위도/경도로 변환하세요. (라이브러리 없을 시 에러 처리 포함)
- `http://api.open-notify.org/iss-now.json` API를 통해 국제우주정거장(ISS)의 현재 위치를 가져오세요.
2. **3D 지구 렌더링 엔진 (EarthRenderer)**
- **핵심 로직:** Numpy와 PIL을 사용하여 Orthographic Projection(정사영) 방식으로 2D 지도를 3D 구체로 매핑하세요.
- **텍스처:** 낮 지도(월별 분리 `m01.jpg`~), 밤 지도(`night.jpg`), 구름 지도, 스펙큘러 맵(반사광)을 합성해야 합니다.
- **쉐이딩:** 태양의 위치에 따라 낮/밤 영역을 블렌딩하고, 바다 영역에 태양 반사광(Specular Highlight)을 추가하세요.
- **대기 효과:** 지구 테두리에 푸른 대기 효과(Atmosphere glow)를 그리세요.
- **별 배경:** 배경에 별(`stars.jpg`)을 그리고, 지구의 위치에 따라 배경이 이동(Parallax)하도록 구현하세요.
3. **구름 업데이트 스레드 (CloudUpdateWorker)**
- `QThread`를 상속받아 GUI 멈춤 없이 백그라운드에서 구름 이미지를 다운로드하세요.
- 소스 선택 기능: SSEC API 방식과 직접 URL(`http://.../clouds.jpg`) 방식을 지원해야 합니다.
4. **GUI 구성 (EarthWallpaperApp)**
- **메인 윈도우:** - 좌측: 현재 렌더링된 지구를 보여주는 미리보기 창 (창 크기에 맞춰 비율 유지 리사이징 `ResizeLabel`).
- 우측: 설정 패널 (위도, 경도, 줌, 구름 투명도/선명도, 자전축 슬라이더).
- 옵션: 배경화면 배치 방식(채우기, 맞춤, 확대 등 콤보박스), 업데이트 주기, 시작 프로그램 등록 체크박스.
- **시스템 트레이:** 프로그램을 닫아도 트레이로 최소화되며, 우클릭 메뉴(열기, 종료)를 지원하세요.
5. **시스템 통합**
- **배경화면 적용:** `ctypes.windll.user32.SystemParametersInfoW`를 사용해 렌더링된 이미지를 바탕화면으로 설정하세요.
- **레지스트리 수정:** `winreg`를 사용하여 사용자가 선택한 배경화면 배치 스타일(Tile, Stretch, Fit 등)을 Windows 레지스트리에 반영하세요.
- **설정 저장:** 모든 설정값(위/경도, API 키 등)은 `config.json`에 저장하고 불러오세요.
# 예외 처리 및 자산 생성
- 필요한 이미지 폴더(`earth`, `assets`)가 없으면 자동 생성하세요.
- `stars.jpg`가 없으면 PIL을 이용해 검은 배경에 랜덤한 흰 점을 찍어 임시 별 이미지를 생성하는 코드를 포함하세요.
- `ephem` 모듈이 없어도 프로그램이 죽지 않고 근사치 계산으로 동작하게 하세요.
위 명세를 바탕으로 실행 가능한 전체 파이썬 코드를 작성해 주세요.