본문 바로가기

부스트캠프 AI Tech

[WEEK 8] AI 서비스 개발 기초

모듈성

- 큰 프로그램을 작고 독립적인 부분으로 나누는 것을 의미

응집도

- 모듈 구성 요소가 목적을 달성하기 위해 관련되어 있는 정도

결합도

- 모듈 간 상호 의존성의 정도

지향점

- 높은 응집도(모듈 내 교류)와 느슨한 결합도(모듈 끼린 덜 교류)를 가진 소프트웨어를 지향

테스팅(테스트), 문서화

 

버저닝

- 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