# [Blog] Python 외주 업무 AS 후기

Seungrok Yoon (Lethe)·2023년 6월 12일
0

다이어리

목록 보기
1/5

이 글은 아직 작성 중입니다

2020년 여름, 내게 개발자가 되기로 한 가장 큰 계기를 만들어 준 외주 프로젝트의 AS 요청업무가 왔다.

당시 막학기를 보내며 개발자가 되고 싶어 방황하던 나에게, 간단하지만 프로그래밍이 없다면 힘든 요청이, 그리고 아직 프로그래밍 초보인 나도 할 수 있을 것 같은 난이도의 외주 업무가 딱 떨어졌으니…! 전혀 고민할 것 없이 바로 할 수 있다고 외주 요청을 수락해버렸다.

물론 개발된 소프트웨어를 납품하기까지 많은 우여곡절이 많았었는데, 다행히도 3년 동안 별 문제 없이 소프트웨어가 잘 동작을 했다고 해서 안심하고 있었다.

프로그램의 3년은 정말 긴 시간인 것 같다. 하루가 멀다하고 새로운 라이브러리, 기술들이 나오기 때문에 더 시간의 흐름이 체감이 된다.

바로 시작해보도록 하자.

1. 파이썬 가상환경 설정

너무 오랜만에 파이썬을 사용해보기에, Vs code 에 환경설정부터 다시 해야했다.

[Python] 가상환경 생성, 활성화, 비활성화, 삭제 방법(venv 활용)

[Python] 가상환경의 필요성

python3 -m venv venv
source 가상환경이름/bin/activate
sudo rm -rf 가상환경 이름
/* deactivate 를 하면 활성화되어 있는 가상환경이 비활성화가 됩니다람쥐
가상환경을 삭제하고 싶다면, 

윈도우에서는 

*/

환경별 인터프리터를 세팅. 왜냐면 파이썬은 인터프리터별로 패키지를 공유하기 때문! 그래서 가상으로 환경을 격리시켜서(분리해서) 패키지를 따로따로 관리할 수 있도록 하는 것.

Vscode에서 프론트엔드 웹 개발을 할 때는, 패키지매니저를 통해 편하게 패키지를 관리했었는데, 파이썬은 가상환경으로 패키지를 관리해서 굉장히 신선했다.

스크린샷 2023-06-10 오후 11.14.52.png

스크린샷 2023-06-10 오후 11.14.34.png

가상환경이 세팅완료된 모습

Untitled

가상환경이 세팅이 되었다면 이렇게 가상환경 디렉토리가 workspace 디레기토리 내부에 생긴 것을 확인할 수 있다.

가상 환경 디렉토리의 내부는 아래와 같다.

Untitled

venv 파일은 .gitignore 에 포함시켜야하는가?

venv 디렉토리는 내 기준에서 따지고보면 node_modules에 해당하는데, 이 파일들이 깃헙에 모두 올라가면 용량적으로 좋을 일이 없을 듯 하다.

그래서 검색을 해보았다.

requirements.txt 파일을 새로 만들어야 한다고 한다. 마치 yarn.lock 파일 같은 패키지 의존성 파일인가보다.

pip intall -r requirements.txt

문제발생! venv ⇒ virtualenv 로 가상환경 라이브러리 변경

venv는 파이썬 표준 라이브러리기에 별도 설치가 필요는 없지만, 단점이 있다.

바로 파이썬 버전을 달리해서 가상환경을 만들 수 없다는 이야기.

virtualenv

이 단점은 PyQt5 때문에 도드라졌다. PyQt5는 Python 3.9 버전까지만 지원이 되는 라이브러린데, 지금 설치되어 있는 파이썬 버전은 3.11버전이었다. 그래서 나중에 PySide6를 사용하기로 결정하고, 파이썬 버전을 3.9로 하여 가상환경을 설정하기로 했다.

