Thinking/Idea

날 일정시간마다 응원해주는 컴퓨터 프로그램 만들기

imaginefuture-1 2024. 9. 23. 09:28

어제 잠들기 전 문득 그 생각이 들었다

IT는 컴퓨터를 이용하는 분야지 않나

정보기술(情報技術, 영어: information technology, IT)은 전기 통신, 방송, 컴퓨팅(정보처리, 컴퓨터 네트워크, 컴퓨터 하드웨어, 컴퓨터 소프트웨어, 멀티미디어), 통신망 등 사회 기반을 형성하는 유형 및 무형의 기술 분야이다. (위키백과)

그렇기에 C언어, 파이썬 등(컴퓨터와 소통하기 위한 언어) 을 배우는 이유는 간단하다

왜!

소통을 해야 일단 상호작용을 할 수 있으니까!

영어를 쓰는 사람과 얘기하기위해선 영어를 알아야하고

불어를 쓰는 사람과 얘기하기위해선 불어를 알아야하는 것 처럼

우리는 컴퓨터가 쓰는 언어를 알아야 컴퓨터랑 대화할 수 있다

그래..나는 컴퓨터라는 친구랑 지금 대화하기위해서 친해지고 있는 과정이라 생각하면 된다


여기서 생각을 더 확장해보았다

우리는 살면서 어떤 친구랑 더 친해지고싶지? 더 얘기하고싶지? 더 오래 시간을 보내고싶지?

1.보통 관심분야가 비슷하거나

2.유머코드가 비슷하거나

3.가치관이 비슷하거나

결국 결이 비슷하고 대화가 잘통하면 좀 더 함께 있고 싶지않을까?

그리고 보통 부정적인 친구보다 긍정적인 친구랑 함께 있고싶은게 사람 심리다

컴퓨터는 근데 어.. 개그도 할 수 없고..

가치관도.. 모르고..

관심분야..? 0과 1..?

맞다 아니다만 출력하는데 이친구는...

긍정적인거..? 긍정적인거..? 어..?

아!

그래!

컴퓨터라는 친구가 긍정적인 친구면 더 친해지고 싶지않을까?

=더 공부를 하고싶지않을까?, 더 알아가고싶지않을까?

그럼 일정시간마다

컴퓨터라는 친구가 나한테 화면에서 팝업창을 띄워주는거야

"넌 잘하고 있다고"'

"할 수 있다"

"항상 응원해"'

"나랑 친해질려고 노력해줘서 고마워"

혼자 사는 인생이긴하지만

옆에서 누가 공부하거나, 일하거나, 무언가를 시작했을 때 잘한다 잘한다해주면 기분 좋지않은가

https://m.blog.naver.com/sdibattery/221237396767

칭찬의 힘은 대단하다!


나는 자바도 모르고 c언어도 모르고 파이썬도 모르고..

IT 공부 이제 막 일주일 시작한 응애인걸요...어떻게 만들지..(막막)

하지만 모든 문제에는 결국 답이있단말이지

구글링 시작했다

https://dotiromoook.tistory.com/32

파이썬 설치 완료

세상아 안녕!

프로그램 창을 띄우고 싶은데 검색해보니

이 창을 보통 gui라고 한다

https://www.jobindexworld.com/contents/view/4432

그렇다면 gui는 어떻게 생성할까

역시 검색하니 나왔다

https://076923.github.io/posts/Python-tkinter-1/

하하 창이 생겼지롱

이제 내가 필요한건 그거다

1.일정시간마다 알려주는 알람기능

2. 그와 동시에 응원하는 문구의 창이 떠야한다

1-1 시간 조절할 수 있는 클릭 버튼, 시간 범위 조정 버튼

2-1 start 누르면 일정시간 지났을 때 창이 떠야한다

아...

머리 슬슬 아파온다

살려줘!

버튼..그래 버튼을 만들자

https://jkyoon.tistory.com/25

 

