Computer Science

Computer Science

시리즈 | LLD - 1. 오브젝트란?

시리즈 | LLD - 1. 오브젝트란?

일반적으로 프로그래밍에서 리스트는 다음과 같은 종류의 구현체를 가진다. - Array List - Linked List - ... 후에 자세히 설명하겠지만, python에서는 Array List를 이용하여 리스트를 구현한다.그러나 Array List는 각 원소의 크기가 일정해야 하며 이는 가변 크기를 가진 python의 리스트와는 다른 모습이다. 파이썬의 리스트 구현 부분을 보자. [링크] typedef struct { PyObject_VAR_HEAD /* Vector of
Hong Junseo
시리즈 | LLD - 0. 인터프리터 언어란?

시리즈 | LLD - 0. 인터프리터 언어란?

흔히들 Python은 인터프리터 언어라는 말을 들어 보았을 것이다. 이를 알아 보기 위해서는 먼저 컴퓨터의 소스 코드 실행 과정을 알아 보아야 한다.  일반적으로 컴퓨터는 각 CPU별로 미리 정의된 명령어 집합에 따라 명령어를 해석하고 수행한다. 이 과정은 논리 회로에 의해 수행되며 그러한 이진 명령어를 보기 좋게 영어로 나타낸 것이 어셈블리어이다. 어셈블리어는 거의
Hong Junseo
Matroid Theory - 1. What is Matroid?

Matroid Theory - 1. What is Matroid?

알고리즘 문제 해결 분야의 다양한 문제를 접하다 보면, 이른바 'Proof by AC(Accepted)'라고 불리는 상황을 자주 접하게 된다. 온라인 저지에서는 내 코드가 맞았다고 하긴 하는데... 정작 코드를 작성한 본인은 해당 로직이 왜 작동하는지 이해하지 못하는 상황. 이러한 상황이 발생하는 대표적인 사례는 정당성 증명을 생략한 상태로 그리디 알고리즘
Kim Minjae
TCP와 UDP로 알아보는 네트워킹

TCP와 UDP로 알아보는 네트워킹

우리는 대 인터넷의 시대에 살고 있다. 우리는 도서관에 가서 종이들을 뒤지는 대신 구글에 검색하고 ChatGPT와 말씨름을 벌인다. 친구와 같이 비디오 게임을 하기 위해 오락실으로 갈 이유도 없다. 각자의 집에서 원격으로 접속하면 되지 않는가? 혹자는 작금 인류사상 최고의 발명품으로 꼽는 이 인터넷은, 어떻게 작동하는 것일까? 이 질문의 답변은 너무나 방대하여 차마
Lee Hojun