분류 전체보기

4월 2일 부스트캠프 AI Tech 6기 과정이 끝났다. 이후 취업 스터디에 참여하여, 이력서와 포트폴리오 피드백을 받고, 모의 면접을 진행하고, 서류 지원을 하고, 서류 탈락을 하고, 지인들과 최대한 근황토크도 하면서.. 많이 바빴던 것 같은데늘 돌이켜보면 무엇을 했는지 잘 설명이 안되는 그런 날들이 있었다. 사실 어제 면접을 보고 왔다. 끝나고 KFC에 앉아 랩을 하나 시키고, 이게 바로 힙합이지 하는 말장난이나 생각하다가 잠이 들었다.눈을 뜨니 1시간 가량 지나있었고, 부랴부랴 잊어버리기 전에 면접 후기와 피드백을 작성하여 저장하였다.취업 스터디 때 공유할 좋은 소재 거리가 하나 작성되었다. 앞으로 이제 뭘 해야하지... 공부를 위한 공부는 하기 싫고, 나를 위한 일들을 하고 싶은데.. 생각을 되뇌..
· AboutPython
본 글은 https://hyperconnect.github.io/2023/05/30/Python-Performance-Tips.html#2-built-in-list는-충분히-빠르지-않다-필요시-array나-numpy를-사용하자 의 내용을 공부하며 정리한 글 입니다. 어떤 상황에서 Array나 Numpy를 쓰는 것이 적절할까? 내부에 PyObject (객체)를 들고 있는 list PyObject **ob_item; 부분을 보면, 값을 조회하기 위해 참조를 두번 타고 들어가는 것으로 볼 수 있다. 아래는 cpython에서 파이썬 list를 정의하는 부분이다. https://github.com/python/cpython/blob/main/Include/cpython/listobject.h /* Python b..
· AboutPython
하나의 스레드가 두 개의 작업을 연속적으로 수행한 것에 비해, 두 개 스레드가 각각 하나의 작업을 수행했을 때 더 오래걸렸다고 합니다. 왜 이런 일이 발생했을까요? import random import threading import time def working(): max([random.random() for i in range(500000000)]) # 1 Thread s_time = time.time() working() working() e_time = time.time() print(f'{e_time - s_time:.5f}') # 2 Threads s_time = time.time() threads = [] for i in range(2): threads.append(threading.Thre..
· AboutPython
Python에서 수명이 다한 객체는 어떻게 메모리가 회수되나요? 더보기 Python에서 수명이 다한 객체는 Reference Counting을 통해 메모리가 회수됩니다. 모든 객체마다 자신이 참조되고 있는 개수를 들고 있다가 이 숫자가 0이 되면 메모리에서 삭제하는 방식 입니다. Cyclic Garbage Collection 에 대해 설명해보세요 더보기 linked list 객체와 같이 순환 참조(reference cycle)이 있는 객체에 대해서는 Reference Counting 만으로 객체를 제거할 수 없기 때문에 cyclic garbage collection을 사용합니다. 모든 객체에 대해 reference를 graph를 그리며, 접근 불가능한 cycle을 찾아 garbage에 해당하는 객체를 찾..