요약
역할
- VM Farm과 로컬에 Backend.AI 개발 환경을 구축
- VSCode와 SSH를 활용하여 편리한 환경을 설정
- IDE를 이용하여 포매팅 시간을 단축
성과
시기
- 채팅 앱을 만드는 것 외에도 Backend.AI 개발 환경을 세팅하는 것도 과제에 포함되었습니다. Backend.AI를 개발하기 위해서는 여러 소프트웨어를 설치해야 했습니다. 문서화가 잘 되어있었지만, VM과 Docker 등의 환경에 익숙하지 않아 다양한 에러를 마주 했는데 인턴 동기들과 공유도 하고 Teams에 질문도 하며 해결했습니다.
- 그동안은 로컬에서만 개발을 했었는데 VM Farm과 VSCode를 SSH로 연결하여 개발하는 경험을 처음 해보았습니다. Backend.AI를 개발하기 위해서는 여러 프로세스들 (Manager, Agent, Storage proxy, Web server 등)과 Docker Container들을 실행해야 합니다. 랩탑을 사용할 경우, 배터리에 부담이 가는 수준입니다. 하지만 VM Farm을 사용하면 SSH 연결만 하면 되기 때문에 가볍게 Backend.AI를 개발할 수 있습니다. 실제로 회사 밖에서 랩탑을 충전할 수 없던 상황에서 VM Farm을 사용하여 오랫동안 개발할 수 있었습니다.
어려움 및 해결책
- 의존성 관리 도구인 pants를 활용하여 lint 및 타입 체크를 했었습니다. 그런데 pants를 실행하는 것이 오래 걸려서 lint와 타입 체크를 하는 데 시간 낭비를 했었습니다. 저는 VSCode를 제대로 활용해 보지 않아서 큰 프로젝트에서는 lint와 타입 체크를 이런식으로 하는 줄 알았습니다. 그러다 우연히 CTO분이 공식 문서를 편집하는 Teams 스레드를 보게 되었고, VSCode IDE에서 어떻게 lint와 타입을 체크하는지 알게 되었습니다. CTO분이 작성하신 공식 문서와 참조된 Microsoft vscode python migration 공식 Readme를 참고하면서 설정했습니다. 처음에는 공식문서를 제대로 읽지 않고 설정해서 프로젝트 설정에 따른 lint와 타입 체크가 아니라 기본으로 제공하는 체크 기능을 사용했습니다. 그러자 계속 원치 않은 포매팅이 되어 불편했습니다. pyproject.toml의 설정을 사용하기 위해서는 python interpreter, PYTHONPATH, extension interpretrer, import strategy를 제대로 설정해야 했습니다. Backend.AI의 개발 공식 문서를 정독하니 제대로 설정할 수 있었습니다.
- VSCode 설정을 마치자, 코드를 수정함과 동시에 lint와 타입 체크가 되기 시작했습니다. 처음으로 IDE를 이용해 생산성을 증가시켜 본 경험이었습니다. pants를 실행시키는 시간이 정말 길었는데 포매팅 시간을 단축하여 코드를 보는 시간이 더 늘어 나니 더 효율적으로 일할 수 있었습니다. 필요한 곳에 시간을 사용하는 것도 개발자의 능력 중 하나라는 생각이 들었습니다. 앞으로도 생산성의 문제가 있다고 느껴지는 순간이 오면 그것을 먼저 해결하는 것이 가장 빠른 길이라는 생각을 가지고 행동할 것입니다.