분류 전체보기
-
-
서비스 배포 및 운영Project/셔틀버스 결행 알리미 2023. 5. 6. 01:05
이전 글에서 실제 서버에 DB 구축을 계획했었는데, 이후 글 작성하는 것을 잊어버렸다.. 그래서 현재는 서비스를 배포하고 운영한지 벌써 2달이 되어버려 이 게시글에서 함께 정리하고자 한다. 서버 DB 구축 서버에 사용할 DBMS로는 가장 표준적 SQL문을 사용하는 MySQL를 선택했다. 실제로 서버에 DB를 구축해 보는 것은 처음인지라 계정 생성, 권한 부여, 포트 허용 등 하나하나 씩 알아가며 적용하다 보니 시간도 오래 걸리고 어려움도 많았다. 그래도 확실히 시간이 오래 걸리더라도 무엇이든지 직접 몸으로 부딪혀 봐야 실력이 늘고 남는 것 같다. 서비스 배포 서비스 배포는 개강 시기에 맞춰 3월 초 에브리타임 게시판을 통해 배포를 진행하였다. 사실 해당 서비스가 뭐 엄청 대단한 것은 아니지만, 내가 직접..
-
Python f-string과 유사한 "MessageFormat"Memo/Java 2023. 3. 16. 15:12
파이썬에서는 f-string을 정말 편리하게 사용해 왔었다. 하지만 아쉽게도 자바에서는 파이썬의 f-string과 동일한 기능을 하는 메소드는 없었다.. 그래도 그나마 파이썬의 format 함수와 유사한 "MessageFormat"이란 것을 알게되었다. String step1 = "one"; String step2 = "two"; String string = MessageFormat.format("Step {0} of {1}", step1, step2); 기존 String.Format( ) 메소드와 다르게 자료형을 별도로 지정해주지 않아도 된다. ps. 검색 결과 Map을 이용해 f-string을 비슷하게나마 사용할 수는 있었다. 그러나 굳이굳이 이렇게 까지해서 사용하지는 않을 것 같다..😹 From t..
-
[Python] 'utf-8' codec can't decode byte 0xbe 에러 해결Memo/Python 2023. 2. 17. 16:47
파이썬에서 한글이 포함된 print문을 실행할 때 아래와 같은 오류가 발생하였다. SyntaxError: Non-UTF-8 code starting with '\xbd' in file ... 또는 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xbe in position 0: invalid start byte 다음과 같이 주석이 소스코드 제일 상단에 작성하면 해결할 수 있다. # coding=euc-kr 처음에는 utf-8을 입력했는데, 두 번째 에러가 계속 발생하여 검색해 보니다, utf-8이 아닌 euc-kr을 입력해 해결할 수 있었다. PEP 263 – Defining Python Source Code Encodings | peps.p..
-
[MySQL] 설치 및 초기 설정Memo/Ubuntu 2023. 2. 14. 21:13
# Ubuntu MySQL 설치 $ sudo apt update $ sudo apt install mysql-server $ sudo systemctl start mysql # 실행 $ sudo systemctl status mysql # 동작 상태 확인 $ sudo systemctl enable mysql # 부팅시 자동 재시작 # MySQL root 계정 접속 초기 root 계정은 비밀번호가 없음, 빈칸 엔터 방법 1) $ sudo mysql -u root -p 방법 2) $ sudo /usr/bin/mysql -u root -p # 계정(root) 비밀번호 변경 방법 1) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '비번'; 방법 2) mysql> A..
-
[Python] 텔레그램 API로 메시지 전송 방법 (마크다운, 이모지, 버튼)Memo/Python 2023. 2. 13. 22:42
# 텔레그램 메시지 전송 기본 API 구조 https://api.telegram.org/bot/sendMessage?chat_id=&text=안녕 # 파이썬에서 json 형식으로 메시지 보내기 import requests data = {"chat_id" : , "text": "안녕"} url = f"https://api.telegram.org/bot/sendMessage?" res = requests.post(url, json=data) 텔레그램 API로 채널에 메시지 보내기 · Wireframe 파이썬에서 텔레그램 API를 사용하여, 특정 채널에 메시지를 보내는 방법을 알아봅시다. API를 통해서 메시지를 게시하려는 채널이 있다면, 텔레그램에서 새로 봇 하나를 만들고, 이 텔레그램 봇 soooprmx...
-
텔레그램 채널 연동Project/셔틀버스 결행 알리미 2023. 2. 13. 22:05
# 사용한 개발 언어: Python 3.10 # 사용한 API: Telegram API 셔틀버스 관련 정보를 전달하기 위한 수단으로 텔레그램 채널을 선택하였다. 채널 관리자가 메시지를 전송하면 채널을 구독한 모든 인원이 메시지를 수신할 수 있는 구조이다. 셔틀버스 정보를 자동으로 전송하기 위해 텔레그램 API를 이용하였으며, 공지사항 게시판에 셔틀버스와 관련된 게시글이 등록되면 자동으로 게시글의 제목과 링크를 메시지로 전달되도록 구현하였다. 새로운 게시글인지 판단하기 위해 게시글 번호를 DB에 저장하였다. 일정 간격으로 공지사항 게시글을 체크하여 등록된 게시글 번호가 DB에 존재하는지 체크한다. 만약 해당 게시글 번호가 DB에 존재하지 않는다면 새로운 게시글로 판단하여 채널에 메시지를 전송한다. 이로써 ..
-
게시글 정보 추출Project/셔틀버스 결행 알리미 2023. 2. 12. 15:20
# 사용한 개발 언어: Python 3.10 # 사용한 패키지: Request, BeautifulSoup 학교 홈페이지의 공지사항 게시판은 '정적 페이지'로 BeautifulSoup을 이용하여 손쉽게 정보를 추출할 수 있었다. 많은 공지 게시글 중에서 셔틀버스와 관련된 게시글만 가져오기 위해 '셔틀' 이란 단어를 검색해 나온 결과를 가져왔다. 이후 게시글의 제목과 URL을 추출하였다. 게시글의 URL를 비교해 보면 '&nttNo=' 뒤의 숫자만 다른 것을 확인할 수 있다. 이것으로 '&nttNo=' 뒤에 나오는 숫자가 게시글의 고유 번호인 것을 알 수 있었다. 실제로 다른 게시판의 글일지라도 '&nttNo=' 뒤의 숫자만 변경하면 해당 게시글로 이동할 수 있었다. 따라서 해당 게시글 번호를 DB의 pk로..