개인과제 리뷰
- 깃을 제대로 사용하지 못함.(공통 문제)
깃에 올릴 필요 없는 파일이 많음.(requirements.text를 제대로 이용하지 못함)
commit 내용을 잘 만들 것(나중에 포트폴리오에 그대로 다 올라갈 것들입니다)
.gitignore를 잘 사용하기 위해 toptal에 출동!
타입별 메소드(method)(전부 다 암기해야 합니다)
1. 문자열 메소드
count : 문자열 내에서 특정 문자가 몇 개나 있는지 세는 메소드
find : 문자열 내에서 특정 문자열이 처음 나오는 위치를 찾아주는 메소드
특정 문자열이 없을 경우 return -1
index: 문자열 내에서 특정 문자열이 처음 나오는 위치를 찾아주는 메소드
없을 경우 ValueError(find와의 차이)
try/except를 수반하는 메소드이다.
join : 특정 문자열을 기준으로 다른 문자열들을 합쳐주는 메소드
upper : 문자열 내에 모든 소문자를 대문자로 바꾸는 메소드
lower : 문자열 내에 모든 대문자를 소문자로 바꾸는 메소드
replace : 문자열 내에서 특정 문자열을 다른 문자열로 바꾸는 메소드
replace(바뀜의 대상, 바꾸고자 하는 것)
split : 특정 문자를 기준으로 문자열을 나누는 메소드(결과는 리스트 형태로 나옴)
2. 리스트 메소드
len : 리스트의 길이를 반환하는 내장 함수
del : 리스트에서 특정 요소를 삭제하는 연산자
del(삭제 대상)
append : 리스트의 맨 뒤에 넣고 싶은 것을 첨부하는 것
sort : 리스트를 오름차순으로 정렬하는 메소드
내림차순을 원하면 뒤에 reverse = True 작성
sort와 sorted의 차이 : 원본값 수정 여부
insert : 리스트의 특정 위치에 요소를 삽입
insert(위치, 투입값)
remove : 리스트에서 특정 요소 제거하는 메소드
pop : 리스트에서 n번째 요소를 빼낸 뒤, 그 요소를 삭제 or 뽑아내는 메소드
extend : 리스트를 확장하여 새로운 요소들을 추가하는 메소드
그냥 더하기 연산자를 사용할 수 있음 (+=)
3. 딕셔너리 메소드
딕셔너리 : 키와 밸류를 쌍으로 저장하는 저장고
#render에 들어갈 것 : render(request, html, 딕셔너리)
del : 딕셔너리에서 특정 파일 삭제
keys : 딕셔너리에서 모든 key를 리스트로 만들기
values : 딕셔너리
items : 딕셔너리의 모든 키와 값을 튜플 형태의 리스트로 반환
#튜플 : 상수화된 리스트(불변형 자료)
get : 딕셔너리에서 지정한 키에 대응하는 값을 반환(딕셔너리에 key가 없는 경우, none을 반환)
(get 없이 함수를 할 경우 : key가 없는 경우 keyerror 발생
>> 에러 방지를 위해 get을 쓰자)
in : 해당 키가 딕셔너리 안에 있는지 확인
print('key' in 딕셔너리) = True or False 로 나타남
[이론] 프로세스와 스레드
프로세스 : "실행 중인 프로그램"
1. 프로세스 직접 확인하기
- foreground process : 사용자가 볼 수 있는 공간에서 실행되는 프로세스
- background process : 사용자가 볼 수 없는 공간에서 실행되는 프로세스
사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스(demon or service로 지칭)
2. 프로세스 제어 블록
- 모든 프로세스는 실행을 위해 CPU가 필요하다. 그러나 CPU 자원은 한정되어 있다.
- 빠르게 번갈아 수행되는 프로세스들을 관리해야 함
- 이를 위해 사용하는 자료구조가 프로세스 제어 블록(이하 PCB)
- PCB에 담기는 대표적 정보 : 프로세스 ID(PID : 고유 번호), 레지스터 값, 프로세스 상태, CPU스케줄링 정보,
메모리 정보, 사용한 파일과 입출력장치 정보
3. 프로세스 사용자 메모리 영역 : 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉨
- 코드 영역 : 실행할 수 있는 코드, 기계어로 이루어진 명령어 저장
- 데이터 영역 : 프로그램이 실행되는 동안 유지할 데이터 저장(전역 변수)
- 힙 영역 : 프로그래머가 직접 할당할 수 있는 저장공간
- 스택 영역 : 데이터가 일시적으로 저장되는 공간(매개 변수, 지역 변수)
4. 스레드 : 프로세스의 실행 흐름으로써의 구성요소
스레드는 하나의 실행 흐름이기 때문에 하나의 문제가 생긴다고 해서 다른 스레드에 큰 지장을 주진 않음.
병렬적 실행
같은 프로세스 안에서 움직이는 여러 스레드들은 PID가 같다.
물론 다른 프로세스와 PID는 다르다.
동일한 프로세스 내 스레드들은 각기 다른 스레드ID, 프로그램 카운터 값을 포함한 레지스타 값과 스택을 가질 뿐
프로세스가 가지는 자원(코드, 데이터, 힙, 스택 등)을 공유한다.
그러나 프로세스끼리는 자원을 공유하지 않는다.
파이썬 멀티 프로세싱과 멀티 스레드(thread)
'언어 > Python' 카테고리의 다른 글
파이썬 포멧팅 %, {}, f-string (0) | 2023.05.03 |
---|---|
선발대 심화 3주차(재귀함수, class 심화) (0) | 2023.04.27 |
map, filter, lambda 식 연습 (2) | 2023.03.23 |
requests 에러 표시, 함수 return type (0) | 2023.03.21 |
2023-03-20 TIL(파이선 문법 심화) (1) | 2023.03.20 |