본문 바로가기
FastCampus/한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online.

한 번에 끝내는 파이썬 웹 개발 초격차 패키지 66일차

by Dream_World 2021. 11. 10.

파이썬 심화 문법

아! 오늘 부득이하게 지각을 해버렸다. 버스가 평소대로 왔으면 지각을 면할 수 있었는데 버스가 파업했는지 배차 간격이 20분이 넘어 버리는 건 좀 오버 아닌가? 그 동네 그 버스만 유일하게 회사로 가는 거라 다른 걸 탈 수도 없는데 엄청난 고민이 오고 갔었다. 지하철을 안 타고 갔다는 거랑 버스라는 거에 너무 의존했다는 거 하여튼 오늘 아침부터 일진이 좋지 않았다. 오늘은 아주 씁쓸하다. 취약점 진단이 오늘까지였는데 어제 발견한 거 이후로 하나도 안 나왔다는 사실 결국 보고서에는 한 건만 작성할 수 있다는 거 나의 수준을 뼈저리게 느끼게 된다. 내일 보고서 쓰고나서 피드백이 겁이 날 정도이다. 내 집요함으로 찾긴 했지만, 웹 진단 리스트 28개 항목 중 한 개라니 분명히 더 있을 텐데 하고 싶어도 테스트 못 하는 상황도 있고 스캐닝도 못 해서 더 크게 느껴질 수도 있다. 실제로 내가 배운 기술들은 다 활용하고 사용하는 것 같은데 웬만한 보안 측면인 요소는 내가 쉽게 접근을 못 하고 있음을 느낀다. 역시나 개발자들이 괜히 보안도 같이 공부하는 것이 아니라는 부분인 듯하다. 더 심화한 부분을 열심히 공부해야 할 듯하다.

 


동시성과 병렬성

파이썬 multiprocessing모듈 사용방법

멀티프로세싱 (1)

import multiprocessing as mp

# 프로세스에서 실행할 함수
def sub_process(name):
    print("[sub] start")
    print(name)
    cp = mp.current_process()
    print(f"[sub] pid : {cp.pid}")
    print("[sub] end")

# 메인 프로세스
if __name__ == "__main__":
    print("[main] start")
    p = mp.Process(target=sub_process, args=('startcoding',))
    p.start()
    cp = mp.current_process()
    print(f"[main] pid : {cp.pid}")
    print("[main] end")

 

멀티프로세싱 (2)

from multiprocessing import Process
import time

class Subprocess(Process):

    def __init__(self, name):
        Process.__init__(self)
        self.name = name

    def run(self):
        print(f"[sub] {self.name} start")
        time.sleep(5)
        print(f"[sub] {self.name} end")

if __name__ == "__main__":
    print("[main] start")
    p = Subprocess(name='startcondig')
    p.start()
    p.join()
    print("[main] end")

 

멀티프로세싱 (3)

from multiprocessing import Process
import time

class Subprocess(Process):

    def __init__(self, name):
        Process.__init__(self)
        self.name = name

    def run(self):
        print(f"[sub] {self.name} start")
        time.sleep(5)
        print(f"[sub] {self.name} end")

if __name__ == "__main__":
    print("[main] start")
    p = Subprocess(name='startcondig')
    p.start()
    time.sleep(1)
    # 프로세스가 살아있는지 검사
    if p.is_alive:
        p.terminate()

    print("[main] end")

멀티프로세싱 모듈 사용법 강의를 학습해보는 시간을 가졌다. 강의 그대로 가져올 수밖에 없었다. 내용도 없고 온니 타이핑과 결과물만 보는 강의였는데 무엇을 적을 길이 없다. 하염없이 main이 실행되면서 sub가 중간에서 실행하고 끝이 나면서 main도 같이 끝이 나는 것을 볼 수 있다. 프로세스들이 동작하면서 주고받는 타이밍이 없으며 어떻게든 main으로 시작해서 끝이 나는걸 볼 수 있다. 시간은 늦추는 거 외에는 역할이 없으며 멀티프로세싱에 대해 내가 이해를 못 하고 있는 것 같아 아쉬움이 남는다.

66일 차는 여기서 마무리하고자 합니다.


패스트캠퍼스 링크 : https://bit.ly/37BpXi

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

댓글