pip3 install virtualenv
virtualenv .venv -p -python3.9.6

python 3.9.6이 설치되어 있었기에, 이 버전을 기반으로 가상환경을 설정해 두었다.

git repository 에서 의존성 패키지들 목록을 설치하기

pip install -r requirements.txt

만약에 작업 중에 내가 requirements.txt 파일을 생성하고자 한다면

pip freeze > requirements.txt

**main’ 이란 무엇인가?**

main — Top-level code environment

Python linter

[Python] VS Code에서 Python lint 적용하기

파이썬 상속은 어떻게 하는걸까? - super()에 관하여

객체지향 프로그래밍에서 상속은 속성이다. 파이썬에서 상속은 어떻게 이루어질까?

파이썬 클래스 상속(오버로딩), super().init() 의미

[PySide6]현재 Python 버전에서는 PyQt5가 지원이 안된다.

PySide6 vs PyQt5

파이썬도 설치했고, 코드도 예전과 달라진 것이 없는데, 이상하게 라이브러리 설치가 안되었다. 필요한 라이브러리를 설치하는데 라이브러리 설치에 실패하는 이유는 과연 무엇이었을까?

Untitled

pyqt5' error metadata-generation-failed`

아 뭐야 M1 칩 맥북과는 문제가 있나보네요?

How can I run pyqt5 on my Mac with M1chip (ppc64el architecture)?

지금은 빌드를 윈도우로 해야하기 때문에 윈도우 컴퓨터로 이동했지만, 기존의 라이브러리보다 Qt6의 인터페이스를 전부 사용할 수 있는 PySide6가 더 좋아보였다. 제대로

Qt Documentation | Modules

이왕 코드 유지보수하는거 pyside6로 갈아타기로 결정했다.

pip3 install pyside6

qt for Python 6

어떻게 센서데이터가 마스터 컴퓨터로 들어오게 되는 것일까?

https://ieeexplore.ieee.org/document/1367211

https://www.quora.com/How-do-computers-receive-data-from-sensors

https://developer.toradex.com/windows-ce/knowledge-base/how-to-send-and-receive-data-over-ethernet/

https://www.quora.com/What-is-the-IP-address-192-168-0-6

pyinstaller 한 파일로 배포

나는 윈도우 프로그램으로 배포를 해야했기 때문에, 윈도우 환경에서 개발을 진행을 하는 중이다.

Pyinstaller 공식 문서를 참고하자.

Requirements — PyInstaller 5.12.0 documentation

pyinstaller --onefile --noconsole [파일이름] 

[Pyinstaller] exe 파일 빌드하며 짜증났던 부분 정리

git pull 이 되지 않을 때

Github 에러 해결법: Authentication failed for ~ use a personal access token instead

터미널을 git bash 로 사용하고 싶을 때.

맥 vscode 에서 bash 터미널을 사용하다가 불편함을 느껴 터미널을 git bash 로 변경하려 했다.

select default profile

터미널을 다시 열어주자.

PySide6 사용법

참고한 공식문서들

virtualenv

Requirements — PyInstaller 5.12.0 documentation

pip 대신에 pipenv를 사용해보자!!

Pipenv를 사용한 파이썬 가상 환경과 패키지 관리

[Windows] 한영 전환 쉽게 하기

맥 키보드 레이아웃에 익숙해져 있던 내게 윈도우 키 배열과 단축키는 조금 어색했다. 특히, 한영 전환 때 자꾸 Caps Lock을 눌러서 (사실 지금도 눌렀다ㅋㅋㅋㅋ). 그 대안으로 shift space 로 변경하여 사용하려 한다.

설정 언어

옵션

키보드 레이아웃 조절

[Windows] 이모지 입력하기 단축키

간단하다. window + 마침표!

profile
안녕하세요 개발자 윤승록입니다. 내 성장을 가시적으로 기록하기 위해 블로그를 운영중입니다.

0개의 댓글