앞 장에서 우리는 무한 루프 구조를 살짝 경험해보았다. 프로그램에서 "반복" 이라는 것은 큰 의미를 가진다. 프로그램을 작성하는 것은 결국 우리가 직접 하기 어려운 일들을 컴퓨터에게 맡기는 것인데, 어떤 일..
앞 글들을 통해 파이썬이 무엇인지, 그리고 파이썬의 변수, 연산자에 대해서 알아보았다. 이제 간단한 프로그램들을 만들어보면서 직접 실습을 해보려 한다. 프로그램을 작성할 때, 사용할 수 있는 세 가지의 기본..
연산자란 무엇일까 ? 우리의 일상에서 "계산"은 흔하게 이루어지는 과정이다. 계산이라고 하면, 단순히 편의점에서 물건을 구입하고 돈을 거슬러 받는 것을 떠올릴 수도 있지만, 우리가 즐겨보는 영화의 컴퓨터 그..
프로그래밍을 할 때 우리는 많은 데이터를 처리하여야 하고, 데이터를 계속해서 사용하려면 어딘가에 저장을 해두고 사용하고 싶을 때마다 꺼내서 써야 한다. 이 데이터는 메모리에 저장이 되고, 데이터가 저장된..
세상에는 다양한 데이터들이 존재하고, 우리의 일상 곳곳에서 너무나 많은 데이터들이 다뤄지고 있다. 이러한 데이터들을 어떻게 가공해야 의미있는 정보를 추출할 수 있을까? 데이터 과학은 이러한 데이터들에서..
WSL 을 설치해서 쓴 지 며칠 되지 않았는데, 노트북이 너무 느려진 것 같아 작업관리자를 켜보았더니 이게 무슨 일이야.. 메모리를 무식하게 잡아먹고 있는 놈을 보았다. Vmmem 이 뭐하는 친군지 찾아보니 WSL 를..
Pwnable.kr 의 세번째 문제를 풀어보자. 이번 문제는 Buffer Overflow 에 대한 문제이다. Buffer Overflow 란, 데이터를 버퍼에 저장할 때, 데이터가 지정된 범위 바깥에 저장되는 것을 의미하고, 벗어난 데이터..
Pwnable.kr 의 두번째 문제를 풀어보자. 이번 문제는 MD5 hash collision 에 대한 문제라는 힌트를 주고 있다. 그러면 Hash 는 무엇이고 Hash collision 이 무엇인지 간단하게 알아보자. Hash 란 임의의 길이를..
1번 문제 fd 를 풀어보았다. fd 는 File Descriptor 를 의미한다. 문제를 풀어보면 알 수 있듯이 File Descriptor 를 모르면 풀 수 없는 문제이다. 문제에서도 "What is a file descriptor?"라는 힌트를 주고 있..
디버그(Debug)는 컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산(버그)을 찾아내고 그 원인을 밝히고 수정하는 작업 과정 출처 : ko.wikipedia.org/wiki/디버그 GDB 라고 부르..