전체

    Python Multithread vs Multiprocessing

    파이썬은 인터프리터 언어로서 기본적으로 싱글 스레드에서 순차적으로 동작 threading 모듈로 멀티쓰레드 구현하기 0부터 100,000,000 까지의 합을 구하는 계산 프로그램을 하나의 쓰레드로 동작하게 만들어보자. from threading import Thread def work(id, start, end, result): total = 0 for i in range(start, end): total += i result.append(total) return if __name__ == "__main__": START, END = 0, 100000000 result = list() th1 = Thread(target=work, args=(1, START, END, result)) th1.start()..

    Python Thread

    Python Thread

    OS에서 어떤 실행 프로그램이 실행된다는 것은 CPU, 메모리, SSD와 같은 컴퓨터 자원을 사용한다 OS가 프로그램들이 실행될 수 있도록 부여하는 공간을 프로세스 라고 한다. 프로세스에는 응용 프로그램이 있다. OS 입장에서 프로세스에 있는 객체를 Thread라고 한다. Thread 프로그램이라고 부르는 것은 OS위에서 동작한다 프로그램이 메모리에 올라가서 실행 중인 것을 프로세스라고 부른다 프로세스의 실행 단위를 스레드 라고 한다. 프로세스는 최소 하나 이상의 스레드를 가지며 경우에 따라 여러 스레드를 가질 수 있다(멀티스레드) 우리가 윈도우를 사용할 때 메신저도 사용하고 게임도 하고 문서작성도 하고 인터넷도 사용한다 윈도우는 동시에 실행되는 여러 프로그램들을 잘 관리해야하는데 이런 작업을 스케줄링이..

    동시성(Concurrency)와 병렬성(Parallelism)

    동시성(Concurrency)와 병렬성(Parallelism)

    프로그램을 구현했는데 성능이 부족한 경우가 종종 발생한다. 이런 경우 알고리즘 개선을 통해서 성능을 개선할 수도 있지만 더이상 알고리즘 개선이 어려운 경우 동시성과 병렬성을 통해 성능 향상을 시킬 수 있다. 동시성(Concurrency) 흔히 말하는 멀티태스킹이다 멀티태스킹에서 여러분은 한 순간에 하나의 일을 하고 있지만 이를 아주 빨리 번갈아 할 수 있지만 마치 동시에 처리하는 것처럼 보임 A,B,C,D가 있을 때 일을 잘게 분할한 후 이를 조금씩 번갈아 가면서 처리하는 방식을 의미 병렬성(Parallelism) 동시성이 사실 한 순간에 하나의 일만을 처리한 것과 달리 병렬성은 진짜로 동시에 여러 개의 일을 처리 예를 들어 CPU에 멀티코어가 달려서 여러개의 테스크(일)을 처리할 수 있는 것이다. 지금..

    호스팅이란 무엇인가

    호스팅이란 무엇인가

    호스팅(hosting) 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스를 말한다 서버를 관리하기 위해서는 24시간 내내 안정적으로 전기를 공급해야 하고, 빠르고 안정적인 인터넷 회선을 사용해야 하며, 철저한 보안 시스템을 갖추고 있어야 한다. 따라서 개인이 서버를 관리하기보다 전문 업체의 호스팅 서비스를 사용하는 것이 일반적임 웹 호스팅 여러 고객이 하나의 서버를 함께 사용하는 형태하나의 서버를 나누어쓰기 때문에 저렴하게 이용할 수 있고, 호스팅 업체의 통합 관리를 받기에 편리하지만 사용할 수 있는 H/W가 제한적 서버 호스팅 고객이 단독 서버를 사용하는 형태넓은 H/W 공간을 사용할 수 있고, 서버 운영/관리에 대한 직접적인 권한을 가질 수 있으며 빠른 데이터 전송 속도까지 ..

    DNS와 작동 원리

    DNS와 작동 원리

    DNS(Domain Name System) 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있게 개발됨 DN(Domain Name) naver.com, google.com 같은 우리가 알고있는 웹 페이지 주소 google.com 의 IP 주소는 172.217.161.174, naver.com의 IP 주소는 210.89.164.90와 같이 네트워크 주소와 DN을 서로 연결 시켜주는 것이 DNS DNS의 작동 원리 1. 웹 브라우저에 www.naver.com 입력하면 먼저 Local DNS에게 'www.naer.com' 이라는 hostname에 대한 IP 주소를 질의하여 Local DNS에 없으면 다른 DNS name 서버 정보를 받음(Root DNS 정보 전달 받음) ..

    브라우저의 작동 원리

    브라우저의 작동 원리

    웹브라우저가 웹서버에 웹페이지 요청을 하면 웹서버는 웹페이지 응답을 한다. 즉, 서버가 브라우저에게 HTML문서를 전달하고 브라우저는 이를 읽고 해석한 후 Client에게 보여준다. HTML 및 CSS를 해석하는 구체적인 내용들은 모두 W3C(World Side Web Consortium)에 의해 관리된다. 지난 몇년간 브라우저들은 각자 이러한 구체적 규정들의 일부만 충족하며 각 브라우저별 확장 기능을 개발해 왔다. 브라우저별 호환성 이슈가 발생할 수 밖에 없는 구조. 웹 브라우저의 구조와 렌더링 엔진 User Interface : 주소창, 뒤로/앞으로 버튼 등을 포함한 화면 Browser Engine : UI와 Rendering Engine 사이에서 중간 매체 역할을 수행 Rendering Engine..