개발로 자기계발
728x90

정적 페이지

정적 페이지(Static Page)는 항상 같은 내용을 제공하는 웹 페이지

정적 페이지는 서버에서 미리 HTML 파일을 생성하여 클라이언트에게 제공한다.

정적 페이지는 보통 HTML, CSS, JavaScript 등을 사용하여 작성된다.

 

동적페이지

동적 페이지(Dynamic Page)는 클라이언트의 요청에 따라 내용이 동적으로 생성되는 웹 페이지

동적 페이지는 보통 서버 측에서 요청을 처리하고, 그 결과를 HTML 코드로 생성하여 클라이언트에게 전달한다.

동적 페이지는 CGI(Common Gateway Interface), 서블릿(Servlet), JSP(JavaServer Pages), ASP(Active Server Pages) 등을 사용하여 작성된다.

 

정적 페이지와 동적 페이지의 가장 큰 차이점

내용이 생성되는 시점이다.

정적 페이지는 미리 생성되어 있으므로, 클라이언트의 요청에 따라서 항상 같은 내용을 제공한다.

반면에 동적 페이지는 클라이언트의 요청에 따라서 내용을 동적으로 생성하므로, 매번 다른 내용을 제공할 수 있다.


동기

동기는 어떤 작업이 수행 중일 때, 그 작업이 완료될 때까지 다른 작업을 수행하지 않는 방식을 말한다.

즉, 작업이 순차적으로 실행되며, 다음 작업은 이전 작업이 완료된 이후에 시작된다.

비동기

반면에 비동기는 어떤 작업이 수행 중일 때, 그 작업이 완료되지 않았더라도 다른 작업을 수행하는 방식을 말한다.

즉, 작업이 병렬적으로 실행되며, 다음 작업은 이전 작업이 완료되지 않더라도 시작될 수 있다.

비동기 작업은 주로 콜백(callback), 프로미스(promise), async/await와 같은 기법을 사용하여 구현한다.

 

블로킹

동기는 작업이 순차적으로 실행되기 때문에 작업을 처리할 때 블로킹(blocking)이 발생할 수 있다.

이러한 블로킹이 발생하면, 다음 작업이 실행되기 전까지 대기해야 하므로 프로그램이 느려지는 원인이 될 수 있다.

 

비동기는 작업이 병렬적으로 실행되기 때문에 작업을 처리할 때 블로킹이 발생하지 않는다.

따라서 다른 작업을 수행하면서도 작업을 처리할 수 있어서, 프로그램이 더욱 빠르게 동작할 수 있다.


라이브러리

request와 BeautifulSoup은 정적 페이지를 스크래핑하는 데 주로 사용되는 라이브러리

request를 사용하여 HTTP 요청을 보내고, BeautifulSoup을 사용하여 HTML 문서를 파싱 하여 필요한 정보를 추출한다.

Selenium은 동적 페이지를 스크래핑하는 데 주로 사용되는 라이브러리

Selenium은 브라우저를 모방하여 동적으로 로딩되는 웹 페이지를 스크래핑할 수 있다.

Selenium을 사용하여 웹 페이지를 제어하고, 페이지 요소를 검색하고, 페이지 상호작용을 시뮬레이트하여 웹 페이지에서 필요한 정보를 추출할 수 있다.

Scrapy는 대규모 크롤링을 수행할 때 주로 사용되는 프레임워크

Scrapy는 비동기 처리 방식을 사용하여 빠른 크롤링을 지원하며, 데이터 추출, 데이터 처리, 데이터 저장 등의 작업을 효율적으로 처리할 수 있다.

Scrapy를 사용하면 크롤링한 데이터를 다양한 형식으로 출력하거나, 데이터베이스에 저장할 수 있다.

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)