모듈성
- 큰 프로그램을 작고 독립적인 부분으로 나누는 것을 의미
응집도
- 모듈 구성 요소가 목적을 달성하기 위해 관련되어 있는 정도
결합도
- 모듈 간 상호 의존성의 정도
지향점
- 높은 응집도(모듈 내 교류)와 느슨한 결합도(모듈 끼린 덜 교류)를 가진 소프트웨어를 지향
테스팅(테스트), 문서화
버저닝
- CalVer (Calendar Versioning) : 날짜 기반 시스템
- SemVer (Semantic Versioning) : 주 번호, 부 번호, 패치 번호
- HashVer (Hash Versioning) : 해시 알고리즘을 사용
Poetry
- pip의 문제점을 해결
쉘 커맨드
- man : 메뉴얼 문서 보기 (:q)
- mkdir : 폴더 생성
- ls : 폴더의 파일 확인 (-a, -l, -h)
- pwd : 절대 경로 보기
- cd : 폴더 이동
- echo : 터미널에 텍스트 출력, `쉘 커맨드` 입력시 커맨드 결과 출력
- cp : 파일 또는 폴더 복사 (-r, -f)
- vi : vim 편집기 (뭔가 많음)
- bash : 쉘 스크립트 실행
- sudo : 관리자 권한으로 실행
- mv : 파일, 폴더 이동, 이름 바꾸기
- cat : 파일 내용 출력, CONCAT 가능
- clear : 터미널 깨끗하게
- history : 최근 입력한 쉘 커맨드 출력
- find : 파일 및 디렉토리 검색
- export : 환경 변수 설정, 매번 저장하고 싶다면 .bashrc, .zshrc
- alias : 별칭 설정
- tree : 폴더 하위 구조를 계층적을 표현
- head, tail : 파일의 앞/뒤 n행 출력
- sort : 행 단위 정렬
- uniq : 연속인 중복된 행의 중복 제거
- grep : 파일에 주어진 패턴 목록과 매칭되는 라인 검색
- cut : 파일에서 특정 필드 추출
- ps : 실행중인 프로세스 출력
- curl : Request를 테스트할 수 있는 명령어
- df : 디스크 용량 확인 (-h)
- scp : SSH을 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어 (-r, -p, -i)
- nohup : 터미널 종료 후에도 작업이 유지하도록 실행
- chmod : 파일의 권한을 변경 (r=4, w=2, x=1)
Redirection & Pipe
- 표준 스트림(Stream) : stdin, stdout, stderr
- Redirection : 출력(stdout)을 다른 파일이나 스트림으로 전달 (> : 덮어쓰기(Overwrite), >> : 추가하기(Append))
- Pipe : 출력(stdout)을 다른 프로그램의 입력으로 사용
Docker
- Docker Image : 컨테이너를 실행할 때 사용할 수 있는 템플릿, Read Only
- Docker Container : Docker Image를 활용해 실행된 인스턴스, Write 가능
- docker pull "이미지 이름 : 태그" : 이미지 다운
- docker images : 다운받은 이미지 확인
- docker run "이미지 이름 : 태그" : 이미지 기반으로 Docker Container 만들고 실행
- docker ps : 실행한 컨테이너 확인 (-a로 작동을 멈춘 컨테이너도 확인)
- docker exec -it "컨테이너 이름(혹은 ID)" /bin/bash : 실행 확인을 위해 컨테이너 진입
- docker stop "컨테이너 이름(혹은 ID)" : 실행중인 컨테이너 중지
- docker rm "컨테이너 이름(혹은 ID) " : 멈춘 컨테이너 삭제 (-f로 실행중인 컨테이너도 삭제)
Dockerfile
- FROM "이미지 이름 : 태그" : 베이스 이미지 지정
- COPY "로컬 디렉토리" "컨테이너 내 디렉토리" : 컨테이너로 복사
- WORKDIR "컨테이너 내 디렉토리" : 이후 명령어를 실행할 컨테이너 경로 지정
- ENV "환경변수 이름 = 값" : 환경변수 지정 (통상 PYTHONPATH, PYTHONUNBUFFERED 지정)
- RUN "실행할 리눅스 명령어" : 컨테이너 내에서 리눅스 명령어 실행
- CMD ["실행할 명령어", "인자", ...] : 컨테이너를 만들 때 실행할 명령어
- docker build -t <빌드할 이미지 이름 : 태그 이름> "Dockerfile이 위치한 경로" : 이미지 생성(빌드)
Dockerhub
- docker login : CLI에 연동
- docker tag "기존 이미지 : 태그" "새 이미지 이름 : 태그" : Tag 설정
- docker push "이미지 이름 : 태그"
Streamlit
- pip3 install streamlit
- (CLI) streamlit run streamlit-basic.py
- https://docs.streamlit.io/libarary/api-reference
- https://share.strealit.io/daniellewisdl/streamlit-cheat-sheet/app.py
- Session State : Global Variable처럼 서로 공유할 수 있는 변수
- @st.cache : 데이터를 매번 다시 읽지 않고 캐싱
'부스트캠프 AI Tech' 카테고리의 다른 글
재활용 품목 분류를 위한 Object Detection 트러블 슈팅 (0) | 2024.01.07 |
---|---|
[WEEK 9-11] Object Det (1) | 2024.01.03 |
GitHub 제대로 쓰기 (0) | 2023.12.14 |
[WEEK 6-7] CV 기초 프로젝트 (0) | 2023.12.11 |
[WEEK 4-5] CV 이론 (1) | 2023.11.30 |