분류 전체보기 125

4) 파이썬 기본 문법 4

1. 함수 함수 코드가 모여 있는 하나의 단위 def 함수명: 을 이용해 함수를 생성 내가 필요한 시점에 함수를 호출하여 미리 정의된 코드를 사용할 수 있음 func라는 이름의 함수 생성 함수명 앞에는 def를 붙여 함수를 선언한다는 것을 정의, 뒤에는 콜론: 을 붙여줘야함 그 후 함수 내부 코드를 들여쓰기를 하여 작성함 작성한 함수 명을 선언하여 함수 사용 언더바_ 를 사용하여 함수의 첫 번째 값을 받지 않을 수 있음 2. 클래스 클래스를 이용하여 틀을 만들고, 같은 틀의 객체를 찍어냄 Greet이라는 클래스를 생성 클래스 내부함수 hello()와 hi()가 존재 human1, human2라는 Greet형 객체 2개 생성 생성된 객체는 클래스 내부함수에 접근이 가능 클래스를 생성할 때, __init__..

CPU 성능 향상 기법

1. 빠른 CPU를 위한 설계 기법 1) 클럭 클럭의 동작 컴퓨터 부품들은 클럭 신호에 맞춰 동작 CPU는 명령어 사이클에 맞춰 명령어를 실행 따라서 클럭 속도가 높은 CPU는 일반석으로 성능이 좋음 클럭 속도 1초에 클럭이 몇 번 반복되는지를 나태나는 시간 단위(Hz) 클럭 속도는 매번 일정하게 유지되지 않음 계속 일정한 클럭 속도를 유지하기 보다는 고성능을 요하는 순간에는 클럭 속도를 높이고, 그렇지 않을 때는 유연하게 클럭 속도를 낮춤 최대 클럭 속도를 강제로 더 끌어올리는 기법을 오버클럭킹(overclocking) 클럭 속도를 높이면 발열문제가 존재 클럭 속도만으로 CPU의 성능을 올리기에는 한계 2) 코어와 멀티코어 코어(core) CPU 내에서 명령어를 실행하는 부품 멀티코어(multi-cor..

CPU의 작동 원리

1. ALU와 제어장치 1) ALU CPU 내부의 계산을 담당 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호(수행할 연산)를 받아들여 산술연산, 논리연산 등 다양한 연산을 수행ALU가 연산을 수행한 결과는 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장됨 ALU가 연산할 때마다 CPU가 메모리에 접근하게 되면 프로그램의 실행 속도가 늦어짐 레지스터에 일시적으로 저장하여 접근 속도를 향상시켜 프로그램의 속도를 향상 플래그는 연산 결과에 대한 추가적인 상태 정보를 의미하며 플래그 레지스터에 저장됨 CPU가 프로그램을 실행하는 도중 반드시 기억해야 하는 일종의 참고 정보 플래그 종류 의미 부호 플래그 연산한 결과의 부호를 나타냄 제로 플래그 연산 결과가 0인지 여부를 나타냄 캐리 플래그..

명령어

1. 소스코드와 명령어 1) 명령어 컴퓨터는 명령어를 처리하는 기계 명령어는 컴퓨터를 실질적으로 작동시키는 매우 중요한 정보 개발자가 C++, Python과 같은 프로그래밍 언어로 작성한 소스코드는 컴퓨터 내부에서 명령어로 변환됨 2) 고급 언어와 저급 언어 고급 언어(high-level programming language) 사람이 이해하고 작성하기 쉽게 만들어진 언어 저급 언어(low-level programming language) 컴퓨터가 직접 이해하고 실행할 수 있는 언어 저급 언어에는 기계어와 어셈블리어가 존재 기계어(machine code) 0과 1의 명령어 비트로 이루어진 언어 사람이 읽으면 의미를 이해하기 어려움 → 어셈블리어의 등장 어셈블리어(assembly language) 기계어를 ..

3) 파이썬 기본 문법 3

1. 조건문 조건에 따라 코드를 실행하거나 실행하지 않게 만드는게 조건문 if 조건문 if 조건문 뒤에 콜론(:)을 붙여줌 조건문을 만족하면 동작하는 코드는 조건문에 들여쓰기를 함 if ~ elif ~ else 구문으로 여러 개의 조건을 비교 가능 위에서부터 조건을 비교하다가 만족하는 조건이 실행되면 다음의 조건은 실행되지 않고 건너뜀 조건에 여러가지 경우를 지정할 수 있음 and와 or 비교 연산자 사용 조건문을 통해 문자열 비교도 가능 in 을 통해 리스트 또한 조건문으로 설정 가능 2. 반복문 반복문을 사용하여 어떤 연산 혹은 기능을 반복적으로 실행 for 문 참과 거짓을 기준으로 조건이 거짓이 되기 전가지 무한 반복적으로 실행 while 문 반복되는 부분이나 범위를 구체적으로 지정해서 실행 1) ..

