10/2 1, 2, 3세션
박두진 강사님
A. WEB
Client : 데이터 요청
Server : 요청에 따라 데이터 전송
- 데이터의 형식은 html, json, pdf, png 등이 될 수 있음
A-1. URL
클라이언트가 브라우저를 통해 서버로 데이터를 요청하는 방법
TIP! 스니핑
- http 를 쓰는 시절에는 누군가가 내 핫스팟을 쓰면 나를 통해서 데이터르 주고받는 것이므로 무슨 데이터가 주고 받아지는 지 알 수 있다(wireshark 프로그램 사용)
- https 는 암호화되어서 끝에서 복호화되므로 스니핑이 불가능하다
- 도메인 :
news.naver.com. DNS 서버가 브라우저에 도메인에 맞는 IP 주소 전달
- 포트 : 어플리케이션 (프로그램) 구분 (80, 443 등은 생략 가능). 어플리케이션 서버는 인터넷 망을 사용할 수 있는 프로그램
- 패스 (Path) : 파일 시스템 상에서 원하는 파일의 위치
- 파일 : 어떤 파일인지 지정 (xxx.html)
- 쿼리 :
? 뒤부터. 클라이언트에서 필요한 데이터를 전달하는 방법. & 로 연결.
A-2. HTTP Request Method
GET
- url 에 query 포함
- query 노출, 전송 가능 데이터가 적음
POST
- body 에 query 포함
- query 비노출, 진송 가능 데이터 많음
- 로그인에 보통 post 방식 사용
A-3. HTTP Status Code
- 클라이언트와 서버가 데이터를 주고 받은 결과 정보
- response 에 들어감
2XX : Success
3XX : Redirect
4XX : Request Error
5XX : Server Error
A-4. Internet
- 컴퓨터로 연결하여 TCP/IP 프로토콜을 이용하여 정보를 주고 받는 컴퓨터 네트워크
- 해저 케이블을 사용하여 전세계 컴퓨터에 접속
- 무선 인터넷은 매체(media) 를 주파수 사용
- URL -> 공유기 -> 사설망(KT) -> 백본망(한전, 부산 해저케이블) -> 서버
A-5. Cookie, Session, Cache
Cookie
- 브라우저의 저장소(SSD)에 저장하는 문자열 데이터
- 로그인 정보, 장바구니, 팝업 다시보지 않기 등
Session
Cache
- 클라이언트, 서버의 RAM(메모리)에 저장하는 데이터
- 입출력이 빠르다
- 새로고침을 계속 하면 네트워크 트래픽이 발생(서버가 비용 지불). 그래서 메모리에 저장해놓고 네트워크를 사용하지 않음
B. Web Language & Framework
Client
- Html
- CSS, Bootstrap, Semantic UI
- Javascript, react, vue, angular, jQuery
Server
- Python - Django, Flask, FastAPI
- Java - Spring
- Ruby - Rails
- Javascript - Express
C. Python Class
- 컴퓨터 CPU, RAM, SSD 활용하기 위한 문법
변수 선언 : RAM 사용 문법 : 식별자 (PEP8 문서)
데이터 타입 : RAM 을 효율적으로 사용할 수 있게 하는 문법 : int, float, bool, str, list, tuple, dict, set
연산자 : CPU 사용 문법 : 산술, 비교, 논리 등
조건문 : 조건에 따라 코드를 실행하는 문법 : if, elif, else
반복문 : 특정 코드를 반복 실행 : while, for, break, continue, range 등
함수 : 반복 코드를 묶어서 작성 및 실행 : 함수 선언(코드 작성) > 함수 호출(코드 실행) : def, return, arg¶m
TIP! import this
파이썬 철학 출력 (PEP20 문서)
C-1. Class
- 비슷한 기능을 하는 변수, 함수를 묶어서 코드 작성 실행
- 객체지향 개발방법론 구현
class, self, __init__ (special method)
C-2. 객체지향
D. Python Module
- 클래스보다도 큰 단위
- 변수, 함수, 클래스를 파일(.py)로 묶어서 코드를 작성 및 실행
E. Python Package
- 여러개의 모듈을 디렉토리로 구분하여 코드를 작성 및 실행
- 대부분의 프로그램은 패키지 단위로 개발
- 프로그램의 버전 정보 전달
import, from, as
- RAM(Object, 변수) 를 SSD 등의 저장장치에 파일 형태로 저장
pickle 패키지 사용