본문 바로가기
python

[pynecone] 신비의 pynecone 시작

by 야호호코코 2023. 2. 20.
반응형

 우연히 유튜브를 둘러보다가 신기한 것을 발견했다. 순수 python만으로 풀스택 개발을 쉽게 할 수 있는 프레임워크가 있다는 것. 이미 django나 flask가 있지 않냐고 하겠지만, 이 둘보다도 훨씬 간단하고, 훨씬 python 같으면서(?), 훨씬 강력하다고 생각한다. 애초에 모토가 'Build anything, faster.'이다. 프론트든 백이든 심지어 배포까지도 간단하고 빠르게 완벽하게 수행해낸다. 아직 개발중인 단계로, 공식 문서도 그렇게 많은 양은 아니다.

 

해당 주소로 들어가면 설치 방법을 볼 수 있다.

https://pynecone.io/docs/getting-started/installation

 

 

사실 굳이 설치법을 볼 필요 없는 것이, 3.7 이상의 python을 준비하고 pip install pynecone 만 콘솔에 입력하면 된다.

pip install pynecone

그 뒤에 자신의 프로젝트 디렉토리 안으로 이동해

pc init

을 입력해주면

 

pc init의 결과

 이렇게 간단한 방법으로 프로젝트의 초기 설정이 되었다. 각 폴더들을 설명하자면

 

.web 폴더

 이 폴더 안에는 build 후에 nextJS 코드로 변환된 실제 웹앱이 될 코드들이 담기는 폴더이다. 

 

assets 폴더

 이 폴더 안에는 웹앱에 쓰일 정적 파일 (이미지, 폰트, 동영상 등) 이 저장된다. python 코드로 작성할 때 정적 파일을 불러올 때 디렉토리 설정 시 assets 폴더가 최상위 폴더이므로 참고.

 아래 예시는 assets 폴더에 있는 'image.png' 파일을 불러올 때를 가정한 것이다.

pc.image(src="image.png")

 만약 assets 폴더 안의 정적 파일의 경로가 바뀐다면, 앱을 재시작 해야만 적용된다!

 

프로젝트명 폴더 (메인 프로젝트)

 이 폴더 안에는 프로젝트의 파이썬 코드 파일들이 저장된다. 공식 문서에서는 메인 프로젝트라고 부른다. 본인이 설정한 폴더의 이름과 같은 이름으로 설정되어있다. 기본 앱은 (프로젝트명).py이다. 

 

pyconfig.py

 이 파이썬 파일은 프로젝트 설정 정보가 들어있다. 기본적으로 구성은 이렇게 되어있다. 만약 app_name과 메인 프로젝트 폴더에 있는 메인 앱의 이름이 일치하지 않는다면 에러가 나니 주의. 

import pynecone as pc

config = pc.Config(
    app_name="pctest", #초기는 프로젝트명과 동일
    db_url="sqlite:///pynecone.db", 
    env=pc.Env.DEV, #초기는 개발모드, 배포는 pc.Env.PROD
)
# port 추가 가능

 

 이상 기본적인 프로젝트의 구조이고, 개발을 하려면 실행을 해봐야겠지. 실행을 하려면 콘솔 디렉토리를 프로젝트 폴더에 위치시킨 뒤

pc run

 을 입력하면 실행이 된다. 초기에 실행할 때는 로딩이 약간 걸리는 편. 파이썬 코드를 NestJS로 변환하느라 그렇다. 그리고 빌드가 정상적으로 되면 이렇게 실행 중이며 어느 주소로 호스팅 되고 있다는 문구가 뜬다.

 

pc run이 성공적으로 작동했을 경우
성공적으로 첫 웹앱을 실행시켰다.

 그리고 port 설정을 따로하지 않았다면, localhost:3000으로 접속해 결과물을 확인할 수 있다. 초기에는 pynecone의 사용을 환영하면서 메인 프로젝트의 메인 앱을 작정해보라는 문구와 함께 공식 문서로 갈 수 있는 버튼이 하나 놓여있다. 

 아직 안지도 얼마 안됐고, 알아가보는 중이지만 파이썬이 주력 언어인 사람에게는 이보다 쉬운 풀스택 프레임워크는 없을 것으로 생각된다. 나온지가 얼마 안돼서 공식 문서를 제외한 한글 문서 등이 없어서 답답해 내가 적어가는 면도 있다.

 

 

 

 

 

모든 내용은 pynecone의 공식 문서를 참조해 작성했습니다.

반응형

'python' 카테고리의 다른 글

[pynecone] component 알아보기 - 시작  (0) 2023.02.23
Python 3버전도 한글파일을 읽을 수 있다!  (4) 2019.07.21