본문 바로가기

반응형

분류 전체보기

(297)
[문과 코린이의 IT기록장] 컴퓨터 구조 - 1강. 컴퓨터 추상화 및 관련 기술[(2) 컴퓨터 구조 분야의 8가지 위대한 아이디어] [문과 코린이의 IT기록장] 컴퓨터 구조 - 1강. 컴퓨터 추상화 및 관련 기술 [(2) 컴퓨터 구조 분야의 8가지 위대한 아이디어] 1. Moore의 법칙을 고려한 설계 - 18~24개월마다 칩에 집적되는 소자의 수가 2배가 된다. - 우상향 증가 그래프 2. 설계를 단순화하는 추상화 - Moore의 법칙에 따라 자원의 수가 급격하게 증가함에 따라 설계 시간이 길어지는 것을 방지하기 위해 생산성을 높이기 위한 추상화 마련.(단순화) 3. 자주 생기는 일을 빠르게 4. 병렬성을 통한 성능 개선 ex) if, for문 -> 어셈블러 변경 (매우 다양한 프로세서) -> 병렬 처리 5. 파이프라이닝을통한 성능 개선 - 병렬성의 특별한 형태 - 할 일을 분담해서 데이터 전달 6. 예측을 통한 성능 개선 - 비싸..
[문과 코린이의 IT기록장] 컴퓨터 구조 - 1강. 컴퓨터 추상화 및 관련 기술[(1) 서론, 컴퓨터 응용 분야의 종류와 그 특성, 포스트 PC 시대, 이 책에서 우리는 어떤 것을 배울 수 있는가?, 프로그램 .. [문과 코린이의 IT기록장] 컴퓨터 구조 - 1강. 컴퓨터 추상화 및 관련 기술 [(1) 서론, 컴퓨터 응용 분야의 종류와 그 특성, 포스트 PC 시대, 이 책에서 우리는 어떤 것을 배울 수 있는가?, 프로그램 성능의 이해] 1. 서론 - 국가의 경제는 Moore의 법칙에 따라 빠르게 발전하고 있는 정보기술에 상당히 의존하고 있음 - 정보 기술 산업은 숨 가쁜 속도로 기술 혁신을 거듭하고 있고, 더 우수한 컴퓨터를 지속적으로 만들어 낼 것임. - 컴퓨터는 농업-산업혁명과 같이 제 3차 정보혁명을 가져오며, 일상생활에 근본적인 영향은 물론, 새로운 지식을 탐구하는 방법도 변화시키고 있음 - 컴퓨터 혁명은 지속되고 있는 중임. : 계산 비용이 10배 낮아지면서(메모리 연산속도가 증가하면서) 컴퓨터를 사용할 ..
[문과 코린이의 IT 기록장] C,C++ - 복사생성자( 복사생성자란?, 얕은 복사 vs 깊은 복사 ) [문과 코린이의 IT 기록장] C,C++ - 복사생성자( 복사생성자란?, 얕은 복사 vs 깊은 복사 ) 1. 복사생성자란? 1) 복사생성자 형태 : 클래스이름 (const 클래스 이름 &참조변수){ } ex) SoSimple(const SoSimple & copy){ } 2) 복사생성자로 객체 생성 방법 a. 클래스명 생성할 객체 = 이미 생성된 객체; b. 클래스명 생성할 객체(이미 생성된 객체); // 이 방법을 사용하는 것이 더 좋음. // 어처피 전자는 암묵적인 형변환이 일어나기 때문에, explict로 선언된다면 형변환이 불가능하기 때문 3) 기본 복사 생성자 - 기본적으로 제공되는 생성자 중 하나. - 객체간의 변수의 값을 복사해준다. - 호출시키는 객체의 선언과 동시에 초기화할 때 생성한다...
[문과 코린이의 IT 기록장] C,C++ - This포인터( 숨겨져 있는 this 포인터, 명시적으로 this 참조하기 ) [문과 코린이의 IT 기록장] C,C++ - This포인터( 숨겨져 있는 this 포인터, 명시적으로 this 참조하기 ) [ 클래스의 맴버 함수를 호출할 때, C++은 어떻게 호출할 객체(인스턴스)를 찾는가? ] : 이 질문에 대한 정답은, this라는 숨겨진 포인터를 사용한다는 것이다. - main함수 'simple.SetID(2);'에서 보면, SetID()맴버함수가 객체(인스턴스) simple에서 작동해야 한다는 것을 알고, m_ID는 simple.m_ID를 참조한다. 이 과정이 어떻게 작동되는지 알아보자. 1. 숨겨져 있는 this 포인터 1) simple SetID(2); // 이 코드는 맴버 함수 SetID()가 하나의 인수만 가지고 호출하는 것처럼 보이지만, 실제로는 두 개의 인수를 가지고..
[문과 코린이의 IT 기록장] C,C++ - 객체배열 (객체 배열, 객체 포인터 배열) [문과 코린이의 IT 기록장] C,C++ - 객체배열 (객체 배열, 객체 포인터 배열) 1. 객체 배열 ex) 1) 객체배열 형태 : 클래스명 객체명[크기] ex. Person parr[3] - 이 객체배열이 실행될 때, 생성자가 3번 실행된다. (3개의 객체가 생기는 것이므로) - 마찬가지로, return을 만나 소멸할 경우에도, 소멸자가 3번 실행된다. 2) 동적으로 객체 배열 선언하기 Point * p1 = new Point[5]; - 동적으로 객체 배열을 선언하는 경우에도, deflat constructor을 이용해 모두 초기화된다. - 즉, 이 코드는 Point형 객체에 대한, 5개를 사용할 수 있는 메모리 공간을 동적으로 확보하고, 각 공간에 defalt constructor로 객체를 생성한다..
[문과 코린이의 IT 기록장] C,C++ - 클래스, 생성자( 클래스에 대한 이해, 생성자, 매개변수에 따른 생성자 오버로딩, 이니셜라이저(:) 이용, 소멸자 ) [문과 코린이의 IT 기록장] C,C++ - 클래스, 생성자 ( 클래스에 대한 이해, 생성자, 매개변수에 따른 생성자 오버로딩, 이니셜라이저(:) 이용, 소멸자 ) 1. 클래스에 대한 이해 ex ) cf ) 61행에, month == 12? 12 : month & 12에 대한 이해 ? : - 삼항연산자 12 (참, 거짓을 판단할 변수) ? 12(참 일때 사용할 값) : month & 12(거짓일 때 사용할 값) [ 이 코드에서 클래스 관려해 중요시 봐야할 부분 ] 1. 함수의 정의와 몸통이 분리되어 있다. ex. 클래스 내부에, class Date{ ... void Setdate(int year_, int month_, int Date_) ... }; 클래스 외부에, Void Date :: SetDate..
[문과 코린이의 IT 기록장] C,C++ - new & delete (new & delete 사용방법 , new로 배열 할당하기) [문과 코린이의 IT 기록장] C,C++ - new & delete (new & delete 사용방법 , new로 배열 할당하기) [ 시작하기 전 ] - 코딩에서 메모리를 관리하는 것은 매우 중요한 문제이다. - 프로그램이 정확하게 실행되기 위해서는, 컴파일 시 모든 변수의 주소값이 확정되어야 한다. - 이와 같은 현상을 만들기 위해서는 프로그램에 많은 제약이 따르기 때문에, 프로그램 실행 시에 자유롭게 할당하고 해제할 수 있는 힙(heap)이라는 공간이 새로 생겼다. - 이 힙 상에서의 메모리 할당을 지원하기 위해, C++에서는 new & delete함수를 사용하고 있다. * new : 메모리 할당 * delete : 메모리 해제 1. new & delete 사용방법 - int *p = new int;..
[문과 코린이의 IT 기록장] C,C++ - 함수의 오버로딩 (함수의 오버로딩에 대한 이해, 함수의 오버로딩 과정) [문과 코린이의 IT 기록장] C,C++ - 함수의 오버로딩 (함수의 오버로딩에 대한 이해, 함수의 오버로딩 과정) 1. 함수의 오버로딩에 대한 이해 - C++에는 C와는 다른 '함수의 오버로딩'이라는 새로운 기능을 갖는다. * C라이브러리에는 pirntf와, scanf가 1개씩만 존재한다. * 그렇지만 C++에서는 같은 이름을 가진 함수가 여러 개 존재해도 된다. 즉, 함수의 이름에 과부하가 걸려도 상관이 없다는 것이다. - 그렇다면 C++에서 같은 이름의 함수를 호출했을 때 구분하는 방법은? : 함수의 인자를 보고 결정하게 된다. ex) - pirnt함수가 3개나 정의되있음에도 불구하고, C와 다르게 오류가 발생하지 않는 것을 볼 수 있다. - 즉, C++에서는 함수의 이름이 같더라도 인자가 다르다면..

반응형