from tkinter import *

root = Tk()

root.title("Cheering")

btn1=Button(root,text="버튼1")

btn1.pack()

root.geometry("320x240")

root.mainloop()

일단 버튼을 만들긴했다..

아니다 이렇게 하다간 영영 이 프로그램을 못 만들 것 같아

..분명 비슷한 프로그램이 있을텐데

https://blog.naver.com/akkril/220220224580

오 이 프로그램에 응원해주는 창을 띄워준다+ 라는 기능만 추가 되면 되지않을까?

이 프로그램 소스코드가 어떻게 되어있을려나?

exe 파일 소스코드 보는 법 검색검색,..

https://erinyees.tistory.com/73

 

천천히 따라했는데..

안된다....하...

이거 만들수는 있나...?

일단 2024-09-12 3시 지금까지 끝...,

강의 들으러가야한다.,...


하하 2024-09-13 3시 조교님한테 물어봤다가

챗gpt쓰는거 어떠냐해서 썼더니

역시...ai가 인간의 세상을 지배할지도 모른다.....매트릭스.....

일단 이것저것 시도하다가 수업시간 다 되서 오늘은 여기까지

2024-09-14 10시

일단 다시 차근차근 해보자

미래엔 얼마나 발전할지 무서울정도인 챗gpt

visual studio code로 작동했더니 이렇게 구현됐다

나에게 수정이 필요한 부분은

1. 프로그램 이름 변경 "컴퓨터 친구"

