$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

동시성으로 작성하는 파이썬 크롤러
Modern Concurrent Programming for Multicode Environment 원문보기

한국정보통신학회 2017년도 춘계학술대회, 2017 May 31, 2017년, pp.430 - 433  

김남규 (동서대학교 컴퓨터공학부) ,  강영진 (동서대학원 유비쿼터스 IT) ,  이훈재 (동서대학교 컴퓨터공학부)

초록
AI-Helper 아이콘AI-Helper

동시성을 보장하는 프로그래밍은 개발자에게 있어서 필수적이다. 이를 사용하지 않는다면 하드웨어 자체의 기술 발전이 있지 않는 한 프로그램의 속도 향상을 기대하기 힘들다. 뛰어난 동시성 코드를 지원하는 프로그래밍 언어로 go, elixir, scala 등이 있다. 수많은 유용한 라이브러리를 지원하는 파이썬 역시 asyncio나 coroutine과 같은 동시성 프로그래밍을 지원하고 있다. 본 지에서는 동시성과 병렬성의 개념을 정의하며, 파이썬에서 동시성 프로그래밍을 작성할 시에 유의해야 할 점에 대해 설명한다. 웹 데이터를 수집하는 크롤러를 동시성 코드로 작성하여 순차, 멀티스레딩 코드로 작성된 프로그램과 성능을 비교한다.

Abstract AI-Helper 아이콘AI-Helper

Programming that ensures concurrency is essential for developers. If you do not use it, it is hard to expect the speed of the program to improve unless there is technical advancement of the hardware itself. Programming languages that support good concurrency code include go, elixir, and scala. Pytho...

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 3장에서는 파이썬에서 지원하는 동시성 기법을 활용하여 웹 데이터를 수집하는 크롤러의 기능을 개선하고 순차, 멀티스레딩 방식을 사용한 프로그램과의 성능을 비교하였다. 덧붙여 성능 측정 시 사용했던 clock 데코레이터 방법에 대해 소개하였다. 기존에 해왔던 방식으로 순차 또는 멀티스레 딩을 사용한다면 동시성에서 얻을 수 있는 효율을 얻지 못한다.
  • 함수형 프로그래밍을 기반한 동시성 프로그래밍은 비동기를 지원하여 동시성을 보장하며, 불변하는 자료형을 제공하고 루틴에 진입하면 중간에 침범을 불허하여 사이드 이펙트를 제거한다. 본 지에서는 동시성 프로그래밍을 지원하는 언어 중 하나인 파이썬을 사용하여 동시성을 보장하는 크롤러 개발에 대해 기술한다. 2장에서는 동시성과 병렬성의 개념 정리 및 파이썬 언어의 동시성에 대하여 설명하며, 3장에서는 웹 데이터를 수집하는 크롤러를 순차, 멀티스레딩, 동시성 기법으로 작성하고 성능을 비교한다.
  • 기존에 해왔던 방식으로 순차 또는 멀티스레 딩을 사용한다면 동시성에서 얻을 수 있는 효율을 얻지 못한다. 본 지에서는 파이썬의 비동기 기법을 소개함과 더불어 비동기 기법을 사용하여 수행하는 프로젝트에서 사용하던 크롤러의 성능을 개선하였다.
  • 2장에선 동시성과 병렬성의 차이점에 대해 설명한다. 파이썬 언어에서 동시성을 보장하기 위하여 고려해야하는 사항에 대해 기술한다.

가설 설정

  • 동시성과 병렬성은 중첩된 의미를 내포한다. 100개의 일을 처리한다고 가정할 때, 하나의 코어에 한정할 경우 동시적으로 처리할 것이다. 100개의 일들이 있는데 하나의 프로세스에서 순차적으로 1개의 일만 처리하는 코어는 없을 것이다.
본문요약 정보가 도움이 되었나요?
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로