코딩 & 과학 & 교육
Jetson은 NVMe 규격의 SSD를 장착하여 추가 디스크를 사용할 수 있습니다. 여기서는 비좁고 읽기/쓰기 횟수가 비교적 제한적인 SD 카드대신 사용하기 편한 SSD를 아예 부팅디스크로 만드는 과정을 소개합니다. SSD 구매시 유의사항 SATA나 그 외 다른 규격의 SSD를 대충 생긴게 비슷해서 잘못 구매하는 경우가 있습니다. Jetson이 지원하는 SSD 슬롯은 MVMe M.2만 지원합니다. 보드나라의 기사 NVMe M.2 SSD 알고 구입하자 NVMe M.2 SSD 4종 비교를 참고하여 NVMe M.2 규격의 특징을 미리 살펴보시는 것이 도움이 될 것입니다. SSD 장착 제품마다 장착위치가 다릅니다. NVIDIA Jetson 사용자가이드페이지에서 해당하는 모델의 사용자 가이드를 통해 M.2, Ke..
Jetson 초기 설정을 마친 뒤에 VSCode(Visual Studio Cdoe)를 사용하여 원격개발을 시작합니다. VSCode는 다양한 환경에서 다양한 언어로 개발할 수 있는 소스코드에디터입니다. VSCode 설치 VSCode 공식 홈페이지에서 설치 프로그램을 내려받아 설치합니다. 별다른 설정도 없고 설치가 끝나면 자동으로 실행합니다. 원격 개발 확장 설치 VSCode의 확장인 Remote Development은 WSL 연결, SSH연결, Docker 연결 등을 지원하는 원격 개발 도구입니다. VSCode를 실행한 뒤 확장 아이콘이나 단축키Ctrl+Shift+X를 누르면 열면 마켓플레이스에서 확장을 검색할 수 있습니다. 이곳에서 Remote Development을 검색해서 나오는 확장 중 Micros..
CSS의 @media속성인 prefers-color-scheme을 소개하고 CSS의 변수를 활용하여 색상표를 만드는 방법을 알아봅니다. 추가 정보가 필요하다면 모질라재단의 prefers-color-scheme 속성에 대한 설명을 참고하세요. 컴퓨터나 스마트폰을 사용할 때 다른 앱은 어두운 테마를 사용하는데 웹페이지가 밝거나 하면 번갈아서 볼 때 눈이 피로해질겁니다. 웹페이지도 다른 앱들과 같은 테마를 사용하고자 할 때 쓸 수 있는 방법이 미디어 속성 prefers-color-scheme 입니다. 라이트 / 다크 모드의 기준 윈도우 11의 경우에는 개인설정 > 색 항목에서 모드를 변경할 수 있습니다. 안드로이드는 기종마다 차이가 있지만 일단은 설정 메뉴 어딘가에서 변경할 수 있는 모양입니다. 기본적인 사용..
엔비디아(NVIDIA)의 Jetson 시리즈는 인공지능 추론과 학습을 수행하는 싱글보드 컴퓨터입니다. 제가 사용하는 Jetson Xavier NX™의 경우에는 384개의 쿠다코어와 48개의 텐서 코어를 가진 GPU, 6코어를 가진 ARM CPU를 탑재하고 있습니다. 고성능 임베디드/엣지 컴퓨팅에 충분히 활용할 수 있습니다. 사진은 NVIDIA® Jetson Xavier NX™ 개발자 키트입니다(사진 출처: nvidia.com). 개발자용 보드의 경우 무선랜을 지원하므로 쉽게 설치해서 사용할 수 있습니다. 우선 개발에 필요하지만 박스에 포함되어 있지 않은 아래 장비를 챙겨야 합니다. 마이크로 SD카드를 읽고 쓸 수 있는 노트북이나 리더기를 장착한 PC 유무선 입력장치: USB포트를 사용하는 키보드와 마우스..
파이썬 패키지를 만들다보면 직접 새로운 변수형이나 객체형을 만드는 경우가 있습니다. 사용자가 type()을 사용해서 타입체크를 하거나 소스코드의 매개변수의 형태, 출력 결과 형태를 Sphinx가 읽어서 해석하는 경우에의도했던 것과 달리 처럼 의도와는 다른 결과를 내놓습니다. 이를 해결하는 트릭을 소개합니다. my_package/ ├─ __init__.py └─ type/ ├─ __init__.py └─ _image.py my_package/type/__image.py class Image: def __init__(self, arg): pass my_package/type/__init__.py from ._image import Image __all__ = ["Image"] my_package/__init..
스핑크스(Sphinx)를 통해 만든 패키지의 레퍼런스 페이지를 만듭니다. 제가 제작하는 패키지 설명서는 튜토리얼과 레퍼런스 페이지를 분리하여 작업합니다. 튜토리얼 페이지는 패키지를 처음 접하는 사람들을 위해 작성하고, 레퍼런스 페이지는 패키지의 구조를 따라 문서를 구성하여 어느정도 패키지에 익숙한 사람들이 보는 용도로 작성합니다. 레퍼런스 페이지를 작성하는데 큰 수고를 들이지 않으려면 소스코드에 문서화문자열(docstring)을 잘 남겨두는것이 중요합니다. 관련글 Python 패키지 개발일지 05: 주석을 이용한 문서화 Python 패키지 개발일지 06: 스핑크스를 사용한 패키지 문서화 Python 패키지 개발일지 07: 스핑크스 개인화 Python 패키지 개발일지 08: 스핑크스 & 깃허브 페이지 (중..
패키지를 제작하다 보면 미묘하게 신경쓰이는데 이미 만들어놓은 구조 때문에 고치기가 난감한 문제들이 있습니다. 이대로 업데이트가 쌓이다 보면 조금 신경쓰이는 문제가 계속 남아 점점 기술부채가 증가하게 됩니다. 여기서는 패키지를 갈아엎게 만들었던 문제와 그 해결법을 다룹니다. 버전 규칙 기존 다른 패키지를 작업할 때는 버전 개념을 잘 몰라 업데이트 할 때마다 계속 숫자를 올리기만 했는데요. 이 때문에 업데이트의 규모와 성격을 알 수 없어서 관리하기가 복잡했던 경험이 있습니다. 현재 만들고 있는 AutoWinPy는 파이썬의 버전규칙과 동일한 세 구역으로 구분한 버전 규칙을 따르고 있습니다. 이 방식은 v1.6.32와 같은 형태를 가집니다. 세 번째 자리(예시의 32): 버그 수정 업데이트를 의미합니다. 두 번..
앞에서는 최소한의 설정으로 그럭저럭 깃허브 패키지 저장소와 스핑크스(Sphinx)를 연동하고 깃허브 페이지에 등록했습니다. 이번에는 배치파일 변경, 스핑크스의 깃허브 페이지 확장, 테마를 다룹니다. 관련글 Python 패키지 개발일지 07: 스핑크스 개인화 make.bat 변경 기존 make.bat을 백업하고 새로운 파일을 만듭니다. 이 배치파일은 페이지를 만든 후 자동으로 ./docs/html/ 안에 들어있는 파일을 ./docs/로 옮겨줍니다. @Echo Off set SPHINXBUILD=sphinx-build set SOURCEDIR=sphinx_source set BUILDDIR=docs %SPHINXBUILD% -M html %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%..
스핑크스(Sphinx)를 사용해 본격적으로 문서를 만들기 전에 만들어둔 깃허브(GitHub) 저장소와 스핑크스를 연동하는 작업을 하도록 하겠습니다. 이 작업은 반복 입력을 효과적으로 줄여줍니다. 관련 글 Python 패키지 개발일지 02: 깃허브에 패키지 올리기 Python 패키지 개발일지 03: PyPI에 패키지 올리기 Python 패키지 개발일지 06: 스핑크스를 사용한 패키지 문서화 readme.md 연결 index.rst와 readme.md를 연결하기 위해 m2r 패키지를 사용합니다. 명령창에 pip install m2r(아나콘다의 경우 conda install -c conda-forge m2r)를 입력하여 m2r을 설치한 후, conf.py를 열어 아래 내용으로 수정합니다. extensions ..
End of content
No more pages to load