[C++] 상속(Inheritance)과 접근제어(Access Control)
·
Programming Language(Sub)/C++
상속과 접근제어상속(Inheritance)부모가 자식에게 상속하면, 부모의 멤버들을 전부 사용하고, 자식만의 고유한 멤버를 추가로 가질 수 있다포함관계 : 부모가 자식을 포함하는 관계남자 ) 총각 이듯이 부모 ) 자식이다.자식이 부모한테 포함되는거고, 부모의 멤버가 자식의 멤버에 포함되는 것이다.#include using namespace std;class Base { public: void bFunc() { cout 자식 클래스(파생 클래스) 뒤에 콜론 ":"을 붙인 뒤 접근제어자와 부모 클래스를 적어준 뒤 선언하면 된다class Derived : public Base { // Base를 부모로 하는 클래스 public: void dFunc() { cout ..
[C++] Implicit Conversion(묵시적 형변환)
·
Programming Language(Sub)/C++
Implicit Conversion(묵시적 형변환)묵시적 형변환과 명시적 형변환묵시적(암시적) 형변환: implicit conversion형변환을 겉으로 드러내지 않음명시적 형변환: explicit conversion형변환을 명시한다변환 생성자#include #include using namespace std;class Item { public: Item(int num) : num(num) { // 변환 생성자 cout 이동생성자를 통해 i3로 대입 // 묵시적 변환 Item i4 = (Item)4; // Item(int num) 생성자가 형 변환까지 하고 있음. // 명시적 변환전부 Item(int num) 생성자를 호출우리가 알고 있는 일반적인 일반적인 생성..
[C++] 이동 시맨틱(Move Semantics): 이동 생성자, 이동 대입 연산자
·
Programming Language(Sub)/C++
이동 시맨틱(Move Semantics): 이동 생성자, 이동 대입 연산자필독아래에서 주의해서 봐야할 내용이 있습니다. C++17부터 Guarenteed Copy Elision(보장된 복사 생략)이라는 개념이 들어오면서 단순히 함수의 리턴값을 대입하는 경우 임시 객체를 만드는 과정을 생략합니다. 아래 예시에서도 단순히 함수의 리턴 값을 대입하고 있는데, 이 글은 C++11을 기준으로 작성된 내용이므로 실제 컴파일러에서 코드를 돌리는 것과 동일하게 작동하지 않습니다. 이동 시맨틱에 대해서 배운다는 목적으로 아래 내용을 참조하면 되겠습니다.깊은 복사의 문제점을 해결하기 위해 얕은 복사를 사용객체를 복사할 때 하나 하나 많은 양의 값을 복사를 해야함.깊은 복사가 필요 없는 경우도 존재함// 고의적으로 얕은 복..
[DataBase] 10. Normalization(정규화)
·
LegacyPosts
Normalization(빅데이터 등장 이후 잘 안쓰긴 합니다. 그래도 RDB에서는 중요해요)좋은 relational design 생성instructor와 department를 in_dept으로 결합한다고 가정, 이는 instructor와 department 간의 natural join을 나타냄정보의 반복이 있음Null 값을 사용해야 함 (새로운 부서를 추가하는 경우, instructor가 없는 경우)Decompositionin_dep schema에서 정보 반복 문제를 피하는 유일한 방법은 이를 두 개의 schema - instructor와 department schema -로 분해하는 것임모든 Decomposition가 좋은 것은 아님. 예를 들어, employee(ID, name, street, ci..
[DataBase] 09. BigData and Distributed DataBase
·
LegacyPosts
Motivation매우 대량의 데이터 수집웹, 소셜 미디어, 최근에는 사물인터넷의 성장에 의해 주도됨웹 로그는 초기 데이터 소스였음웹 로그에 대한 분석은 광고, 웹 사이트 구조화, 사용자에게 표시할 게시물 등에 큰 가치를 가짐빅 데이터: 이전 세대 데이터베이스와 구별됨볼륨: 저장된 데이터의 양이 훨씬 큼속도: 삽입 속도가 훨씬 높음다양성: 관계형 데이터를 넘어 다양한 유형의 데이터 포함Querying Big Data매우 높은 scalability(확장성)이 필요한 트랜잭션 처리 시스템많은 애플리케이션이 매우 높은 확장성을 얻을 수 있다면 ACID 속성 및 기타 데이터베이스 기능을 기꺼이 포기함매우 높은 확장성과 비관계형 데이터를 지원해야 하는 쿼리 처리 시스템Big Data Storage Systems데..
[DataBase] 08. Transaction Recovery
·
LegacyPosts
TransactionTransaction은 여러 데이터 항목을 액세스하고 업데이트할 수 있는 프로그램 실행 단위(Unit)입니다.예: 계정 A에서 계정 B로 $50을 이체하는 Transaction:read(A)A := A - 50write(A)read(B)B := B + 50write(B)처리해야 할 두 가지 주요 문제:하드웨어 고장 및 시스템 충돌과 같은 다양한 종류의 failure(드뭄)여러 Transaction의 동시 실행(자주 발생)Example of Fund TransferAtomicity requirementTransaction이 3단계 후에 failure하고 6단계 전에 failure하면 돈이 "잃어버린" 상태가 되어 일관성이 없는 데이터베이스 상태가 됩니다.failure는 소프트웨어 또는 ..
[PS/Tip] VS Code에서 <bits/stdc++.h> include 하는 방법(MacOS 기준)
·
PS/Tip
1. Terminal에서 다음 명령어를 입력c++ --version   2. InstalledDir에서 bin의 이전 directory로 이동cd /Library/Developer/CommandLineTools/usr/ 위 경로는 사용자 환경에 따라 다를 수 있습니다. cd 명령어 이후 나오는 경로는 1번에서 얻은 경로로 설정하면 됩니다 (3번 과정을 생략하려면 ~~~~/usr/include/로 한 번에 이동하면 됩니다) 3. usr 디렉토리에서 include 디렉토리로 이동cd include 4. include 디렉토리에서 bits 디렉토리 생성mkdir bits 5. bits 디렉토리로 이동cd bits 6. stdc++.h 파일 생성 후 편집기 열기vi stdc++.h또는vim stdc++.h Pe..
[HTML] HTML Summary
·
FE/HTML
보호되어 있는 글입니다.
[선형대수학] Matrix(기본 내용 정리)
·
Math/Linear Algebra
보호되어 있는 글입니다.
[HTTP] HTTP 기본: 비 연결성, HTTP 메시지
·
HTTP
HTTP 기본(비 연결성, HTTP 메시지)연결을 유지하는 모델    클라이언트 1, 2, 3의 연결이 유지되고 있다단점 : 클라이언트가 요청을 보내지 않아도 계속 연결을 서버가 유지해야 한다연결을 유지하지 않는 모델  요청을 주고 받을 때만 연결을 하고 그 다음에는 연결을 끊어버려 서버가 유지하는 자원을 최소한으로 줄일 수 있다비 연결성(connectionless)HTTP는 기본이 연결을 유지하지 않는 모델일반적으로 초 단위의 이하의 빠른 속도로 응답1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음예) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지는 않는다.서버 자원을 매우 효율적으로 사용할 수 있음비 연결성의 한계와 극복TCP/IP 연결을 새로 ..