본문 바로가기

전체 글

(224)
[부스트코스] [모두를 위한 파이썬] 컴퓨터의 내부 구조 컴퓨터의 내부구조를 이해하는 것은 프로그래밍의 시작이라 할 수 있다. 메인 메모리, 입력 장치, 출력 장치, 보조 기억장치, 마더보드가 하는 역할이 무엇이고 서로 어떤 관계를 형성하고 있는지 살펴 보자. 정의 - CPU(Central Processing Unit): 프로그램을 실행한다. CPU는 항상 다음에 무엇을 할지 물어본다. 인간의 뇌처럼 지능을 가진 것은 아니지만 처리능력이 매우 뛰어나다. - 입력 장치(Input Devices): 사람에 의해 정보를 입력받는 기기들. ex. 키보드, 마우스, 터치 스크린 - 출력 장치(Output Devices): 처리된 정보의 결과를 보여주는 기계 ex. 화면, 스피커, 프린터, DVD 기록기 - 메인 메모리(Main Memory): 적은 양의 정보를 저장하는..
[알고리즘] LRU(Least Recently Used) 알고리즘 페이지 교체 알고리즘 페이지 교체 알고리즘은 페이징 기법으로 메모리를 관리하는 운영체제에서, 페이지 부재가 발생 하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법입니다. 페이지 교체 알고리즘의 예로, FIFO, LFU, LRU 알고리즘 등이 있습니다. 그 중 LRU 알고리즘에 대해서 알아보겠다. LRU 알고리즘 LRU 알고리즘은 Least Recently Used의 약자로 가장 최근에 사용되지 않는 것의 의미를 갖고 있다. 페이지에서 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하는 알고리즘이다. 이 알고리즘의 기본 가설은 가장 오랫동안 사용하지 않은 데이터는 앞으로도 사용할 확률이 적다는 것이다. 참고: https://gomguard.tistory.com..
[악성코드 분석] Cuckoo Sandbox VirtualBox 이용해서 구축하기(3) 3. 게스트 인 게스트 스펙 - Sandbox 운영체제: 윈도우 7 엔터프라이즈 SP1 32비트 가상머신: 버추얼박스(Virtualbox) CPU: 가상 CPU 1코어 메모리: 512MB 아이피: 192.168.56.101 서브넷마스크: 255.255.255.0 게이트웨이:192.168.56.1 9) Ubuntu에서 xp 설치, 설정 ※ 가상환경에서 가상환경을 설치하는 것이기 때문에 속도가 굉장히 느릴 것이다. 최대한 우분투와 xp머신에 램을 할당해주자, 가장 좋은 것은 우분투내에서 설치하는 것이지만 win10에서 xp이미지를 ova파일로 내보내서 그 xp이미지로 우분투에 설치하는 방법도 있다. 실제로 테스트 해봤는데 두번재 방법은 될 때도 있고 안 될때도 있다. 자신의 램이 8G이상이고 우분투에 4G할..
[악성코드 분석] Cuckoo Sandbox VirtualBox 이용해서 구축하기(2) 2. 게스트 스펙 - Cuckoo-Server 운영체제: 우분투 16.04.3 LTS 64비트 CPU: 가상 CPU 4코어 메모리: 4GB 아이피: 192.168.35.2 1) windows10에 Ubuntu 설치 1. VirtualBox 설치(https://www.virtualbox.org/) 2. VirtualBox 가상머신에 Ubuntu 16.04.3 LTS 설치(https://www.ubuntu.com/download/desktop) Ubuntu 설치할 때 영문판으로 설치했고, 사용자 이름은 cuckoo로 만들었다. 이 사이트를 통해서 VirtualBox에서 Ubuntu 16.04 LTS를 설치한다. 3. ubuntu 설치 완료 후 Ctrl+Alt+T로 터미널 창 열어서 sudo apt-get u..
[악성코드 분석] Cuckoo Sandbox VirtualBox 이용해서 구축하기(1) 1. 호스트 스펙 운영체제: 윈도우 10 Pro 64비트 가상머신: Oracle VM VirtualBox 5.1.38 CPU: i5-8250U 메모리(RAM): 16GB 가상 아이피: 192.168.56.1/24 ※ 컴퓨터 CPU 및 메모리 확인하는 방법 1. 실행창(단축키: 윈도우키+R)을 연다. 2. 열리는 실행창에 dxdiag를 입력하고 엔터를 치거나 확인을 클릭한다. 3. 열리는 DirectX 진단 도구 창 중앙에 있는 [프로세서] 항목에서 CPU 모델명과 스펙을 확인한다. 인텔(Intel) CPU의 경우 일반적으로 알파벳 i뒤에 숫자가 높을 수록, 뒤에 네 자리 숫자중 첫번째와 두번째 자리가 높을수록 성능이 좋다. ※ 가상 IP(사설 IP) 찾는 방법 1. 실행창(단축키: 윈도우키+R)을 연다...
[알고리즘] [그래프 탐색] BFS(너비 우선 탐색) BFS는 Breadth First Search로 너비 우선 탐색이다.현재 정점에 연결되어 있는 정점들을 Queue에 넣고 탐색하는 방법이다.노드를 큐에 넣을 때 바로 방문 처리를 하며, 탐색한 정점은 다시 탐색하지 않는다.코드 구현 설명1. 시작점을 Queue에 넣고 visit배열에 체크한다. (탐색한 정점은 다시 탐색하지 않기 위해서 체크한다.)2. 반복문 안에 들어간다.3. 가장 앞에 있는 노드를 변수에 저장하고 pop한다.4. 현재 노드와 연결된 노드 중에서 방문하지 않은 노드를 Queue에 push하고 visit배열에 체크한다.5. Queue가 비게 될 때까지 반복한다.C++ 코드#include #include #include #include #include using namespace std;v..
[Python] [정렬] list.sort()와 sorted()의 차이 sorted() 오름차순으로 정렬된 새로운 리스트를 반환한다. 원래 목록은 영향 받지 않는다. 리스트뿐만 아니라 반복 가능한 모든 작업에 적용할 수 있다. (ex. 문자열, 튜플, 딕셔너리, 제너레이터 등) s = [3, 1, 5, 4, 2] print(sorted(s)) # [1, 2, 3, 4, 5] print(s) # [3, 1, 5, 4, 2] list.sort() 해당 리스트를 오름차순으로 정렬한다. 리스트의 인덱스를 변경하고 None을 반환한다. 리스트에게만 정의되는 메소드이다. 리스트의 경우에는 list.sort()가 복사본을 만들 필요가 없으므로 sorted()보다 빠르다. s = [3, 1, 5, 4, 2] print(s.sort()) # None print(s) # [1, 2, 3, 4..
성공할 사람은 뛰면서 생각하지만, 성공 못 할 사람은 생각하느라 뛰지 못한다 성공할 사람은 뛰면서 생각하지만, 성공 못 할 사람은 생각하느라 뛰지 못한다. - 유대교 경전 진로에 대해서 고민만 하지 말고 실력을 쌓으면서 고민하자