2021.05.10 메일보내기(SMTP)과 병렬처리

akay·2021년 7월 5일
1

Python tutoring

목록 보기
7/8
post-thumbnail

💡 이메일 보내기 SMTP

파이썬에서 메일을 보내기 위해서는 외부 라이브러리가 별도로 필요하지않으며
'SMTP lib' 이라는 기본 라이브러리를 제공한다.

SMTP란 (Simple Mail Transfer Protocol)로 인터넷 상의 유효한 이메일 아이디로 이메일을 보내는데에 사용되는 클라이언트이다.

지메일(Gmail)등 여러 이메일서비스를 제공하는데 지메일에 대해 설명.

>>> import smtplib
>>> from email.mime.text import MIMEText

smtplib는 SMTP을 사용하기위한 라이브러리 모듈이며 MIMEText는 메일을 보낼때의 제목과 내용을 설정하기 위한 모듈이다.

import smtplib
form email.mime.text import MIMEText
#세션생성
s= smtplib.SMTP('stmp.gmail.com',587) 

#TLS 보안시작
s.starttls()

#로그인인증
s.login('지메일 계정','비밀번호')

#보낼 메시지 설정
msg = MIMEText('내용: 본문내용')
msg['Subject'] ='제목: 메일보내기 테스트'

#메일보내기
s.sendmail("보내는 이메일주소","받는이메일",msg.as_string())

#세션종료
s.quit()

💡 병렬처리

파이썬에서 병렬처리를 구현하는 방식은 멀티 쓰레드를 사용하거나 멀티 프로세스를 사용하는 것이다. 쓰레드는 가볍지만 GIL로 인해 계산하는 작업은 하나의 쓰레드에서만 작동하며 CPU의 작업이 적고 I/O작업이 많은 병렬 처리프로그램에서 효과를 볼 수 있다.
프로세스는 각자의 고유한 메모리 영역을 가지기 때문에 더많은 메모리를 필요로 하지만 각각의 프로세스에서 병렬로 CPU작업을 할 수 있고 이를 이용해 분산처리 프로그래밍 구현도 가능하다.

💡멀티 프로세싱

하나의 프로그램을 여러 프로세스로 구성하는 방식
캐시 메모리 초기화 같은 작업이 추가로 요구되어 오버헤드가 크다는 단점이 존재하기는 하나 프로세스 간 공유하는 자원이 없어서 동시접근해 발생하는 데드락 문제가 발생 하지 않다.

데드락이란 교착상태로 두개의 작업이상이 서로의 상대방 작업이 끝나기만을 계속해서 기다리기만 하고 서로가 아무것도 완료하지 못하는 상태를 의미한다

💡멀티 쓰레딩

하나의 프로그램을 여러 쓰레드로 구성하는 방식
멀티 쓰레딩은 stack 영역을 제외한 메모리를 공유해 캐시 메모리를 비울 필요가 없고 컴퓨팅 리소스를 아낄 수 있다.
그러나 멀티 쓰레딩은 서로다른 쓰레드가 데이터와 힙 영역을 공유하기 때문에 데드락 문제가 발생 할 수 있다.


profile
iOS Developer

0개의 댓글

관련 채용 정보