본문 바로가기

공학

대학 식단 앱 개발-1

서론

고등학교 친구가 한국교원대에 다니는데 학교 식단앱이 있어도 없는 수준이라 만들어버리고 싶다는 얘기를 했다. 그래서 방학 때 한 번 만들어보기로 했다. 진짜 다른 이유없이 이렇게 재미있어 보여서 시작했다.

환경 구축

Flutter을 이용하기로 했다. OS에 따른 디테일이 좀 떨어진다고는 하지만 간단하고 빠르게 개발을 할 수 있을 거 같아서 선택했다.

https://learn-and-give.tistory.com/37

 

[Flutter]. 03. 기본 템플릿 프로젝트 실행하기(VS Code)

개발에 사용 할 에디터까지 준비 완료! [Flutter]. 02. 에디터 준비 (tistory.com) [Flutter]. 02. 에디터 준비 앞에서 Flutter를 설치하고, 개발 중 테스트 해 보기 위한 Android 관련 설정까지 마쳤습니다. https:/

learn-and-give.tistory.com

https://codingapple.com/unit/flutter-install-on-windows-and-mac/

 

Flutter 설치와 개발환경 셋팅 2025 (윈도우 / 맥)

0:00 플러터 개발환경 셋팅 7:30 플러터 프로젝트 생성은 플러터로 앱 개발을 하고 싶다면  - Windows 10 이상 (64bit) 또는 MacOS 11버전 이상 - 램 8GB 이상 - 하드용량 최소 15GB 정도 필요합니다. 아니면

codingapple.com

이런 글들을 참고해서 환경을 만들어 줬다. 설치가 생각했던 것 보다 쉽지 않았다. 특히 SDK는 다운로드를 직접 받아서 경로를 지정해 줘야 한다. 아니면 git을 이용해야 하는데 window에서 git을 안 써서 하기가 어려웠다. (flutter의 SDK는 안드로이드 스튜디오에서도 이용을 한다. 다들 안드로이드 스튜디오를 설치하라고 하는데, 컴퓨터에서는 window로만 테스트를 한다면 굳이 설치는 필요가 없을 거 같다. 다만 안드로이드 스튜디오를 설치하지 않으면 Android SDK가 없기 때문에 apk를 추출할 수 없을 것이다.) 특히 window환경에서 하면 환경 변수 문제인지 terminal에서 명령어를 인식 못하는 경우가 너무 많았다. 

웹 정보 불러오기

사실 UI를 만드는 건 요즘 인공지능도 잘 되어 있기 때문에 그렇게 오래걸리지 않는다. 그런데 데이터를 가지고 오는 게 문제다. 학교 사이트에서 식단정보를 가지고 와야 하는데, API를 제공하는 게 아닌 거 같아서 크롤링 방식으로 데이터를 가지고 올려고 한다. flutter에서 웹 크롤링을 만드는 코드를 만든 뒤 chrome으로 테스트를 하면 일단 크롤링 자체가 안 되는 문제가 생긴다. chrome으로 테스트를 하면 flutter web을 이용하는데 이게 javascript로 작동하는거 같다. 이렇게 작동하면 http 주소에서 그냥 데이터를 가지고 올 수가 없는 것으로 보인다. 그래서 테스트 할 때는 꼭 window와 같은 웹 사이트가 아닌 환경으로 해야 한다.

(이때 만약에 window 환경에서 안 되면 flutter doctor로 확인을 해봐야 할 거 같다. 그래서 VScode말고 Studio를 설치를 해야할 수도 있고, 안드로이드 license를 동의해야 할 수도 있다.)

 

그래서 안드로이드 환경이나 다른 환경에서 테스트를 하면 웹 크롤링이 가능은 한다.(이 때 안드로이드에서 인터넷 접속이 가능하도록 해야한다.) 그러나 문제는 flutter 자체가 웹 크롤링을 하기에 좋은 환경이 아닌 거 같다. querySelector를 이용해야 하는 것처럼 보이는데  Xpath같은 것도 이용하지 못하는 제약이 좀 있는 거 같다. 

 

다시 이에 대한 해결책으로 백앤드 서버를 열어서 이 서버에서 API를 제공해서 flutter에서는 출력만 하는 것이다. python으로 웹 크롤링을 해본 경험이 있어서 python으로 해볼려고 생각 중이다. fastapi나 flask를 이용해서 웹을 구현하고 uvicorn을 이용해서 요청을 받으면 render나 grok에서 작동되고 있는 서버에서 적절한 API를 제공하면 된다.

https://velog.io/@crosstar1228/BackendFastAPI-%EC%9E%85%EB%AC%B8-1-Uvicorn-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%9B%B9-%EC%84%9C%EB%B2%84-%EA%B5%AC%ED%98%84

 

[Backend]FastAPI 입문 1 : Uvicorn 이해하기, 간단한 웹 서버 구현

python web frameworkAPI를 만들 수 있고, python 3.6 버전 이상에서 적용 가능함데이터 타입을 엔드포인트로 명시하지 않아도 된다(알아서 알맞게 바꾸어 준다)Uvicorn ASGI Server 를 사용한다Asynchronous Server G

velog.io

https://debug.tistory.com/235#google_vignette

 

[AWS] AWS로 Fast API 배포/ Python/ Uvicorn/ 백그라운드 실행/ 주식 데이터/ 주식 라이브러리/ FinanceDataRead

패키지 설치Python, FastAPI, Uvicorn 설치$ sudo apt-get install python3-pip$ sudo apt-get pip3 install fastapi$ sudo apt-get pip3 install uvicorn데이터 유효성 검사 및 설정 관리pip install pydantic.env 파일 관리pip install python-dote

debug.tistory.com

 

'공학' 카테고리의 다른 글

대학 식단 앱 개발-3  (0) 2026.01.06
대학 식단 앱 개발-2  (0) 2025.12.21
홀로그래피 오류 정정  (0) 2023.11.26
[백준] 27512번 증명  (0) 2023.10.28