부트캠프 1주차 정리
<한 일>
필요 프로그램 설치
Python 초급 내용 복습
1/7 화
- Python 설치
*Add Path에 체크해줌
- 설치후 실제 설치여부 확인 (*프로그래밍시에도 검증로직을 작업해야 함)
- ‘시스템 환경 변수 편집’->’환경 변수’->’Path’에 파이선 경로 추가되었는지 확인
* 경로 복붙 -> Python 폴더로 이동 가능
*구버전 설치 : download -> Windows -> 원하는 버전 설치 (예: 11, 12버전)
향후 구버전 사용할 때도 있을것
- Python 실행하기
Powershell 관리자 권한으로 실행
- Python 버전확인
- 파워셸 권한
- 권한 바꾸기 (외부에서도 파워셸 접속할 수 있도록)
- IDE 설치
IDE란 : 요리사의 도마나 칼과 같은 것. 개발을 위한 개발환경도구.
설치할 툴은 VSCode
Visual Code가 좋은 이유 : Extensions.
좌측 Extensions 메뉴 ->
python, jupyter, material icon theme 설치 (theme은 설치후 선택도 해줘야 함)
indent rainbow 설치 (python 개발시 indent에 따라 색상을 다르게 표현해줌)
기타 취향대로 설치
- 개발 전용 폰트 설치 : d2 coding
Visual studio -> File -> Preferences -> Settings -> font -> font family 맨 앞에 D2Coding ligature 추가가
font ligature -> json편집 -> false를 true 로 수정 -> ctrl +s (저장주의!!)
- 도커 설치
*Windows Pro여야 함. 버전 : 20H1이상
*MySQL도 도커 통해서 설치할것. (삭제편의, 백그라운드에서 돌아가지 않게 하기 위해)
파워셸 관리자 실행 -> wsl –install
(윈도우에서 리눅스 설치하기 위한 프로그램)
-> wsl --set-default-version 2
(기본버전을 version 2로 변경)
설치후 구글계정으로 로그인
도커 settings -> general -> wsl, settings -> resources -> wsl integration 되어있는지 확인
파워셸 실행 -> wsl -l -v
- MySQL 설치
강사님 제공 파일 다운로드
내컴퓨터 -> C드라이브 -> dev폴더 생성 -> github, mysql, python 폴더 생성 -> mysql 안에 mysql_installed, tutorial 폴더생성 -> 강사님제공 파일을 mysql_installed에 넣음
cd (폴더경로)
명령어 : docker-compose up -d # mysql 생성 및 실행
- DBeaver 설치
데이터베이스 -> 새 데이터베이스 연결 -> MySQL
test connection
* Public Key Retrieval is Not Allowed -> 설정 수정 (블로그 참고)
MySQL과 연결됨 -> 초록색 체크박스
* MySQL 중단시키려면 docker에서 일시중지 클릭
- Git 설치
https://git-scm.com/downloads/win
git bash 실행
-> git config –global user.name “내가 쓸 유저네임”
-> git config –global user.email 내가 쓸 메일
잘 등록되었는지 확인하기 -> git config –list
1/8 수
오늘할일 : Python 첫수업
- Python이란 :
- 90년대에 개발된 인터프레터 언어
- ‘가상환경’ 구축가능
- Python 가상환경 구축
**향후 프로젝트 제작시 매번 가상환경 만들기!!
vscode에서 open folder로 python폴더 열기
*vscode에서는 프로젝트 단위로만 열자!
new terminal로 터미널 열면 프로젝트 폴더에서 열림
터미널 -> py –version
-> py -3.11 -m venv .venv
(가상환경 생성 - 이름 : .venv)
아무 라이브러리 없이 python만 설치된 가상환경 만들수있음.
*아나콘다로 만들경우 여러가지가 설치된 헤비한 가상환경이 만들어짐
좌측 Explorer란에서 폴더에 가상환경 생성된 모습 볼 수 있음
삭제 : 우클릭후 쓰레기통에 버림
python폴더에 가상환경 폴더 만듬 (python-venv)
vscode에서 open folder -> python-venv
가상환경 또만들기 (python 3.12버전으로)
py -3.12 -m venv .venv
venv 안에 들어가서 작업하기 -> .\.venv\Scripts\activate
*경로는 그냥 tab 누르면 자동완성됨
여기서 py –version 하면 3.12라고 나옴
나가기 -> deactivate
< 문제 >
- 프로젝트 3개를 만들고 해당 가상환경도 구축하자
프로젝트 1
- 이름(폴더명): python-venv-3.11
프로젝트 2
- 이름(폴더명): python-venv-3.12
프로젝트 3
- 이름(폴더명): python-venv-3.13
각자 폴더 만들고 vscode에서 가상환경 생성함
python 파일 생성
예제 : Hello World! 프린트하기
실행
- 가상환경에 모듈 설치
가상환경에는 Lib -> pip 기본으로 설치되어 있음. pip 이용해서 모듈 설치.
우선 업그레이드. 가상환경 켜고 -> python -m pip install –upgrade pip
*1개월만 지나도 pip 업그레이드가 필요해지므로 그냥 매번 업그레이드하는게 좋음
이후 설치.
numpy : (가상환경 켜고!!!) pip install numpy
잘 설치되었는지 확인 : ex02.py 파일생성 -> import numpy
가상환경 켜고 설치했으면, 가상환경 밖에서 python ex02.py 했을때 오류나야함!
(*난 실수해서 가상환경 외부에서 설치함. 그래서 오류가 안났음…)
seaborn : (가상환경 켜고!!) pip install seaborn
(*이번엔 가상환경에 잘 설치함. 그럼에도 불구하고 오류가 안남! vscode 기능이 ‘개선’된것같다는 강사님의 말씀. 가상환경으로 자동적으로 연결이되었음)
- requirements.txt
requirements.txt가 있으면 자동으로 동일한 세팅의 가상환경을 만들 수 있음!
아까 넘파이랑 시본 설치한 가상환경에서 진행
pip freeze (설치된 라이브러리를 보여줌)
pip freeze > requirements.txt (pip freeze의 내용을 requirements.txt에 넣어줌)
python-venv2로 이동 (여기엔 새로운 가상환경 깔아줌)
ex01.py 만들어서 import numpy, import seaborn 넣고 오류나는지 보기
(*이번엔 제대로 오류가 났다!)
그럼 이제 requirements.txt를 복붙해옴
명령어 : pip install -r requirements.txt
이러면 자동으로 requirements에 있는 모든 라이브러리가 설치됨~
이제 ex01.py 실행하면 잘 실행됨.
- 자료구조
변수, 상수, 계수 설명
폴더명 : python-variable
pip install jupyter
파일생성 : ex02.ipynb
Select kernel -> python environments -> .venv
+code 클릭하여 코드작성
기초 변수 지정법 배움 (x = 10 등)
*변수의 이름은 잘 지정해야 한다! (name, age 등 설명적인 표현 사용)
snake_case, CamelCase 배움
변수이름은 숫자로 시작할 수 없음
예제 : 구구단
비교연산자 배움
- ==, =! : 변수에 담긴 데이터를 비교
- is : 변수 자체를 비교. id(num1)과 id(num2)가 같아야 함. ==보다 속도 빠름.
변수 : 데이터 수정 가능
상수 : 데이터 수정 불가능
<문제> Python에서 상수 선언하기
참고: 블로그
상수의 값을 지정해 주는 대신 매번 ‘함수’를 호출함으로서 문제를 피해가는 방법임.
*강사풀이 : enum 사용
변수와 상수의 공통점 : 데이터 조회는 둘 다 가능하다
- 문자열
문제 : int와 float에는 없는 string의 값은?
답 : size
*주석을 잘 달자! 자신이 짠 코드를 잘 설명할 줄 알아야 한다
1/9 목
- Python 문자열
지난시간 복습 : 데이터 슬라이싱
포매팅 (f-string, 기타)
replace
- Python 기초 자료구조
리스트/튜플/딕셔너리/집합
리스트와 튜플의 차이 : 튜플은 수정이 불가.
리스트와 딕셔너리의 차이 : 딕셔너리는 키-값 페어로 저장됨. 리스트는 위치로, 딕셔너리는 키로 값을 식별.
리스트는 size가 있음 -> 인덱싱, 슬라이싱 할 수 있음
- 리스트 안의 리스트
- 리스트 원소 추가 : append, extend
- 딕셔너리 내부 접근
- 집합 : 중복 제거됨
리스트의 중복데이터 제거를 위해, 집합 변환 -> 다시 리스트 변환 의 방법을 사용할 수 있음.
- 집합 : 합집합, 교집합, 차집합
연산기호 사용하여 집합 연산 가능
- Boolean 기호
- 제어문
<문제>
- 학생들 중 20대인 경우엔 ‘하이 20대’, 30대인 경우엔 ‘하이 30대’, 40대 이상인 경우에는 ‘안녕하세요^^’를 인쇄
강사풀이 :
(*강사 풀이가 깔끔하다! 난 항상 if문을 거꾸로 짜는게 좋다는걸 잊곤한다.)
for문, enumerate 등 배움
- for문과 else문 사용하기
for 문이 정상적으로 실행완료되어야 else가 실행됨
만약 break등을 넣어 정상완료되지 않는다면 else는 실행되지 않음
1/10 금
<문제> 가위바위보
두 명의 유저에게 ‘가위 바위 보’ 중 하나를 입력받아 가위바위보 승패를 가려주는 프로그램을 만든다다
유의점 1. 잘못된 입력시 이를 처리한다 -> 잘 처리했음
유의점 2. enum class 이용하기 (상수이므로) -> 수정하기
강사풀이 :
(*강사코멘트: while을 넣었으면 더 간단했을것, 이프엘스가 너무 복잡해서 안좋은코드임)
(*내생각: enum 클래스를 저렇게 사용할수있구나!)
- while문
<문제>
Hello
ello
llo
lo
o
이렇게 프린트되는 프로그램 짜기
(*첨에 쓸데없이 if-break를 넣는 바보짓을 함. 정신차리자!)
<문제>
원보 데이터: 정수로 이루어진 리스트(ex> [1,2,3,4,5])
만약 짝수가 있으면, 짝수있어요!
만약 짝수가 없으면, 짝수없어요!
강사칭찬코드 : contain_even 변수 없이 그냥 바로 프린트하는걸로 짠 코드
- while 코드 사용법 추천
- Error
- IndexError
이후 여러 Error 배움 (NameError, TypeError, KeyError 등)
- 예외처리 : Try ~ Except ~
- finally : 언제나 실행됨~
-> try 이후 성공적 실행시 실행되도록 하려면 else 사용
- assert : 조건이 false일때 발생하는 오류
- 오류 정의 : class 통해서 정의한 후 raise 클래스명
- 토이프로젝트 기획
나는 ‘법률상담 AI’ 프로젝트에 합류했다.
이번주 할일
- git & github 사용법 공부
-> 브렌치 & 머지 & 커밋 & VScode 연동
- 팀장님 계정으로 github의 레버지토리 생성 및 팀 초대
-> 생성된 레퍼지토리에 README.md 작성
-> README.md 내용에는 팀명, 팀원, 팀장, 그리고 프로젝트 설명