분류 전체보기 51

[C++ 자료구조론] 3장 스택과 큐

템플릿 template 클래스와 함수의 재사용에 기여 템플릿/ 인수화 타입을 이용해 소프트웨어 개발 시간과 비용 절약 SelectionSort 선택 정렬 기법을 이용해 n ≥1 개의 서로 다른 T의 집합을 정렬 사용 시 주의사항 사용자 정의 데이타 타입에 대해서는 별도로 정의해야 한다. template // 이 부분을 반드시 넣어야 한다. void SelectionSort(T *a, const int n) { // n개의 T a[0]부터 a[n-1]까지 비감소 순으로 정렬한다. for ( int i = 0; i < n; i++) { int j = i; // a[i]와 a[n-1] 사이에 가장 작은 T를 찾는다 for (int k = i + 1; k < n; k++) if (a[k] < a[j]) j = ..

[C++ 자료구조론] 2장 배열

추상 데이타 타입과 C++ 클래스 명세와 구현을 구별하고 사용자로 부터 ADT의구현을 은닉하기 위해 클래스(class) 제공 클래스 구성 클래스 이름 데이터 멤버 (멤버 변수) 멤버 함수 💡 프로그램 접근 레벨 : public, private, protected public : 프로그램 어디에서도 접근 private : 같은 클래스 내, friend로 선언된 함수나 클래스에 의해 접근 protected : 같은 클래스 내, 서브클래스, friend에 의해서만 접근 데이터 추상화와 캡슐화 데이터 멤버 모두 private 또는 protected로 선언해 캡슐화 멤버 함수 외부에서 접근할 것은 public으로 선언하고 나머지는 private이나 protected로 선언 멤버 함수의 구현은 inline 함수로 ..

[C++ 자료구조론] 1장 기본 개념

대형 컴퓨터 시스템 💡 설계 및 구현 방법론 데이터 추상화 알고리즘 명세 성능 분석과 측정 대형 컴퓨터 프로그램 복잡하게 상호작용하는 부품들로 구성된 시스템 like 하드웨어 시스템 생명 주기가 있음 why? 유지보수를 위해 시스템 생명 주기 System Life Cycle 💡 요구사항 - 분석 - 설계 - 정제와 코딩 - 검증 (과정을 하나라도 생략하면 안 된다.) 요구사항 requirement 프로젝트들의 목적을 정의한 명세들의 집합 고객의 요구에 맞게 입력과 출력에 관한 정보를 기술 분석 analysis 문제들을 다룰 수 있는 작은 단위들로 나눔 = 분할 정복 Divide and Conquer 상향식 bottom-up VS 하향식 top-down 상향식은 C의 함수처럼 기능 위주로 나눈다. 버그 난..

[DB] 기본키가 두 개일 수 있나?

사용자가 추천하는 식당을 저장하는 테이블을 설계하면서 기본키를 설정할 때 문제가 생겼다. 테이블은 행을 구분할 수 있는 기본키가 필요하다. ‘사용자 - 식당’ 테이블에서 행을 구분하려면 사용자 ID와 식당 ID가 동시에 사용되어야 한다. 이때 기본키는 두 개가 될 수 있나?라는 의문이 들었다. 정답은 아니다. 기본키는 하나인 게 맞고 기본키를 구성하는 열이 두 개인 것이다. 기본키가 하나라는 말이 기본키를 구성하는 열이 하나여야 한다는 뜻은 아니다. ‘사용자 - 식당’ 테이블처럼 하나의 열만으로는 행을 특정하기 어려울 수 있다. 이때는 복합키를 만들어 기본키로 사용하면 된다. 참고 https://hoon93.tistory.com/57

[DB] 2022.07.07

[DB] UUID를 Primary Key로 사용하기

UUID UUID는 범용 고유 식별자로 네트워크 상에서 서로 다른 개체들을 구별하기 위해 만들어진 방법이다. 32개 문자, 4개의 하이픈으로 이루어져 있어 생성할 수 있는 값은340,282,366,920,938,463,463,374,607,431,768,211,456개이다. 고유성을 완벽하게 보장할 수는 없지만, 실제 사용할 때 중복될 가능성이 거의 없다 UUID는 생성 방법에 따라 5가지 vertion이 존재한다. TimeStamp 기반의 v1/v2, 완전 Random 기반의 v4, Hashing 기반의 v3/v5가 존재한다. 실제로는 v1/v4/v5가 주로 이용된다. Random한 UUID를 생성하기 위해서는 v1/v4를 이용하고, 고정된 UUID를 생성하기 위해서는 v5를 이용한다. PK를 생성할 ..

[DB] 2022.07.07