ㅇ 일 자 : 2026년 6월 9일(화)
ㅇ 내 용 : 로컬호스트 개념, 멀티스레드 기반 GUI 비동기 처리, LLM연동 및 리소스 관리
※ 실습을 위한 가상환경임
1. 로컬호스트(Localhost) 및 개발 환경 이해
- 개념 정의: 컴퓨터 자신을 지칭하는 기본 루프백 주소 (외부 네트워크에서 접근 불가)
- 접속 방법: 서버 활성화 상태에서 브라우저 주소창에 http://127.0.0.1 또는 http://localhost 입력
- 포트 지정: 개발 서버가 특정 포트를 사용할 경우 http://localhost:8080 형태로 접속
- DB 관리: MySQL / MariaDB 환경은 http://localhost/phpmyadmin을 통해 데이터베이스 제어 (환경에 따라 다를 수 있음)
2. 워커 및 멀티스레드(Multi-Thread)
- 스레드(Thread): 코드가 순차적으로 실행되는 단일 흐름의 단위
- 멀티스레드 필요성: OS 기반 응용 소프트웨어 및 GUI 개발의 핵심 필수 개념
- 동기(Synchronous): 하나의 작업이 완전히 끝난 후 다음 줄의 코드를 실행하는 방식
- 비동기(Asynchronous): 앞선 작업의 종료 여부와 상관없이 다음 코드를 실행하는 방식 (네트워크 통신은 대기 방지를 위해 비동기 처리 권장)
- GUI 화면 멈춤 방지: 프로그램 실행 중 UI가 먹통이 되는 현상을 방지하기 위해 대기 시간이 긴 로직 연산은 별도 스레드로 분리 (GUI 프로그램은 기본적으로 1개의 UI 스레드로 구동되며, 필요에 따라 로직 스레드를 추가)
3. 소스코드 보안 및 데이터 분리 원칙
- 하드코딩 금지: 소스코드 내부에 고정 데이터를 직접 저장하는 행위 철저히 배제
- 리소스 관리: 이미지나 아이콘 등은 리소스 파일(.qrc)을 활용하여 프로그램 코드와 자원을 독립적으로 분리
- 개인정보 보호: AI 모델 정보, 회원 정보, API 키 등 민감 데이터는 소스코드 및 리소스 파일과 완벽히 분리하여 환경변수 파일(.env) 등으로 관리
4. 실습 및 기능 구현 핵심 요약
- 응답 표시: GUI 화면에 로컬 LLM의 답변을 매끄럽게 출력하는 기능 구현
- QThread 도입: LLM 답변 대기 시간 동안 UI가 멈추거나 응답 없음 상태가 되는 현상 해결
- 앱 기능 전환: 일반 대화형 앱에서 효율적인 '메모 요약 앱'으로 구조 변경
- 기록 시스템 구축: 사용자가 요약한 텍스트 히스토리를 한눈에 볼 수 있는 '요약 기록 목록' 구현
- 환경 설정 최적화: 앱 세팅 값과 리소스 파일 정리를 통한 프로젝트 구조 안정화
5. 예시 실습 및 이해하기
5.1. GUI에서 응답 표시하기

5. 2. QThread로 응답 대기중 화면 멈춤 방지

5.3. 메모 요약 앱으로 바꾸기


5.4. 요약 기록 목록 만들기

5.5. 세팅과 qrc 리소스 정리

끝.
'학습 로그 > Python3' 카테고리의 다른 글
| [D+50] LLM (Gemini, lovable, gabia) 활용한 개인 웹페이지 제작(실습) (0) | 2026.06.18 |
|---|---|
| D+49[Python] 메모 요약 앱 만들기 예제 실습 (0) | 2026.06.18 |
| D+42 [Python] hashlib 뭐야? 어떻게 활용해야 할까? (0) | 2026.06.08 |
| D+41[Python] Resource & 메모장 예제 실습 (0) | 2026.06.05 |
| D+39 [아두이노] Arduino & AI를 응용한 "프로그램 기획서" 작성 예시 (0) | 2026.06.02 |