학교 72

[SQLD] 1.1.2. 엔터티 / 1.1.3. 속성

엔터티 Entity엔터티업무에 필요하고 유용한 정보를 저장, 관리하기 위한 집합적인 것이다.사람, 장소, 물건, 사건, 개념 등의 명사업무상 관리가 필요한 관심사엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 갖는다.ex) 학생이란 엔터티는 학번, 이름, 생일, 주소 등의 속성을 갖는다.공유속성 : 엔터티 인스턴스 전체가 공유할 수 있는 속성개별속성 : 엔터티 인스턴스 중 일부만 해당하는 속성인스턴스의 집합이다.인스턴스란 엔터티의 하나의 값에 해당한다고 정의할 수 있다.ex) 과목이라는 엔터티의 인스턴스들은 수학, 과학, 국어 등이 존재한다. 엔터티와 인스턴스에 대한 내용과 표기법 엔터티 특징반드시 업무에서 필요로 하는 정보여야 한다.유일한 식별자에 의해 식별 가능해야 한다.영속적으로 ..

학교/SQLD 2022.01.10

[SQLD] 1.1.1. 데이터 모델링의 이해

모델링의 이해모델링사람이 살아가면서 나타날 수 있는 다양한 현상은 사람, 사물, 개념 등에 의해 발생한다고 할 수 있으며 이것을 표기법에 의해 규칙을 가지고 표기하는 것 모델링 특징추상화 현실세계를 일정한 형식에 맞추어 표현한다는 의미단순화복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현해 쉽게 이해할 수 있도록 하는 개념명확화누구나 이해하기 쉽게하기 위해 대상에 대한 애매모함을 제거하고 정확하게 현상을 기술하는 것 모델링의 세가지 관점데이터관점 : 업무가 어떤 데이터와 관련 있는지 || 데이터간의 관계는 무엇인지에 대해 모델링하는 방법프로세스 관점 : 업무가 실제하고 잇는 일이 무엇인지 || 무엇을 해야하는지 모델링하는 방법데이터와 프로세스의 상관 관점 : 업무가 처리하는 일의 방법에..

학교/SQLD 2022.01.10

3. 스택과 큐

