본문 바로가기

전체 글125

Thread vs ThreadPool vs ThreadPoolExecutor ThreadPoolThreadPool ThreadPoolExecutor생성쓰레드 수수동 Thread 1 = Task 1개파라미터로 지정가능디폴트=(논리CPU수 + 4)파라미터로 지정가능디폴트=(논리CPU수 + 4)최적의 용도적은 수로 동시에 실행이 필요한 경우모든 쓰레드가 동시에 실행되지는 않고 비어 있거나 I/O 등의 기다림이 있어 양보된 쓰레드에 실행되게 된다.같은 태스크 내용으로 파라미터만 달리하여 많은 수의 쓰레드를 실행하는 경우.모든 쓰레드가 동시에 실행되지는 않고 비어 있거나 I/O 등의 기다림이 있어 양보된 쓰레드에 실행되게 된다. 같은 태스크 내용으로 파라미터만 달리하여 많은 수의 쓰레드를 실행하는 경우.결과의 리턴불가능가능가능취소기능불가능불가능실행되기 전의 태스크에 한해가능※ Thread.. 2024. 5. 11.
(React) useCallback function factory(a, b) {    return a + b; } const sumFunc1 = factory(); const sumFunc2 = factory();console.log(sumFunc1(1, 2)); // => 3 console.log(sumFunc2(1, 2)); // => 3console.log(sumFunc1 === sumFunc2); // => false console.log(sumFunc1 === sumFunc1); // => true같은 factory함수를 가르킨다고 해도 인스턴스 오브젝트는 서로 다르다. 또한 렌더링이 자주 반복되는 경우에도 이전 인스턴스와는 다른 sumFunc1과 sumFunc2 인스턴스가 생성된다. 그럼 언제 useCallback 필요할까?일단.. 2024. 5. 7.
(React) map 에 의한 루프에서 표시가 되지 않는 문제 {  } 로 감싸여져 있는 경우 반드시 return 이 없는 경우 아무것도 표시되지 않는다.return (     { this.state.task.map((item,contentIndex) => {                   ( hello {item.event} {item.eventpara} ) })               }     ) 해결책 1) return 을 명시return (     { this.state.task.map((item,contentIndex) => {                 return ( hello {item.event} {item.eventpara} ) })              }    ) 해결책 2) { } 를 제거return (       { this... 2024. 5. 7.
(React) 무한 렌더링 원인과 방지 const [count, setCount] = useState(0);const handlecart= (item) => {          setCount(count+1);          setItem(item);}무한 렌더링을 유발하는 코드handlecart(item)}>cart 위의 코드는 handlecart 함수의 참조를 패스하는게 아니라 함수 자체를 호출하고 있다. 따라서 인위적으로 클릭하기 전에 인터프리터가 코드를 파스할 시에 함수를 실행하게 된다. 이로인해 함수내에서 스테이트는 업데이트되고 화면은 다시 렌더링하게 되서 무한 루프에 빠지게 된다.   따라서 해결책은 함수의 참조를 설정하는 것이다.() => handlecart(product)}>cart 2024. 5. 7.
threading / multiprocessing / asyncio wikipedia에서 랜덤 100 페이지의 타이틀을 화일로 저장하는 샘플로서 multiprocessing과 async 를 이용하여 처리속도의 향상을 보여주고 있다.multiprcessing : 계산등의 CPU 의존적인 처리에 유리 async : 화일 I/O, 네트워크 I/O 등의 Blocking처리에 유리위의 둘을 이용하여 처리속도를 향상import asyncio                                         # Gives us async/await import concurrent.futures                        # Allows creating new processes import time from math import floor               .. 2024. 5. 2.
json json.dumps vs json.jsonify return json.dumps({"language" : "python"}) return jsonify({"language" : "python"})자동으로 header 의 Content-Type  을 text/html; charset=utf-8 로 설정※ 수동으로 header 를 변경해 줘야 함.자동으로 header 의 Content-Type  을 application/json 로 설정 json.jsonify 와 함께 스테터스 코드로 함께 리턴 return jsonify({"language" : "python"}), 204 리턴하는 한글(비영어) 깨짐 해결 app.config["JSON_AS_ASCII"] = False frontend로부터의 json 데이.. 2024. 4. 30.