티스토리 뷰

안드로이드

1. CloudType - MjApp 제작기

알렌보이스 2023. 4. 30. 20:08
728x90

클라우드타입은 GitHub 에 작성한 코드를 클라우드 서버에 간편하게 띄울 수 있는 PaaS 클라우드 호스팅 서비스입니다.

많이들 사용하는 언어, 플랫폼, 데이터베이스 등을 올릴 수 있습니다.

저는 FastApi와 MariaDB를 사용할 예정입니다.

한글로 문서정리도 깔끔하게 잘 되어있어서 처음 사용하는 사람도 쉽게 사용 할 수 있습니다.

 

 

클라우드타입 이용가이드

클라우드타입을 처음 사용하시나요? 아래의 가이드를 따라 클라우드타입을 사용하세요! 그럼 시작해볼까요? 😃

help.cloudtype.io

 

 

cloudtype

클라우드타입은 GitHub 에 작성한 코드를 클라우드 서버에 간편하게 띄울 수 있는 PaaS 클라우드 호스팅 서비스입니다.

www.youtube.com

위의 자료를 참고 하였는데도 모르는 경우에는 디스코드를 이용하여 질문도 할 수 있다고 합니다.

 

 

Discord - A New Way to Chat with Friends & Communities

Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.

discord.com

가장 중요한 요금 관련입니다.

큰 서비스가 아니라면 무료로 이용하기에는 문제가 없을 것 같습니다.

회원가입과 깃허브 연동 관련해서는 크게 어려운 점이 없으므로 생략합니다.

회원 가입이 완료 되었다면 새 프로젝트를 생성합니다.

프로젝트 생성 후 원하는 서비스를 선택하여 주면 되는데

저의 경우 FastApi와 MariaDB를 사용할 것이기 때문에 참고 링크를 남깁니다.

순서대로 따라하기만 해도 쉽게 할 수 있게 되어있습니다.

 

 

MariaDB

클라우드타입에서 MariaDB를 배포하고, 관리 툴을 사용하여 TCP 방식으로 접속하는 가이드입니다. 🧑🏻‍💻  본 가이드에서는 관리 툴로 MySQL Workbench를 사용했으며, 아래의 링크에서 다운로드

help.cloudtype.io

 

 

Python FastAPI 시작하기

클라우드타입에서 Python FastAPI 애플리케이션을 배포하는 방법입니다. 🧑🏻‍💻 아래의 가이드에 따라 템플릿을 통해 서비스를 배포해보세요. 시간은 3-5 분 가량 소요됩니다. 😺

help.cloudtype.io

FastApi의 경우 이미 프로젝트를 만든 것이 아니라면 자동으로 만들어주는 저장소 만들기를 이용하는 것을 추천합니다.

이제 클라우드 서버에 있는 MariaDB와 FastApi를 연결해보겠습니다.

우선 도메인을 알아야합니다. 아래 tcp/udp로 되어있는 곳의 주소들을 기록해둡니다.

로컬에서 테스트 할 때에는 svc.sel3.cloudtype.app:30341를 이용하고

서버에 배포할 때에는 mariadb:3306을 이용하게 됩니다.

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, scoped_session

user_name = "user_name"
user_pwd = "user_pwd"
db_host = "mariadb:3306"
db_name = "pokemonDB"

DATABASE = f"mysql+pymysql://{user_name}:{user_pwd}@{db_host}/{db_name}?charset=utf8"

ENGINE = create_engine(
    DATABASE,
    encoding="utf-8",
    echo=True
)

session = scoped_session(
    sessionmaker(
        autocommit=False,
        autoflush=True,
        bind=ENGINE
    )
)

Base = declarative_base()
Base.query = session.query_property()

db_host 외에는 MariaDB생성 시 만든 값을 넣어주면 됩니다.

FastApi관련 글은 이전에 올린적이 있으므로 링크로 대체합니다.

 

 

포켓몬 도감 만들기(1) : Fast Api

Fast Api 설치 pip install fastapi 터미널에 위의 명령어를 입력하면 설치가 됩니다. 추가로 Python이 없을 경우 따로 설치해야 합니다. pip install "uvicorn[standrad]" 서버 작동을 위해서 uvicorn도 설치를 합니

alanboyce.tistory.com

패스워드 정보등이 있어서 이걸 환경 변수 설정으로 해보려고는 하는데

아직 해결이 안돼서 이 부분 관련해서는 해결되면 수정하도록 하겠습니다.

이상태로 배포를 하게 되면 sqlalchemy를 찾지 못한다는 오류가 발생하게 됩니다.

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
fastapi = {extras = ["all"], version = "*"}
sqlalchemy = "*"
pymysql = "*"

[dev-packages]

[requires]
python_version = "3.10"

Pipfile에 들어가서 packages안에

sqlalchemy = "*"
pymysql = "*"

위의 내용을 추가해주세요.

$ pip install pipenv

그 다음 터밀널로 들어가서 pipenv를 설치해 줍니다

그 후 프로젝트가 있는 경로로 이동 후

$ pipenv lock

위의 내용을 입력해주세요.

그러면 Pipfile.lock의 내용이 업데이트 되었을 것입니다.

마지막으로 requirements.txt 파일안에

sqlalchemy==1.4.22
pymysql==1.0.2

이 내용을 추가해 준 뒤 배포를 하게 되면 오류가 사라집니다.

728x90

'안드로이드' 카테고리의 다른 글

Android Duplicate class found 오류 해결  (2) 2022.10.28
Compose 기초 1 : Column, Row, Box  (0) 2022.06.29
WorkManger 사용해보기 2  (0) 2022.06.07
WorkManager 사용해보기 1  (0) 2022.06.05
댓글