2. 일정 시간이 되었을 때 뜨는 문구("일정 시간이 지났습니다" -> 잘하고 있어 내 친구!" 내용 변경

3. 문구도 한개가 아닌 여러개 추가 (순서는 랜덤)

4. 알람 주기는 (초)뿐만아니라 분, 시간 단위도 추가

5. exe파일로 프로그램 만들기

일단 현재 내 턱없이 짧은 지식으로 할 수 있는건

1. 프로그램 이름 변경 "컴퓨터 친구"

2. 일정 시간이 되었을 때 뜨는 문구("일정 시간이 지났습니다" -> 잘하고 있어 내 친구!" 내용 변경

3. 문구도 한개가 아닌 여러개 추가 (순서는 랜덤)

4. 알람 주기는 (초)뿐만아니라 분, 시간 단위도 추가

5. exe파일로 프로그램 만들기

visual studio code 단축키

전체 코드 선택 ctrl +a 이후 ctrl+c, ctrl +v하면 쉽게 전체코드 복사 가능

코드를 보자

 
import tkinter as tk
from tkinter import messagebox
import threading
import time

class AlarmApp:
    def __init__(self, root):
        self.root = root
        self.root.title("알람 프로그램")
        self.interval = 10  # 알람 주기 (초)
        self.is_running = False  # 알람 작동 상태
        self.thread = None
        
        # GUI 구성
        self.label = tk.Label(root, text="알람 주기 (초):")
        self.label.pack()

        self.entry = tk.Entry(root)
        self.entry.insert(0, str(self.interval))
        self.entry.pack()

        self.start_button = tk.Button(root, text="알람 시작", command=self.start_alarm)
        self.start_button.pack()

        self.stop_button = tk.Button(root, text="알람 중지", command=self.stop_alarm)
        self.stop_button.pack()

    def show_alarm(self):
        messagebox.showinfo("알람", "일정 시간이 지났습니다!")

    def alarm_loop(self):
        while self.is_running:
            time.sleep(self.interval)
            self.show_alarm()

    def start_alarm(self):
        if not self.is_running:
            try:
                # 입력한 주기 값을 가져와서 설정
                self.interval = int(self.entry.get())
                self.is_running = True
                self.thread = threading.Thread(target=self.alarm_loop)
                self.thread.start()
                messagebox.showinfo("알림", "알람이 시작되었습니다!")
            except ValueError:
                messagebox.showwarning("입력 오류", "올바른 숫자를 입력하세요.")
    
    def stop_alarm(self):
        if self.is_running:
            self.is_running = False
            if self.thread:
                self.thread.join()
            messagebox.showinfo("알림", "알람이 중지되었습니다!")

# 메인 실행 부분
if __name__ == "__main__":
    root = tk.Tk()
    app = AlarmApp(root)
    root.mainloop()

1. self.root.title("알람 프로그램")

"알람 프로그램" -> "컴퓨터 친구"로 변경

2. messagebox.showinfo("알람", "일정 시간이 지났습니다!")

"알람"-> "컴퓨터 친구로부터의 메세지"로 변경

"일정 시간이 지났습니다!" -> "잘하고 있어 내 친구!로 변경

프로그램 이름 변경 완료

2초로 세팅하고 기다리니 창이 뜬다

하하 고마워 친구야

하지만 그 행복도 잠시 12초만에 나는 문제를 발견했는데

분명 응원 창은 2초마다 뜨는데 이게 "확인"버튼을 눌러야 이후 2초뒤에 또 메세지가 뜨는거였다

나는 "2초마다 확인을 일일히 누르지않아도 알아서 계속 반복해서 뜨는걸" 원한다

아니다 잠시만 그러면 프로그램을 어떻게 멈추지..?

바탕화면에

잘하고 있어 내 친구!

잘하고 있어 내 친구!

잘하고 있어 내 친구!

.

.

.

계속해서 뜨면 무서울 것 같은데..?

흡사 윈도우 에러창 무한 반복 느낌인건가

일단 이건 문제..문제라고 해야하나? 프로그램 실행 과정 상 당연한 것 같은데

보류하기로 했다

그리고 제일 큰 문제는

원래 초기의 창이 보이지않는다.. 알람을 시작하면 그대로 사라짐

이후 알람 메세지만 뜬다

어디서..전 어디서 알람을 중지할 수 있죠..?

ㅋㅋㅋ

ㅋㅋㅋㅋ

컴퓨터나, visual studio code 프로그램을 아예 끄지않는 이상 무한 반복 루트에 갇혀버렸다,..

버튼을 없앤다..?

 

아래는 챗gpt가 알려준 소스코드다

 

 

import time
import threading
import tkinter as tk
from tkinter import messagebox

def show_alarm():
    """알람을 보여주는 함수."""
    root = tk.Tk()
    root.withdraw()  # 메인 창 숨기기
    messagebox.showinfo("알람", "설정된 시간이 지났습니다!")
    root.destroy()

def periodic_alarm(interval):
    """일정 시간마다 알람을 반복하는 함수."""
    while True:
        time.sleep(interval)  # 설정된 주기 동안 대기
        threading.Thread(target=show_alarm).start()  # 알람을 스레드로 실행

# 메인 실행 부분
if __name__ == "__main__":
    interval = 10  # 알람 주기 (초)
    threading.Thread(target=periodic_alarm, args=(interval,)).start()

 

 

실행하자마자 즉각 문제를 알아차렸는데

그냥..

진짜 말그대로 창이 뜬다

확인을 누르고 기다리면 또 창이 뜬다

확인을 누르고 기다리면 또 창이 뜬다....

일정시간도 코드에서 계속 쓸 때마다 변경해줘야한다

프로그램에서가 아닌.

아하 멍청한 짓이었군

하하

일단..2024-09-14 10시51분.. 여기서 마무리..

일단 20분마다 알람 맞춰놓고 공부하기로 했다

오늘 사용해보고 한번 후기 남겨보겠다


 

하하 강의 듣다가 갑자기 띵 하고 소리가 나면 "잘하고 있어 내친구!"라는 창이 뜬다 ㅋㅋ
ㅋㅋㅋㅋ생각보다 귀엽고 힘 된다ㅋㅋㅋ
근데 집중 깨서 결국 하루 사용하고 안쓰는 중...