본문 바로가기

전체 글341

[Python] FFI with Rust 이번 포스팅에서는 Rust로 작성한 코드를 Python에서 사용하는 방법에 대해 설명하겠습니다.Install maturin/PyO3먼저, python 가상 환경을 만들고 rust로작성한 코드를 python package로 빌드할 수 있는 tool을 설치해 줍니다.$ pip install maturinCreate Project다음으로 설치한 tool을 사용하여 프로젝트를 생성합니다.다음 명령을 입력하면 PyO3를 빌드 시스템으로 하는 프로젝트를 생성합니다. $ maturin init -b pyo3Implement Library Crate이제 원하는 rust 코드를 작성합니다.use pyo3::prelude::*;use std::fs::File;use std::io::{Read};#[pyfunction]fn.. 2024. 7. 22.
[Flet] Getting Started Flet은 multi-platform application을 만들 수 있게 도와주는 프레임워크입니다.파이썬을 사용하여 flutter의 UI를 구축하도록 도와줍니다.이번 포스팅에서는 간단하게 사용하는 방법에 대해 살펴보겠습니다.Prerequisite기본적으로 flutter를 사용하기 때문에 flutter SDK가 설치되어 있어야 하며, poetry도 사용할 계획이므로 이것도 설치해 주시면 좋습니다.poetry 대신 pip를 사용해서 직접 프로젝트 구성을 하셔도 괜찮습니다.전 파이썬은 pyenv를 사용 중이고, flutter는 fvm을 사용하는 중이라 몇 가지 설정을 더 해주긴 했어요.Create Project여러 방법이 있지만, 개인적으로 선호하는 poetry를 이용하여 프로젝트를 만들어 보겠습니다.먼저,.. 2024. 7. 12.
[Mermaid] ChatGPT를 이용하여 Mermaid 작성하기 Mermaid는 markdown 문법을 이용하여 간단하고 직관적으로 다이어그램을 생성할 수 있는 오픈 소스 도구이죠.텍스트 기반이라 관리도 쉽고 협업도 용이합니다.문법이 간편하고 쉽다곤 하지만 뭔가를 또 배우고 익히는 수고가 필요했는데, 이젠 LLM의 세상이죠. ㅎㅎChatGPT, Gemini, GitHub Copilot등의 AI 서비스를 사용해서 간편하게 작성을 할 수 있게 되었습니다.Flow chart, gantt chart, pie chart, sequence diagram, class diagram, state diagram, entity-relationship diagram, data flow diagram 등 다양한 결과물을 만들어낼 수 있습니다.사용해 보기원하는 입력을 제공한 후, merma.. 2024. 6. 7.
[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.