본문 바로가기
반응형

분류 전체보기256

chap 02. 웹 서버 라이브러리 2.3 웹 서버 라이브러리 2.3.1 간단한 웹 서버 웹 서버의 역할은 http 통신에서 클라이언트의 요청을 받고 이를 처리하여 결과를 되돌려주는 것이다. 파이썬에서는 웹서버를 만드는데 필요한 라이브러리를 http.server 모듈에서 정의하고 있으며, 주요 클래스는 아래와 같다. 클래스명 주요 기능 HTTPServer 웹 서버를 만들기 위한 클래스로 서버IP와 PORT를 바인딩한다. HTTPServer 객체 생성 시 핸들러 클래스가 반드시 필요하다. BaseHTTPRequestHandler 핸들러를 만들기 위한 기반 클래스로 HTTP 프로토콜 처리 로직이 들어있다. 이 클래스를 상속받아 자신의 로직 처리를 담당하는 핸들러 클래스를 만든다. SimpleHTTPRequestHandler BaseHTTPRe.. 2024. 2. 20.
chap 02. 파이썬 웹 표준 라이브러리 2.1 웹 라이브러리 구성 urllib 패키지 : 웹 클라이언트를 작성하는데 사용되는 모듈들이 들어있음. http 패키지 : 크게 서버용/클라이언트용 라이브러리로 나누어 모듈을 담고 있으며, 쿠키 관련 라이브러리도 http패키지 내 서버용과 클라이언트용으로 모듈이 구분된다. 웹클라이언트를 개발하는 경우 주로 urllib 패키지를 사용한다. http.client 모듈이 HTTP 프로토콜 처리와 관련된 저수준의 클라이언트를 제공하는 반면, urllib 패키지의 모듈들은 HTTP 서버 뿐만 아니라 FTP서버 및 로컬 파일 등을 처리하는데 클라이언트에서 공통적으로 필요한 함수와 클래스를 제공하기 때문이다. 웹 서버 프로그래밍을 할때에는 http.cookie나 http.server 모듈을 사용하지 않고 장고와 같.. 2024. 2. 7.
chap 01. 웹프로그래밍의 이해 Django로 배우는 쉽고 빠른 웹개발 파이썬 웹프로그래밍 기초편 책 내용입니다. 1.1 웹 프로그래밍이란? 웹프로그래밍 : HTTP(S) 프로토콜로 통신하는 클라이언트와 서버를 개발하는 일. ex) 웹브라우저를 실행하여 네이버에 접속하는 경우 :웹 클라이언트(브라우저)가 요청하고 웹서버(네이버서버)가 응답하는 클라이언트-서버 프로그램이 동작함. 웹서버에 요청을 보내는 웹 클라이언트는 아래와 같은 형태로 만들 수 있다. 웹 브라우저를 사용하여 요청 리눅스 curl 명령을 사용하여 요청 리눅스 telnet을 사용하여 요청 직접 만든 클라이언트로 요청 1.4 HTTP 프로토콜(Hypertext Transfer Protocol) HTTP : 웹 서버와 웹 클라이언트 사이에서 데이터를 주고받기 위해 사용하는 통.. 2024. 2. 1.
chap_08. 클래스 객체 객체는 객체 지향 프로그래밍의 가장 기본적인 단위이자 시작점이다. 객체 지향 개념의 가장 기본적인 전제는 실제 세계는 객체들로 구성되어있으며, 보여지는 모든 현상은 객체들간의 상호작용을 통해 발생한다는 것에서 출발한다. 여기서 객체란 모든 실재하는 대상을 가리킨다. 프로그램을 만들 때 우선 '어떤 데이터를 활용하는가?'를 생각하게 된다. 병원에서 사용할 업무 프로그램을 만든다면 의사, 간호사, 환자, 병실, 예약기록, 진료기록과 같은 데이터가 필요하다. 이처럼 여러가지 속성을 가질 수 있는 대상을 객체라고 부른다. 프로그래밍을 할때 객체와 관련된 코드를 분리 할 수 있도록 하는 것이 객체 지향 프로그래밍의 핵심이다. 이러한 객체 지향 프로그래밍을 더 편리하게 하기 위해 클래스(class)라는 구조를.. 2024. 1. 9.
DNS URL과 도메인의 차이 URL(Uniform Resource Locator) : 사용자가 도메인 서버로 접속을 원할 때 "프로토콜 + 도메인 + 경로" 등을 통합적으로 나타내는 주소이다. 예를들어 URL : https://www.naver.com은 "프로토콜 https + 도메인 www.naver.com" 으로 분류할 수 있다. URL은 보통 Protocol (http / https), 호스트명, 도메인명, 상위 도메인명으로 이루어진 Domain, Path, Parameter, Fragment로 이루어져 있다. Protocol(http, https) 프로토콜은 컴퓨터끼리 네트워크 통신을 할 때 규격으로, 웹을 이용할 때 HTTP(Hyper Text Transfer Protocol) 프로토콜을 이용한다. .. 2023. 12. 20.
chap_07. 모듈 import math as m print(m.ceil(3.3)) print(m.floor(3.3)) 표준 모듈 모듈은 여러 변수와 함수를 가지고 있는 집합체로, 크게 표준모듈과 외부모듈로 구분된다. 파이썬은 모듈을 활용해 코드를 분리하고 공유하며, 파이썬에 기본적으로 내장된 모듈을 '표준모듈', 다른사람들이 만들어 공개한 모듈을 '외부모듈'이라고 부른다. 일반적으로 모듈을 가져올 때 import 구문을 사용하며 import 구문은 코드의 가장 위에 작성한다. import 모듈 이름 math 모듈을 예시로 구문을 살펴보자. 변수 또는 함수 설명 sin(x) 사인 값을 구한다. cos(x) 코사인 값을 구한다. tan(x) 탄젠트 값을 구한다. log(x[,base]) 로그 값을 구한다. ceil(x) 올림.. 2023. 12. 19.
chap_06-1. 구문오류와 예외 오류의 종류(Error) 프로그래밍 언어의 오류에는 두가지 종류가 있다. 프로그램이 실행되기 전에 발생하는 오류를 구문 오류(Syntax Error), 프로그램 실행 중에 발생하는 오류를 예외(Exception) 또는 런타임 오류(Runtime Error)라고 구분한다. 구문 오류 (Syntax Error) 구문오류는 괄호의 개수, 들여쓰기 문제 등으로 프로그램이 실행되기 전에 발생하는 오류이다. 예를들어 print() 함수의 문자열을 닫지 않고 print("안녕!) 으로 작성하여 코드를 실행하면 "SyntaxError: EOL(End Of Line)" 오류가 발생된다. 즉 SyntaxError는 구문에 문제가 있어 프로그램이 실행되지 않는 오류이다. 예외(exception) 예외 또는 런타임 오류는 프.. 2023. 12. 12.
파이썬 웹 프레임워크(Flask, Django, FastAPI) 파이썬은 웹 애플리케이션 개발을 위한 다양한 프레임워크를 제공하며 대표적으로 Django, Flask, FastAPI가 있다. * 프레임워크 : 웹 어플리케이션이나 서비스를 구현하는데 필요한 패키지나 모듈을 제공하여 개발과정을 더 수월하게 만들어주는 일종의 뼈대. 플라스크(Flask) 장점 단순하고 간단하게 일부를 쉽게 안전하게 변경할 수 있다. 대규모 네트워크에 배포할 수 있는 모듈식의 응용 프로그램이나 서버를 만들 수 있다. 파이썬을 잘 이해하면 쉽게 응용 프로그램을 개발할 수 있다. 모놀리식 애플리케이션이 아니므로 확장성이 뛰어나다. 단점 Django에 비해 기능이 적고, 표준화되어 있지 않기때문에 Django 등의 프레임워크 전환이 어려울 수 있다. 개발 확장과 배포를 위해서 라이브러리 및 확장을.. 2023. 12. 5.
Selenium 네이버쇼핑 예제 셀레니움(selenium)은 웹 애플리케이션 테스트를 위한 도구이다. 특히 웹 브라우저를 제어하여 웹페이지상에서 동작하는 테스트를 자동화 할 수 있다. 웹 상에서 정적인 페이지를 탐색하는데 사용하던 beautifulSoup 같은 패키지가 하지 못하는 동적인 크롤링을 지원한다. 동적으로 HTML을 만드는 경우 스크롤하거나 클릭 시 데이터가 생성되는 경우 URL 주소가 변경되지 않았는데 데이터가 변하는 경우 표, 테이블 형태의 데이터 셀레니움 동작 방식 웹 페이지를 헤더 등을 가지고 HTTP 프로토콜로 통신하는 리퀘스트(requests) 방식과 달리 webdriver API를 사용해 운영체제에 설치한 크롬(Chrome) 등 브라우저를 직접 띄워 HTML 문서를 가져오는 방식으로 제어한다. 따라서 로그인이 필.. 2023. 12. 4.
GET / POST GET 방식 GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송한다. URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 쿼리스트링이라고 부르며 만약, 요청 파라미터가 여러 개이면 &로 연결한다. 쿼리스트링을 사용하게 되면 URL에 조회 조건을 표시하기 때문에 특정 페이지를 링크하거나 북마크할 수 있다. ex) www.example-url.com/resources?name1=value1&name2=value2 GET 요청은 캐시가 가능하다. GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다. HTTP 헤더에서 cache-control 헤더를 통해 캐시 옵션을 지정할 .. 2023. 12. 4.
반응형