스택 (Stack) LIFO (Last-in, First-out) 리스트 한 쪽에서만 삽입과 삭제를 수행하는 자료구조 처음 삽입된 데이터가 가장 나중에 제거된다. int stack[MAX_SIZE]; int top = -1; void push(int item){ if(top >= MAX_SIZE-1) stackFull(); stack[++top = item; } int pop(){ if(top == -1) return stackEmpty(); return stack[top--]; } top stack push(A) 0 A C push(B) 1 B pop() 0 pop() -1 pop() stackEmpty() push(C) 0 큐 (queue) FIFO (First-in, First-out) 리스트에서 ..

학교/자료구조 2021.09.28

2-2. 다항식

기호 다항식의 조작 a : cofficient (계수) e : exponenet (지수) x : variable (변수) degree(차수) : 다항식에서 가장 큰 지수 다항식 표현(1) degree (MAX 지수) coefficient 3 1 10 3 7 #define MAX_D 100 typedef struct{ int degree; float coef[MAX_D]; }polynomial; polynomial a; a.degree = 3; // a.coef[i] = a_n-i a.coef[0] = a_n-0; // 1 a.coef[1] = a_n-1; // 10 a.coef[2] = a_n-2; // 3 a.coef[3] = a_n-3; // 7 다항식 표현(2) * 0인 항이 많을 경우 유용 0 1..

학교/자료구조 2021.09.27

2-1. 배열과 구조

포인터 해석 int *list1; int list2[5]; list2 &list2[0] list2 + i &list2[i] (list2 + i) &list2[i] *(list2 + i) list2[i] if(i == 2) list2[i] a+2*sizeof(int) list2[2] → a+2*4 // a : 임의의 주소 값 역참조 list[i] "=" 기호 우측 : (list + i)가 가리키는 값 "=" 기호 좌측 : 값을 (list+i)에 저장 일차원 배열의 주소 계산 prt+i → 주소 *(prt + i) → 가리키는 값 void print1(int *prt, int rows){ int i; for(i=0; i

학교/자료구조 2021.09.27

1. 기본개념

포인터 & : 주소 연산자 * : 간접지시 연산자 int i, j, *pi, *pj; i = 20; pi = &i; j = *pi; *pi = 10; pj = &j; *pi = *pj; value address i 20 10 20 3000 j 20 3004 pi 3000 3008 pj 3004 30012 동적 메모리 할당 (heap 기법) malloc 필요한 양의 공간을 요구하는 함수 사용할 경우 : 메모리 영역의 시작 주소 반환 사용하지 않을 경우 : Null 포인터 반환 + free() 함수 : 영역을 시스템에 반환 int i, *pi; float f, *pf; i = 1024; pi = (int *)malloc(sizeof(int)); *pi = i; f = 3.14; pf = (float *)ma..

학교/자료구조 2021.09.27

[OS] 1. 운영체제 개요

운영체제 응용과 컴퓨터 하드웨어 사이에 위치하는 레이어 운영체제 역할 프로그램의 구동 및 운영을 쉽게 할 수 있도록 함 프로그램들이 자원을 공유할 수 있도록 함 프로그램들이 디바이스와 interaction을 할 수 있도록 함 운영체제와 하드웨어 CPU : 입력된 데이터를 가지고 code (혹은 프로그램) 실행 Memory : 디스크로부터/에 코드와 데이터 읽기/쓰기 작업 수행 Disk(Storage) : 코드와 데이터를 반영구적으로 저장 위 협업에 운영체제가 직접 관여 운영체제 설계 목표 추상화 (Abstraction) 시스템을 사용 및 관리하기 쉽도록 함 성능 최적화 (Performance) - 효율성(Efficiency) 제한된 자원하에서 최선의 성능 도출 - 공정성 (Fairness) 특정 프로그램..

학교/운영체제 2021.09.01

LDA(Latent Dirichlet Allocation

토픽 모델링(Topic Modeling) 문서의 집합에서 토픽(주제)을 찾아내는 프로세스 LDA(Latent Dirichlet Allocation) 잠재 디리클레 할당 토픽 모델링 기법의 대표적인 알고리즘 토픽별 단어의 분포, 문서별 토픽의 분포를 추정하는 확률적 모형 LDA는 문서들은 토픽들의 혼합으로 구성되어 있으며, 토픽들은 확률분포에 기반해 단어들을 생성한다고 가정한다. 위의 사진을 보면 문서에 담긴 텍스트들의 키워드를 하나씩 뽑아 토픽별로 인덱싱하여 분류하고, 특정 토픽에 특정 단어가 나타날 확률을 보여준다. 문서를 보면 노란색 토픽에 해당하는 단어들이 많기 때문에 위 문서의 메인 주제는 노란색 토픽일 가능성이 크다. 노란색 토픽에선 'gene'이라는 단어가 등장할 확률이 제일 높기 때문에 '유..

학교/졸프 2021.08.19

Doc2Vec

Word2Vec이 확장된 임베딩 방법 구글에서 발표한 문서를 vector로 변경하는 document embedding 모델 Doc2Vec에선 paragraph id(document id)를 하나의 단어(paragraph token)처럼 사용해 문서를 훈련 데이터로 사용 Doc2Vec은 document id와 각 문서, 문장에 등장했던 단어들이 서로 가까워지도록 document vector를 움직인다. 단어가 다르더라도 단어의 벡터들이 비슷하다보니 각 문장의 document vectors가 비슷해진다. v(cat) ≃≃ v(dog), v(table) ≃≃ v(board) 이기 때문에 v(‘a little cat sit on table’) ≃≃ v(‘a little dog sit on board’) 가 된다..

학교/졸프 2021.08.17

[GitHub] Repository 병합

1. 병합하기 위한 repository 만들기 2. git bash 켜기 3. git clone [병합하려는 repository 주소] 4. 해당 폴더로 이동 cd [repository 이름] 5. 병합하려는 repository의 파일들 fetch mkdir [병합하려는 repository 이름] git subtree add --prefix=[병합하려는 repo 이름]/[병합하려는 repo 이름] [병합하려는 repo 주소] 만약 위에서 오류 발생시 다른 방식 사용 git remote add [remote 이름] [병합할 repository 주소] git fetch [remote 이름] # 위의 명령어 수행시 나옴 : * [new branch] 브랜치명 -> 레파지토리이름/브랜치명 git merge [위..

학교 2021.08.07