본문 바로가기

전체 글338

[Typer] Python으로 CLI App 만들기 Typer는 FastAPI를 만든 곳에서 만든 CLI app을 만들수 있도록 도와주는 라이브러리입니다. FastAPI도 사용성이 너무 좋았었는데, Typer도 역시 너무 맘에 들어서 이렇게 소개를 드립니다. Installation 먼저 필요한 패키지를 설치합니다. $ pip install "typer[all]" Rich라는 패키지도 설치가 되는 데 이것도 아주 재밌는 패키지라서 app 만들 때 종종 사용하려고 합니다. ㅎㅎ Create a First Example 간단히 사용 예제를 보여드릴게요. import typer def main(name: str): print(f"Hello {name}") if __name__ == "__main__": typer.run(main) argparse 같은 내장 패키.. 2024. 3. 30.
[Python] PyPI에 패키지 배포하기 이번 포스팅에서는 직접 만든 패키지를 PyPI에 배포하는 방법에 대해 살펴보겠습니다. 여기서 소개드린 방법 외로도 다양하게 가능하지만, 좀 더 쉽고 간단하게 하실 수 있도록 한 가지 방법만 소개시켜드리는 것이니 유일한 방법으로 오해하지 않으시길 바랍니다. Create Project 먼저, 배포할 패키지 내용을 작성해 보겠습니다. 예제로 단순하게 인사말을 출력하는 패키지를 만들어 볼게요. root/ └── src/ └── hpractice/ ├── __init__.py └── main.py 나중에 프로젝트가 확장될 것을 고려하여 미리 이런 구조를 잡았습니다. 간단한 프로젝트라면 src 폴더 하위에 코드를 넣어도 되지만, 나중에 확장되어 유닛테스트 등이 생길 것을 고려하여 미리 폴더를 한 겹 더 감쌌습니다... 2024. 3. 16.
[Next.js] Layout으로 공통 화면 구성하기 Web app을 개발하다보면 네비게이션바나 footer와 같이 공통적으로 사용할 컴포넌트가 필요한 경우가 자주 발생합니다. 이것을 매번 일일이 해주려면 여간 귀찮은 일이 아니죠. Next.js에서는 layout이라는 기능으로 이것을 지원하고 있습니다. Create Project create-next-app을 사용해서 프로젝트를 생성합니다. 그리고 기본 페이지 구성을 위해 다음과 같이 넣어줍니다. // app/page.tsx export default function Home() { return ( Home ); } // app/menu/[id]/page.tsx export default function Menu({ params }: { params: { id: string } }) { return ( M.. 2024. 2. 17.
[Next.js] Routing using App Router 이번에는 next.js의 routing에 대해 소개를 해 드리려고 합니다. 공식 페이지를 보면 2가지 방식의 routing을 소개하고 있습니다. 이전에 사용되던 pages router보다 좀 더 편리하고 직관적으로 사용할 수 있어서 app router가 좀 더 맘에 들더라고요. create-next-app tool을 사용하여 프로젝트를 생성할 때, 이 기능 사용 여부를 설정할 수 있어요. 무려 recommended이죠? 😄 Page Files 이 방식의 핵심은 바로 page 파일입니다. 다시 말해, page 파일이 존재하는 경로가 바로 routing 경로가 됩니다. app 폴더 아래에 blog 폴더를 생성 후, page.tsx 파일을 만들어 봅니다. // app/blog/page.tsx export de.. 2024. 2. 4.
[Tauri] Getting Started with Next.js 데스크톱 앱을 next.js로 만들어 볼까 하는 데, Tauri도 어느정도 더 발전했을 것 같아서 시도를 해보았습니다. ^^ 우선 기본적인 프로젝트 생성 방법을 살펴보겠습니다. 기존 포스팅들도 있고 하니 기본적인 개발환경 구성은 되어 있다고 생각하겠습니다. ^^;; 제가 사용한 rustc 버전은 1.75.0입니다. Create Frontend Project 먼저, frontend로 사용할 Next.js 프로젝트를 생성해 줍니다. $ npx create-next-app@latest --use-npm 원하는 정보를 입력해 줍니다. Configure Frontend 생성된 폴더 내에서 tsconfig.json 파일을 찾아 다음과 같이 설정을 추가해 줍니다. "exclude": [ "node_modules", .. 2024. 1. 25.
[GCP] Cloud Functions with YouTube Data API 이번 포스팅에서는 Google Cloud를 사용하여 serverless 환경을 구축해 보도록 하겠습니다. Cloud Functions을 통해 요청을 처리하도록 하고, 예제로 YouTube Data API를 사용해 보겠습니다. 사전 준비로 Google Cloud에 회원 가입은 되어 있어야 하고, 계정도 billing 정보 등록이 되어 있어야 합니다. Create Project 먼저 프로젝트를 생성해 보겠습니다. 메인 화면에서 CREATE OR SELECT A PROJECT 버튼을 눌러 줍니다. 프로젝트 이름을 입력한 후, CREATE 버튼을 눌러 줍니다. 잠시 기다리면 프로젝트 생성이 완료 됩니다. 완료 후, 생성된 프로젝트를 선택해 줍니다. 이제 프로젝트 준비는 끝났습니다. Enable YouTube D.. 2023. 11. 16.
[Flutter] FVM (Flutter Version Manager) 개인적으로는 취미로만 사용 중이라 필요성을 못느꼈지만, flutter에도 version manager가 존재하더라고요. 간단하게 사용법만 알아보도록 할게요. ^^ Install MAC에서는 brew를 사용하여 간단히 설치할 수 있습니다. $ brew tap leoafarias/fvm $ brew install fvm Windows에서는 choco를 사용하면 됩니다. $ choco install fvm 설치 후 다음의 명령어로 확인해 볼 수 있습니다. $ fvm --version Show Release Versions 다음의 명령어로 설치 가능한 버전들을 확인할 수 있습니다. $ fvm releases Install Specific Flutter Version 원하는 버전을 선택했다면 다음 명령어로 설치를.. 2023. 9. 17.
[FastAPI] Getting Started 최근 가벼운 서버를 구축할 필요가 생겨 사용하는 김에 정리를 해봅니다. 배우기 쉽고 빠른 성능을 보인다고 하니 가볍게 사용할 수 있고, Python 기반이라 금방 익힐 수 있는 것 같아요. Install Module 먼저, 필요한 모듈들을 설치해 줍니다. $ pip install fastapi "uvicorn[standard]" Implement Server 다음으로, server application을 구현합니다. # main.py from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} Root("/") 경로로 요청이 오면 "Hello World"를 반환해 줍니다.. 2023. 9. 13.
[Next.js] Getting Started with VSCode 이번에는 Next.js의 개발 환경 설정을 알아보겠습니다. Create Project npx를 사용하여 최신 버전으로 프로젝트를 생성하겠습니다. $ npx create-next-app@latest --ts example Typescript를 사용하기 위하여 --ts옵션을 주었고, 저는 프로젝트 이름을 example로 했는데 이부분에 원하는 이름을 적어 주면 됩니다. 현재 (23/09/08) 기준으로 최신 버전은 v13.4.19 네요. 몇 가지 옵션을 설정해주시면 프로젝트가 생성됩니다. 참고하셔서 원하는 옵션을 선택하시면 되요. Install Extension for VSCode 먼저 linting 도구인 ESLint를 설치해 줍니다. 기본적으로 설정은 프로젝트 생성 시 되어 있으므로 변경이 필요하시면 수.. 2023. 9. 8.