반응형

 

파이썬 개발 환경 구성

파이썬 개발 환경 구성

Poetry

  • Poetry : dependency management and packaging in Python

requires

  • Python 3.8+

지원 OS

  • Linux, macOS, Windows 지원

윈도우 설치 방법

  1. Poetry 설치
    1. WSL 사용하는 경우
      curl -sSL https://install.python-poetry.org | python3 -
    1. Powershell 사용하는 경우
      (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
  1. Poetry 환경 변수 등록
    1. 시스템 속성 > 환경 변수 >시스템 변수 > 아래 path 추가
      %APPDATA%\Python\Scripts 
    1. `APPDATA`가 정의되어 있지 않다면 아래 Path 추가
      C:\Users\사용자_윈도우_계정\AppData\Roaming\Python\Scripts\Python\Scripts
  1. 설치 확인
    1. 버전 확인
      >poetry --version
      Poetry (version 1.8.2)

  1. 업데이트
    1. self update
      >poetry self update
      Updating Poetry version ...
      
      Using version ^1.8.2 for poetry
      
      Updating dependencies
      Resolving dependencies... (7.9s)
      
      No dependencies to install or update
      
      Writing lock file
  1. 실습
    1. 실습할 폴더 생성 후 초기 세팅 진행
      mkdir test
      cd test
      poetry init
    1. 초기 세팅 내용
      >poetry init
      
      This command will guide you through creating your pyproject.toml config.
      
      Package name [2404_langchain]:
      Version [0.1.0]:
      Description []:
      Author [frontmulti <frontmulti@gmail.com>, n to skip]:
      License []:
      Compatible Python versions [^3.8]:
      
      Would you like to define your main dependencies interactively? (yes/no) [yes] no
      Would you like to define your development dependencies interactively? (yes/no) [yes] no
      Generated file
      
      [tool.poetry]
      name = "2404-langchain"
      version = "0.1.0"
      description = ""
      authors = ["frontmulti <frontmulti@gmail.com>"]
      readme = "README.md"
      
      [tool.poetry.dependencies]
      python = "^3.8"
      
      
      [build-system]
      requires = ["poetry-core"]
      build-backend = "poetry.core.masonry.api"
      
      
      Do you confirm generation? (yes/no) [yes]
    1. 생성 파일 확인
      1. `pyproject.toml`
      [tool.poetry]
      name = "2404-langchain"
      version = "0.1.0"
      description = ""
      authors = ["frontmulti <frontmulti@gmail.com>"]
      readme = "README.md"
      
      [tool.poetry.dependencies]
      python = "^3.8"
      
      
      [build-system]
      requires = ["poetry-core"]
      build-backend = "poetry.core.masonry.api"
      




      반응형
      반응형

      What is Interactive Rebase [Advanced Tutorial]

      https://youtu.be/JkpYvXdbnfQ

      Interactive Rebase란?

      병합하기 위한 방법 중 하나. (다른 하나는 Merge)

      • git rebase
      • git rebase -i
        • -i : interactive 옵션
      • rebase는 자동으로 작업을 해주는데 -i 옵션을 사용하면 편집이 가능하다.

      Interactive Rebase 의 종류

      • Pick
        • 대상 커밋 선택 (Default)
      • Reword
        • 커밋 메시지를 변경할 수 있다.
      • Squash
        • 이전 커밋에 병합
      • Drop
        • Rebase를 수행하고자 하는 커밋들 중에 선택한 커밋을 삭제할 수 있다.
      • Reorder
        • Pick하고자 하는 커밋의 순서를 변경할 수 있다.

      실습

      • 목표 : 여러개로 나눠져 있는 커밋을 합치고자 함.
        • 환전 기록 Page UI 및 동작 추가
        • 환전 기록 firestore CRUD 구현
        • 환율, 날짜 Item 컴포넌트 추가

      • 대상 커밋 선택 > Interactive Rebase 버튼 클릭
      • 최종적으로 합치고 싶은
        커밋 이전의 커밋을 선택하여 Interactive Base 버튼을 선택해야 함.
        '환전 기록 Page UI 및 동작 추가'에 이후 커밋들을 squash하고 싶은 경우,
        이전 커밋인 '환전 내역 Firestore에서 가져오도록 수정' 커밋 선택 후 Interactive Rebase 버튼 선택.
      • 원하는 Interactive Rebase 동작을 선택하여 수행
        • 처음 화면
        • 커밋을 합치고 싶기에 Squash 선택
        • GitKraken에서 자동으로 병합되는 마지막 커밋 메시지를 정리해 줌.(Reword)
          • 원래 커밋 메시지 (Reword 전)
          • squash and 자동 reword 후 커밋 메시지
        • 'Start Rebase' 버튼 선택

      그림은 없지만, 이후로 '환전 기록 Summary UI 및 동작 추가' 커밋을 '환전 기록 Page UI 및 동작 추가' 커밋으로 squash 한번 더 수행 함.

      • Rebase 완료 후 커밋 내역

      실습 (Advanced)

      한번에 squash 작업을 수행

      Interactive Rebase 결과물 Remote에 반영

      remote git에 이전 커밋 내용들이 들어가 있고 local에서 Interactive Rebase한 후의 결과물을 반영하고 싶은 경우

      • 이미 remote repository에 push 해버린 commit들 하나로 합치기
      • 사실 권장하는 방법은 아닌걸로 보인다.
        • Rebase 설명(git-scm.com) 중 Rebase의 위험성이라는 항목이 있고 그 내용은 아래와 같다.
        Rebase가 장점이 많은 기능이지만 단점이 없는 것은 아니니 조심해야 한다. 그 주의사항은 아래 한 문장으로 표현할 수 있다.이 지침만 지키면 Rebase를 하는 데 문제 될 게 없다. 하지만, 이 주의사항을 지키지 않으면 사람들에게 욕을 먹을 것이다.
      • Rebase는 기존의 커밋을 그대로 사용하는 것이 아니라 내용은 같지만 다른 커밋을 새로 만든다. 새 커밋을 서버에 Push 하고 동료 중 누군가가 그 커밋을 Pull 해서 작업을 한다고 하자. 그런데 그 커밋을 git rebase 로 바꿔서 Push 해버리면 동료가 다시 Push 했을 때 동료는 다시 Merge 해야 한다. 그리고 동료가 다시 Merge 한 내용을 Pull 하면 내 코드는 정말 엉망이 된다.
      • 이미 공개 저장소에 Push 한 커밋을 Rebase 하지 마라

      Remote 브랜치 Git 내역

      Local 브랜치 Git 내역 (Rebase 작업 결과)

      Local 브랜치 'Push'

      Local 브랜치는 Remote 브랜치 뒤에 있으니 Pull을 실행하여 Local 브랜치를 업데이트하라고 함.

      • Pull (fast-forward if possible)
      • Force Push
      • Cancel

      이런 경우, 'Force Push'를 통해 해당 내용을 업데이트 해줘야 하는데 주의할 점이 있음.

      블로그 내용 발췌 (https://json.postype.com/post/209499)

      블로그 내용이 오타같음.
      아무도 squash '하기 전' commit 들을 pull 하지 않았다는 가정하에 이 작업이 수행되어야 한다.
      로 적혀 있어야 할 것 같은데... (이해한게 맞는지 확인이 필요하구먼)

      'Force Push 선택' > 경고 문구 표시 (※ 정말 주의해야 함!)

      Force push is a destructive action and cannot be undone. Are you sure?

      궁금증)

      이전 커밋들 내용으로 PR을 요청한 상태인데,
      이런 경우 force push를 하고 나면 PR 내용은 어떻게 표시될까?

      → 결론은 PR도 유지되고 변경된 내용도 잘 반영되어 보인다.

      Rebase 이전 PR

      Rebase 'Force Push' 이후 PR

      반응형
      반응형

      선택적 매개변수를 가지고 있는 function을 만드는 방법을 소개합니다.

       

      기본값 함수 매개변수(default function parameter)를 사용

          값이 없거나 undefined가 전달될 경우 이름붙은 매개변수를 기본값으로 초기화할 수 있습니다.

       

      샘플 코드

      실행 결과

      반응형
      반응형

      이번 글에서는 Gitmoji를 사용하는 방법을 알아보겠습니다.

       

      Gitmoji란 git + emoji 를 합쳐서 부르는 말인데요,

      간단하게 커밋 메시지에 이모티콘을 표준화하여 사용한다라고 생각하시면 됩니다.

       

      개발자에 따라 gitmoji 또는 gitEmoji라고 사용하고 있으나 뜻은 같으니 참고해주세요.

       

      gitmoji는 이런 emoji를 git에서 사용합니다.

      이모지 (Emoji)
      이모지는 일본에서 개발된 전자 처리 그림문자 및 그 기술을 말한다.

       

      윈도우에서 이모지 사용하기라는 글이 있으니 궁금하신 분은 읽어주세요. 😀

      frontmulti.tistory.com/59

       

      [이모지] 윈도우 10에서 이모티콘(이모지 Emoji)을 사용해 보자

      (。・∀・)ノ゙ 윈도우 10에서 이모티콘을 사용하는 방법을 소개하겠습니다.😁 예전 윈도우에서는 ㅁ(자음) + '한자' 키를 이용해서 특수기호들을 사용했었는데요. 윈도우 10에서는 이모티콘(이

      frontmulti.tistory.com

       

      우선 Gitmoji를 사용하는 장점에 대해 얘기드리겠습니다.

      • 커밋 로그가 깔끔해진다
        • Emoji만 봐도 어떤 내용인지 한 번에 알 수 있게 됩니다.
        • 🐛 commit message
        • 위의 메시지를 보고 무엇이 떠오르시나요?
      • 커밋 하나 = 기능 하나
        • 커밋을 남길 때 emoji에 해당하는 내용을 담기 위해 정리된 코드를 하나의 커밋에 남기게 됩니다.
        • 보통 커밋을 남길 때 의식하지 않는다면 A기능, B기능, 버그 수정, 문서 수정 등을 의식의 흐름대로 작성하다 하나의 커밋에 남기게 될 때가 있습니다. 
        • 이렇게 되면, 커밋 메시지도 매우 길어지죠.  'A기능, B기능, 버그 수정, 문서 수정 반영' 이런 식으로요.
        • 그런데 emoji를 하나만 넣을 수 있다면 의식적으로 하나의 작업에 하나의 커밋을 남길 수밖에 없게 됩니다.

      결국 Gitmoji를 사용하면 커밋 로그가 깔끔해지는 효과를 볼 수 있습니다.

       

       

      이제 Gitmoji를 사용하는 방법을 설명하겠습니다.

      <emoji> commit message

      이렇게 커밋 메시지를 남기면 됩니다. 

      <emoji> commit message
      <emoji2> commit message

      하나의 커밋에 여러 기능을 같이 넣은 경우에는 위와 같이 여러줄을 작성하면 됩니다.

      참 쉽죠?

       

      gitmoji를 적용하면 아래와 같이 직관적으로 커밋 내역을 확인할 수 있습니다.

      [gitmoji 사용 예] https://github.com/carloscuesta/gitmoji-cli 

       

      여기서 실무에서 gitmoji를 사용할 때 주의해야할 점이 있습니다.

      그건 바로 약속인데요.

       

      gitmoji를 사용할 때 어느 emoji가 어떤 의미를 나타내는지에 대한 약속을 하고 프로젝트를 진행해야 합니다.

      예를 들어,

      • A는 🐛: 버그 수정
      • B는 🐛: 불필요한 코드 삭제

      위와 같이 서로 다른 의미로 커밋메시지를 남기면 혼란이 오겠죠?

      그래서 팀원들과 emoji가 어떤 의미를 나타내는지에 대해 공유하고 적용해야 합니다.

       

      그에 대한 방법 몇가지를 소개해드리겠습니다.

      원하시는 방법을 사용해보세요.

       

       

      1. 크롬 확장앱 사용

       

      GitEmoji- emoji for git commit message 

       

      위의 크롬 확장앱을 설치하시면 아래 화면과 같이 필요한 GitEmoji를 검색하고

      해당 Emoji를 클릭하면 복사가 되어 편하게 사용하실 수 있습니다.(Link)

       

      2. 웹사이트 이용

      gitmoji 사이트를 북마크 해두고 필요할때마다 방문해서 사용하시면 됩니다.

      해당 사이트에서도 emoji를 선택하면 복사가 되어 편하게 사용하실 수 있습니다.

      이 사이트를 참고하여 구글 확장앱이 만들어진 것 같네요.

      gitmoji.dev/

       

      gitmoji

      An emoji guide for your commit messages.

      gitmoji.dev

       

      3. Markdown 문서 사용

       

      GitEmoji 내용이 있는 Markdown문서를 프로젝트 파일 내에 위치시키고

      팀원들이 보면서 사용하는 방법입니다.

      잘 정리해둔 문서가 있으니 참고하세요. (github.com/felipealvessi/GitCommitEmoji.md)

      GitCommitEmoji.md 중 일부 내용

       

      공유드린 확장앱이나 문서에 있는 대로만 사용해야 된다는 것은 아니니

      팀원들과 프로젝트 특성에 맞는 emoji를 추가해서 사용해 보는 것도 좋은 경험이 될 것 같네요.

       

      🍗 :poultry_leg: 치킨과

      🍻 :beer: 맥주 마시며

       

      즐거운 코딩 하세요~ 😊

      반응형

      '프로그래밍 > Git' 카테고리의 다른 글

      [Git] GitKraken Interactive Rebase  (0) 2021.10.18
      반응형

      윈도우 환경에서 개발을 하다보면 프로세스를 강제로 종료해야 하는 경우가 있습니다.

       

      예를 들면 서버를 8080 Port로 띄워놓고 작업하다가 예기치 못하게 IDE가 종료되어 다시 실행 후 서버를 다시 띄우려고 할 때 Port가 이미 사용되고 있다고 나타날 때가 있습니다.

       

      이런 경우에는 해당 Port를 사용하고 있는 프로세스를 찾아서 kill 해줘야 합니다.

       

      1. 아래 명령어를 통하여 찾고자하는 Port를 사용하고 있는 프로세스의 PID를 찾습니다.

      명령어 실행 결과

      위의 명령어를 실행해서 나온 결과입니다. 마지막에 보이는 숫자가 바로 PID입니다. 

       

      2. 찾은 PID로 프로세스를 kill 합니다.

      명령어 실행 결과

       

      반응형
      반응형

       

      자바스크립트의 Package Manager 중 하나인 yarn을 설치하는 법을 알아보겠습니다.

       

      또 다른 Package Manager인 npm을 사용하시려는 분은 아래 글을 참고해 주세요.

       

      https://frontmulti.tistory.com/35?category=895878

       

      NVM 설치 가이드 (윈도우)

      ※ 기존에 Node.js 가 설치되어 있다면 삭제하고 진행할 것을 권장합니다. 1. 해당 사이트에서 최신 버전의 'nvm-setup.zip' 파일을 다운로드 받는다. https://github.com/coreybutler/nvm-windows/releases 2. 다..

      frontmulti.tistory.com

       

      이번 글에서는 윈도우에서 yarn을 설치하는 방법을 알아보겠습니다.

       

      1. 윈도우 설치 파일로 설치하는 경우

       

      공식 사이트 : classic.yarnpkg.com/

      공식 사이트에 접속 후 'INSTALL YARN' 버튼을 선택합니다.

      공식 사이트에서 'INSTALL YARN' 버튼을 선택

       

      원하는 버전을 선택 후 'Download Installer' 버튼을 선택합니다.

      'Download Installer' 버튼 선택

      다운로드한 설치 파일로 설치를 진행합니다.

      설치가 완료되었으면 yarn 명령어가 동작하는지 확인해보겠습니다.

      명령 프롬프트를 열어 아래 코드를 입력합니다.

      > yarn --version

      설치된 버전이 출력된다면 정상적으로 설치가 완료된 상태입니다.

       

      2. Chocolatey로 설치하는 경우

      윈도우를 위한 패키지 매니저인 Chocolatey가 설치되어 있다면 아래 명령어를 통해 손쉽게 yarn을 설치할 수 있습니다.

      명령 프롬프트를 열어 아래 코드를 입력합니다.

      > choco install yarn

      'choco install yarn' 명령어 입력 화면
      관리자 권한이 아닌 경우 위 화면처럼 에러 발생

      위의 화면처럼 에러가 발생한다면 명령 프롬프트관리자 권한으로 실행 후 설치 명령어를 입력해 주세요.

      설치 완료 화면
      yarn 동작 확인 화면

       

      이렇게 윈도우에서 yarn을 설치하는 방법을 알아보았습니다.

       

      다음 글에서는 Mac에서 yarn을 설치하는 방법을 알아보겠습니다.

      반응형
      반응형

      오늘 공유드릴 내용은 '있어 보이게 코드 공유하는 방법' 입니다.

      여러분은 보통 코드를 공유할 때 어떤 방법을 쓰시나요?

       

      대부분은 글을 작성하는 곳에 있는 코드 공유 기능을 사용하실 텐데요.

      저도 티스토리에서 제공하는 '코드블럭' 기능을 사용했습니다.

      Tistory 코드블럭

       

      코드블럭 입력 화면

      console.log('share your code')

      위의 코드가 '코드블럭' 기능을 사용해서 보여지는 코드 화면입니다.

       

      전 뭔가 아쉬워서 좀 더 이쁘게 코드를 공유할 수는 없을까? 

       

      고민하다가 발견한 방법을 공유드리려고 합니다.

       

      거두절미하고 결과물부터 보여드리겠습니다!

      Carbon을 사용한 코드 공유 화면

      어떤가요? 훨씬 깔끔하고 '있어' 보이지 않나요?

       

      이제 사용방법을 설명드리겠습니다.

       

      1. Carbon 사이트를 방문한다.

      carbon.now.sh

       

      Carbon

      Carbon is the easiest way to create and share beautiful images of your source code.

      carbon.now.sh

       

      2. 공유하고자 하는 코드를 화면에 입력한다.

      Carbon 사이트 메인 화면

       

      3. 원하는 방법으로 코드를 가져와서 사용한다.

        - 저는 보통 'Copy to clipboard'로 이미지를 클립보드에 복사한 뒤 공유하고자 하는 곳에 붙여넣기해서 사용하고 있습니다.

      Copy to clipboard

      4. (Option) 자신의 취향대로 화면을 꾸민다.

        - 바탕에 사용되는 색상 변경

      바탕 색상 변경

        - 코드 내부 바탕 색상 변경

        - 프로그래밍 언어 선택

      Bash 선택
      Bash를 선택한 후 주석 표시 화면

        - 그 외의 설정에서 Presets 지정, Window, Editor, Misc 에 대한 개인 설정을 적용할 수 있습니다.

       

       

      5. (Option) 원하는 경우 해당 이미지를 다운로드 받는다.

        - 원하는 경우 이미지 파일을 브라우저에서 열거나 다운로드 받을 수 있습니다.

      이미지 파일 다운로드

       

      이제부터 있어보이게 코드를 공유할 수 있게 되었습니다!

      더 좋은 활용법을 알고 계시다면 댓글 부탁드려요.

      반응형
      반응형

      여러분은 코딩을 하다가 이런 생각해 본 적 없으신가요?

       

      하루에 몇 시간씩 코딩할까?

      가장 많이 사용하는 언어는 무엇이지?

      Editor는 어떤 걸 가장 많이 사용할까?

       

      저는 코딩하다 문득 위와 같은 궁금증이 생겼습니다.

      그러다가 WakaTime이란 서비스를 알게 되었고 그 이후로 계속 사용해오고 있습니다.

      여러분들도 저와 같은 궁금증을 느끼셨으면 사용해 보시길 권해드립니다.

       

       

      간략하게 설명드리면 사용하시는 IDE에 wakatime plugin을 설치하여 사용하게 됩니다.

       

      자세한 설치 및 사용 방법은 아래와 같습니다.

       

      1. WakaTime 사이트 방문 후 가입

      wakatime.com

      GitHub 계정과 연동도 가능합니다.

       

      WakaTime

      Open source IDE plugins for programmers.

      wakatime.com

      2. WakaTime 로그인 후 API Key를 복사

      WakaTime API Key는 [프로필] - [Settings] - [Account] : API key 항목에서 찾을 수 있습니다.

      아래 그림에 따라 API Key를 복사 해 둔 후 3번 단계를 진행해 주세요.

      WakTime 로그인 후 [프로필] - [Settings] 선택
      API Key 표시 화면

       

       

      3. 사용 중인 IDE에 WakaTime plugin 설치


      저는 VS Code를 기준으로 설명드리겠습니다.

      3-1. VS Code 실행, [File] - [Preferences] - [Extension] 선택

      [File] - [Preferences] - [Extension]

      3-2. Extensions: Marketplace에서 'wakatime' 검색 후 'Install'

      3-2. 'F1'키 입력 후 'WakaTime API Key' 입력

      3-3. 복사해 둔 API Key 입력

       

      이제 VS Code에 WakaTime Plugin 설정을 모두 마쳤습니다.

       

      참고로, WakaTime이 지원하는 IDE 목록은 아래와 같습니다. (wakatime.com/plugins)

      지원 목록

       

      4. Dashboard를 통해 다양한 정보를 확인합니다.

       

      5. 참고로 Free버전에서는 일부 제약사항이 존재합니다.

      전 Free버전으로 사용하고 있고, 개인 사용자라면 Free에서 제공하는 기능으로도 충분히 활용 가능하다고 생각합니다.

      팀 또는 프로젝트에서 활용하고 싶으신 분은 아래 가격을 참고해주세요.

       

      [Free인 경우]

      - 2주 동안의 Dashboard history 제공

      - 주간 & 일간 이메일 리포트

      - integration 제약

      - private leaderboard for 3 friends

       

       

      반응형

      + Recent posts