본문 바로가기

전체 글109

컴퓨터 구조 - 캐시 기억장치 1. 캐시 기억장치 - 주기억장치에 저장되어 있는 명령어와 데이터 중의 일부를 임시적으로 복사해 저장하는 장치 1) 특징 - 명령어와 데이터를 저장하고 인출하는 속도가 주기억장치보다 빠름 - 자주 사용되는 명령들을 저장해 두었다 중앙처리장치(CPU)에 빠른 속도로 제공함 - 동작이 느린 주기억장치와 빠른 CPU 사이에서 속도차이를 줄여주는 고속 완충기억장치의 역할을 한다 - 캐시기억장치의 용량에 의해 CPU의 가격이 결정된다 * 확인해서 캐시 기억장치에 CPU가 원하는 데이터가 있다면 캐시 기억장치에서 가져옴 2) 캐시 기억장치가 없는 시스템의 동작 원리 - CPU가 명령어와 데이터를 인출하기 위해선 주기억장치에 접근해야 된다 - 주기억장치에서 명령어 혹은 필요한 정보를 획득해 CPU내의 명령어 레지스터.. 2020. 6. 6.
[C++] 클래스와 객체 & 객체 포인터 1. 접근 지정자 1) 접근 지정자 종류 class test { private: // private에 선언할 멤버 // 클래스 내에서만 접근 가능 public: // public에 선언할 멤버 // 모든 클래스와 함수에서 접근 가능 protected: // protected에 선언할 멤버 // 클래스 자신과 상속된 자식 클래스만 접근 가능 } (1) private - 동일한 클래스의 멤버 함수에만 제한함 - 접근 지정자 설정하지 않으면 디폴트로 private으로 처리됨 - 보통 멤버 변수는 private으로 지정하는 것이 바람직하다 ▶ 클래스 외부에서 마음대로 접근하면 안되는 보호해야할 데이터들 ▶ 함수를 통해서만 접근가능 하게 만든다 (2) public - 모든 다른 클래스와 함수에 접근 허용 - 생성.. 2020. 5. 31.
컴퓨터 구조 - 분기 명령어와 서브루틴 1. 분기 명령어 - BRZ(Branch if Zero) 주소번지 : 조건코드가 0이면 지정 주소 번지로 분기하라는 명령어 - BR 주소번지 : 무조건 지정 주소 번지로 분기하라는 명령어 - BRE(Branch if Equal) R1 R2 주소번지 : 레지스터 R1, R2의 내용이 같다면 지정 주소번지로 분기하라는 명령어 * 분기하다 : 프로그램의 실행 순서를 변경하여 다른 명령을 실행할 수 있게 하다 위의 개념을 알고 아래와 같은 예시를 해석하면 다음과 같이 해석할 수 있다 2. 서브루틴 - 사용자가 원해서 메인에서 진행을 하다 다른 코드 블록에 가 처리하고 결과를 얻는 것 - CALL로 블록을 호출을 하고 RET 호출한 곳으로 복귀한다 1) 호출 명령어 CALL - 현재 PC(Program Count.. 2020. 5. 29.
Python을 이용한 Web Crawling * 이 실습은 공부에만 사용하였습니다 1. 웹툰 최신화 이미지 다운로드 크롤러 만들기 2. 웹툰 최신 10화 이미지 다운로드 크롤러 만들기 1. 기본 개념 1) 크롤링(crawling)이란? 크롤링이란 웹 크롤러에서 출발한 말로 인터넷 상의 페이지를 수집해 분류하고 저장한 후 나중에 쉽게 찾아볼 수 있도로 도와주는 일종의 봇이다. 2) 크롤링에 필요한 모듈 (1) urllib - URL 처리 모듈로 URL 작업을 위한 여러 모듈을 모아놓은 패키지다 - 파이썬에서 웹과 관련한 데이터들을 손쉽게 이용할 수 있도록 도와준다 - urllib는 내장된 라이브러리에 있어 따로 설치하지 않아도 사용이 가능하다 - urllib에는 총 4가지 종류의 모듈이 있다. 우리는 그중 requet만 사용할 예정.. 2020. 5. 28.
[C++] 클래스와 객체 1. 객체 - 캡슐화 : 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것 - 객체는 캡슐화를 통해 외부의 접근을 통제해 자신의 내부 요소를 보호함 1) 캡슐화 - 실세계나 C++ 프로그램이나 구성 객체들이 상호 통신하며 시스템이 구동된다 - 캡슐화로 정보들을 보호할 수 있게 접근을 막지만 모든 요소를 차단하면 안된다 정보를 교환하고 통신하기 위해 일부 요소를 노출시켜야 된다 2) 멤버 변수 & 멤버 함수 - 객체는 상태와 행동으로 구성되어 있음 - 상태 = 멤버 변수 - 행동 = 멤버 함수 - 멤버 변수(상태)를 알고 싶다면 멤버 함수(행동)를 호출해야 된다 3) 클래스와 객체 (1) 클래스 (붕어빵 틀) - 객체를 만들어내기 위해 정의된 설계도, 틀 - 클래스는 객체도 실제도 아님 - .. 2020. 5. 24.
컴퓨터 구조 - 메모리 구조와 레지스터 1. 메모리 구조 - 프로그램을 실행시키기 위해 메모리 공간이 필요함 - 프로그램을 실행시킬 때 가장 먼저 프로그램이 메모리에 로드 됨 - 메모리 공간은 코드, 데이터, 스택, 힙 영역으로 나뉜다 1) 코드(텍스트) 영역 - 실행할 프로그램의 소스 코드가 저장되어 있는 영역 - 실행 파일을 구성하는 명령어(함수, 제어문, 상수 등)들이 저장된다 - 저장된 명령어를 CPU에서 하나씩 가져가 처리한다 2) 데이터 영역 - 전역변수와 static 변수, 배열, 구조체 등이 할당되는 영역 - 프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 소멸하는 영역 - 초기에 사용할 메모리를 확보 - 초기화 된 데이터는 data영역에 저장 - 초기화 되지 않은 데이터는 BSS(Block Stated Symbo.. 2020. 5. 23.