일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 티스토리챌린지
- 오블완
- GPT-4
- LG
- OpenAI
- 분류
- ChatGPT
- LG Aimers 4th
- 해커톤
- Machine Learning
- 머신러닝
- LLM
- AI
- supervised learning
- Classification
- deep learning
- 딥러닝
- regression
- 지도학습
- LG Aimers
- gpt
- 회귀
- PCA
- Today
- Total
목록전체 글 (317)
SYDev
컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조는 실력있는 개발자가 되려면 반드시 알아야 할 기본 지식이다. 동일한 코드를 작성했는데도 어느 컴퓨터에서는 작동이 되고, 어느 컴퓨터에서는 작동이 되지 않을 때, 컴퓨터 구조를 이해하고 있는 사람은 컴퓨터 내부에서 문제 해결의 실마리를 찾아낼 수 있다. 컴퓨터가 이해하는 정보 컴퓨터가 이해하는 정보에는 크게 데이터와 명령어, 두 가지가 있다. 데이터 : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 명령어 : 데이터를 움직이고 컴퓨터를 작동시키는 정보 컴퓨터의 4가지 핵심 부품 컴퓨터의 핵심 부품에는 중앙처리장치(CPU; Central Processing Unit), 주기억장치(Main Memory), 보조기억장치(Secondary Stor..
가상함수 말고도 virtual 키워드를 붙여줘야 할 대상이 하나 더 있는데, 그게 바로 소멸자이다. 가상 소멸자(Virtual Destructor) virtual로 선언된 소멸자를 '가상 소멸자'라 하는데 이것이 필요한 이유와 설명을 위해 예제를 하나 살펴보자. #include #include using namespace std; class First { private: char * strOne; public: First(char * str) { strOne = new char[strlen(str)+1]; } ~First() { cout
기초 클래스의 포인터로 객체를 참조하는 경우 우선 글을 시작하기 전에 핵심부터 말하고 시작하겠다. "C++ 컴파일러는 포인터 연산의 가능성 여부를 판단할 때, 포인터의 의 자료형을 기준으로 판단하지, 실제 가리키는 객체의 자료형을 기준으로 판단하지 않는다." 예를 들어서 BaseFunc 이라는 함수를 멤버로 가진 Base라는 기초 클래스와 DerivedFunc 이라는 함수를 가진 Derived라는 유도 클래스가 있다고 가정해보자. 그렇다면 다음 문장은 컴파일 에러를 일으킨다. Base * bptr = new Derived(); bptr -> DerivedFunc();//compile error 포인터 객체를 정의하고 연산의 가능성 여부를 판단할 때, 포인터의 자료형을 기준으로 판단한다.결론적으로 포인터 ..
객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수 C++에서, AAA형 포인터 변수는 AAA객체 or AAA를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다(객체의 주소 값을 저장할 수 있다.) 다시 말해서 Person이라는 기초 클래스와 Student라는 유도 클래스, 추가적으로 Student를 상속하는 PartTimeStudent 클래스가 있다고 가정했을 때, 다음과 같은 문장들이 가능해진다. Person * ptr = new Student(); Person * ptr = new PartTimeStudent(); // 간접 상속의 경우에도 가능 Student * ptr = new PartTimeStudent(); 이와 관련된 다음 예제를 살펴보자. #include using n..
인공 지능과 머신 러닝, 딥러닝 인공 지능 인공지능 : 보통의 사람이 수행하는 지능적인 작업을 자동화한 것. AI는 머신러닝과 딥러닝을 포괄하는 종합적인 분야. 인공 지능(AI) > 머신 러닝 > 딥러닝 머신 러닝 전통적인 프로그래밍(심볼릭 AI) : 규칙 + 데이터 -> 해답 머신 러닝 : 데이터 + 해답 = 규칙, 입력 데이터를 기반으로 기대 출력에 가깝에 만드는 유용한 표현을 학습 머신 러닝은 명시적으로 프로그램되는 것이 아니라 훈련(training)된다. 샘플과 기댓값이 주어졌을 때 데이터 처리 작업을 위한 실행 규칙을 찾는다. 이런 머신 러닝에는 다음과 같은 세 가지 조건이 필요하다. 입력 데이터 포인트 : 주어진 문제가 음성 인식이라면 데이터 포인트는 사람의 대화가 녹음된 사운드 파일, 이미지..
상속으로 클래스의 관계를 구성하기 위해서는 조건이 필요하다. 조건과 그에 따른 필요조건이 충족되지 않는다면, 상속은 하지 않는 것만 못하다. 상속을 위한 기본 조건인 IS-A 관계의 성립 IS-A 관계가 의미하는 것은 간단하다. 컴퓨터와 노트북 컴퓨터를 생각해보자. 노트북 컴퓨터는 컴퓨터의 특징을 모두 가지고 거기에 자신만의 "이동성"이라는 특징이 추가된다. 그렇기 때문에 노트북 컴퓨터는 일종의 컴퓨터라고 할 수 있다. 이를 바꿔서 말하면 "노트북 컴퓨터 is a 컴퓨터"라고 표현할 수 있는데, 여기서 사용되는 is a 라는 두 단어가 성립되는 관계가 IS-A관계이다. 이를 클래스의 개념에서 다시 살펴보자. 클래스 Computer와 이를 상속하는 NotebookComp가 있다면 둘은 IS-A 관계가 성립..
앞서 public과 private 선언에 대해 설명할 때 protected 선언은 상속과 관련있기 때문에 설명을 미뤘었다. 그렇다면 상속을 배웠으니 이제 protected 선언에 대해 공부해보자. protected로 선언된 멤버가 허용하는 접근의 범위 C++의 접근제어 지시자에는 private, protected, public 이렇게 세가지가 존재한다. 여기서 private이 허용하는 접근의 범위가 가장 좁고, public이 허용하는 범위가 가장 넓으며 protected는 그 중간의 범위에 해당한다. protected는 private과 거의 모든 부분에서 유사하지만, 단 한 가지 차이점이 있다. 바로 private 선언된 멤버변수는 유도 클래스에서 접근이 불가능하지만, protected 선언된 멤버변수는..
상속이란? "UnivdStudent 클래스가 Person 클래스를 상속한다." 라고 한다면 UnivStudent 클래스는 Person 클래스가 지니고 있는 모든 멤버를 물려받는다. 즉, UnivStudent 객체에는 UnivStudent 클래스에 선언된 멤버 뿐만 아니라 Person 클래스에 선언된 멤버도 존재하게 된다. 상속의 방법과 그 결과 예제를 통해서 상속의 방법과 결과를 확인해보자. 우슨 다음과 같이 Person 클래스를 정의하겠다. class Person { private: int age; //나이 char name[50]; //이름 public: Person(int myage, char * myname) : age(myage) { strcpy(name, myname); } void WhatY..