2) 파이썬 기본 문법 2

1. 자료형- 리스트, 튜플, 딕셔너리, 집합 1) 리스트(List) 여러 개의 데이터를 하나의 변수로 묶어 표현하는 자료형 대괄호[] 를 사용하여 데이터를 묶어 사용 리스트의 출력은 대괄호에 쌓인 리스트 형태로 출력됨 첫 번째 원소의 인덱스는 0부터 시작 a_list의 0번째 원소는 1, 1번째 원소는 2 [ :2] 를 사용하여 처음부터 인덱스 2번 전까지의 원소를 가져옴 [2: ] 를 사용하여 인덱스 2번부터 마지막 원소까지 가져옴 빈 리스트 생성 가능 원소를 추가하려면 append() 함수를 사용하여 순차적으로 삽입 리스트에는 int, float, 문자, 리스트 등 다양한 자료형의 데이터가 들어갈 수 있음 리스트는 데이터를 변경 가능 2) 튜플(Tuple) 소괄호() 를 사용하여 데이터를 묶음 데이..

1) 파이썬 기본 문법 1

1. 출력 print 1) print() 쌍 따옴표(" "), 따옴표(' ')로 문자를 감싸서 문자열을 출력 2) 따옴표를 같이 출력하고 싶을 때 쌍 따옴표를 출력하고 싶을 때 → 따옴표 안에 감싼 후 출력 따옴표를 출력하고 싶을 때 → 쌍 따옴표 안에 감싼 후 출력 3) 콤마를 이용하여 합쳐서 출력 여러 문자를 콤마(,)를 이용하여 합쳐서 출력 4) 띄어쓰기 없이 여러 문자 출력 + 를 사용하여 문자를 출력하면 문자열 간의 띄어쓰기가 사라짐 5) 여러 줄을 출력하는 경우 쌍따옴표 3개와 따옴표 3개로 감싸서 출력 6) 변수 출력 .format 형식을 이용하여 변수를 바로 출력 출력하고 싶은 부분에 {} 빈 중괄호를 입력 후 .format에 값을 대입 첫 번째 중괄호에는 a값이 대입되고, 두 번째 중괄호..

데이터

1. 0과 1로 숫자를 표현하는 방법 1) 정보 단위 비트(bit) 0과 1을 나타내는 가장 작은 정보 단위 1 비트는 0 또는 1, 두 가지 정보를 표현 2 비트 - 4 가지 정보(00,01,10,11) 3 비트 - 8가지 정보(000,001,010,100,011,101,110,111) 따라서 n 비트는 2^n 가지 정보를 표현 바이트(byte) 8개의 비트를 묶은 단위로 비트보다 한 단계 큰 단위 2^8(256)개의 정보를 표현 가능 2) 이진법 이진법(binary) 0과 1만으로 모든 숫자를 표현하는 방법 숫자가 1을 넘어가는 시점에서 자리 올림 이진수의 음수 표현 마이너스 부호(-)를 붙이면 컴퓨터는 이해할 수가 없음 0과 1만으로 음수를 표현하는 방법 중 많이 사용되는 방법은 2의 보수(two'..

12) 템플릿

1. 클래스 템플릿 1) 템플릿 함수나 클래스를 정의할 때, 특정 데이터 형을 사용하는 대신 범용형을 사용 여러가지 데이터 형에 대해서 함수 정의나 클래스 정의가 가능 장점 함수 코드의 재사용 단점 포팅에 취약 컴파일러에 따라 지원 X 컴파일 오류 메세지 빈약 → 디버깅에 많은 어려움 2) 클래스 템플릿의 선언 제너릭 클래스 만들기 3) 클래스 템플릿의 인스턴스화 항상 명시적으로 지정 객체를 생성할 때, 템플릿의 파라미터 지정 객체를 생성하지는 않지만, 객체에 대한 포인터나 레퍼런스를 정의하면서 템플릿의 파라미터 지정 4) 템플릿의 특징 실제로 사용되기 전까지는 코드가 생성되지 않음 코드 크기를 최소화 미리 코드를 만드는 것이 아니라 컴파일러가 해당 코드를 컴파일 시 클래스의 코드를 생성 Ex) 2개의 ..

11) 가상 함수와 추상 클래스

1. 가상 함수 1) 가상 함수(virtual function) virtual 키워드로 선언된 멤버 함수 동적 바인딩 지시어 컴파일러에게 함수에 대한 호출 바인딩을 실행 시간까지 미루도록 지시 함수 오버라이딩(function overriding) 파생 클래스에서 기본 클래스의 가상 함수와 동일한 이름의 함수 선언 파생 클래스에서 오버라이딩한 함수가 호출되도록 동적 바인딩 기본 클래스의 가상함수를 실행 X 오버라이딩과 가상 함수 호출 #include using namespace std; class Base { public: virtual void f() { cout