전체 글 211

[C / get_next_line] 파일 디스크립터 (File Descriptor)

파일 디스크립터 (File Descriptor) 리눅스 혹은 유닉스 계열 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념으로 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값 파일에 빨리 접근할 수 있도록 도와주는 파일의 별명같은 것이다. 일반적으로 0과 양수인 정수값을 갖는다. - 유닉스 시스템에서 모든 객체들을 파일이라고 한다. ( 디렉토리, 소켓, 파이프 등 모든것이 하나의 파일) 유닉스 시스템에서 이 객체들에 접근할 때 파일 디스크립터를 사용한다. - 응용 프로세스가 파일을 열거나 생성시 파일 디스크립터를 얻게 된다. 얻게된 파일 디스크립터는 이후 일어나는 모든 동작(읽기, 쓰기, 파일 동작 제어 등)에서 그 파일을 가리키는데 사용된다. - 파일을 open()시 file discript..

42SEOUL 2022.03.16

[C / get_next_line] 정적 변수 (static variable)

정적 변수 (static variable) 함수가 종료되어도 프로그램이 종료되지 않는 이상 메모리상에 남아있는 변수 static 자료명 변수명; 보통 일반 지역변수는 스택(Stack) 영역에 저장된다. 이 스택 영역의 변수들은 함수 호출시 메모리에 할당되며 함수 종료시 메모리에서 사라진다. static 변수는 데이터(Data)영역에 저장되는데, 전역 변수도 이곳에 저장된다. 데이터 영역은 프로그램 시작시 0 또는 NULL이 할당되며, 프로그램 종료시 소멸된다. 이해를 돕기위한 코드 int test() { static int cnt = 0; cnt++; return (cnt); } int main() { printf("%d\n", test()); printf("%d\n", test()); return (0..

42SEOUL 2022.03.16

[Spring] CORS 에러

CORS (Cross-Origin Resource Sharing) 서로 다른 Origin(출처)끼리 요청을 주고 받을 수 있게 정해둔 표준, 보안 정책 Origin : 서버의 위치를 찾아가기 위해 필요한 가장 기본적인 것들을 합쳐놓은 것 ex) URL CORS 에러 리액트와 스프링 사이에서 데이터를 전달하는데 CORS 정책 위반으로 에러가 발생했다. CORS를 설정해주지 않았거나 제대로 설정하지 않아 원하는 리소스를 공유하지 못 하는 것이다. CORS 에러 해결 방법 @CrossOrigin 어노테이션을 사용하여 해결했다.

6. 트리

트리 노드로 이루어진 자료구조 트리는 하나의 루트 노드를 갖는다. 루트 노드는 0개 이상의 자식 노드를 갖는다. 그 자식노드 또한 0개 이상의 자식노드를 갖는다. 트리에는 싸이클이 존재할 수 없다. 각 노드느 부모 노드로의 연결이 있을수도 없을수도 있다. 비선형 자료구조로 계층적 관계를 표현 기본 용어 노드 : 한 정보 아이템 + 다른 노드로 뻗어진 가지 차수 : 한 노드의 서브트리 수 단말 노드 : 차수 = 0 비단말노드 : 차수 != 0 형제 : 부모가 같은 노드 리프 노드 : 자식이 없는 노드 부모 자식 트리의 차수 : 그 트리의 노드의 최대 차수 조상 : 루트에서부터 그 노드에 이르는 경로상의 모든 노드 레벨 루트 : 레벨 1 자식 : 부모 + 1 트리의 높이, 깊이 : 최대 레벨 산술식 A + ..

학교/자료구조 2022.03.14

5. 이중 연결리스트

이중 연결리스트 각 노드가 선행노드와 후속 노드에 대한 링크를 가지는 리스트 노드의 왼쪽링크와 오른쪽 링크를 가지고 헤드노드를 가진다. 노드 구조 typedef struct node *nodepoint; typedef struct node { nodepoint llink; int data; nodepoint rlink; } 노드 삽입 void dinsert(nodepoint node, nodepoint newnode) { newnode -> llink = node; newnode -> rlintk = node -> link; node -> rlink -> llink = newnode; node -> rlink = newnode; } 노드 삭제 void ddelete(nodepoint node, nodep..

학교/자료구조 2022.03.14

4. 연결 리스트

연결리스트 (Linked list) 노드를 연결시킨 자료구조 노드는 데이터와 포인터를 가지고 있다. 장점 길이가 가변적 단점 데이터를 바로 찾아낼 수 없고, 전부 탐색해야 한다. 노드 구조 typedef struct listNode listNode *listpoint; typedef struct listNode{ int data; listpoint link; }; 저렇게 정의를 어떻게 하는지 이해가 안 됐는데 암묵적 허용(?)이라고 한다. 두 개의 노드 가진 연결리스트 생성 listpointer create2() { listpoint first, second; Malloc(first, sizeof(listNode); Malloc(second, sizeof(listNode); second -> link =..

학교/자료구조 2022.03.14

[SQLD] 1.1.5 식별자

식별자 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자 엔터티를 대표하는 속성 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다. 식별자 특징 유일성 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분 최소성 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수여야 한다. 불변성 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않는다. 존재성 주식별자가 지정되면 반드시 데이터 값이 존재한다. 식별자 분류 대표성 여부 주식별자 보조식별자 스스로 생성 여부 내부식별자 외부식별자 속성 수 단일식별자 복합식별자 대체 여부 본질식별자 인조식별자 식별자와 비식별자 관계 비교 식별자 관계 비식별자 관계 목적 강한 연결관계 표현 약한 연결관계 표현 자식 주식별자 영향 자식..

학교/SQLD 2022.03.09

[SQLD] 1.1.4 관계

관계 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태나 행위로서 서로에게 연관성이 부여된 상태 관계의 분류 존재에 의한 관계 행위에 의한 관계 UML(Unified Modeling Language) 클래스 다이어그램의 관계 연간관계 : 존재적 관계, 실선으로 표현 의존관계 : 행위에 의한 관계, 점선으로 표현 관계 표기법 관계명 엔터티가 관계에 참여하는 형태 관계차수 두 개의 엔터티간에 관계에서 참여자의 수를 표현하는 것 1:1 1:M M:M 선택사양 필수참여 선택참여 선택참여 하는 쪽에 O, 상대편에 점선

학교/SQLD 2022.03.09

[SQLD] 1.1.3 속성

속성 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더이상 분리할 수 없는 최소의 데이터 단위 엔터티를 설명하고, 인스턴스의 구성요소가 된다. 엔터티, 인스턴스, 속성, 속성값의 관계 한 개의 엔터티는 2개 이상의 인스턴스 집합이어야 한다. 한 개의 엔터티는 속성을 2개 이상 가져야 한다. 한 속성은 1개의 값을 갖는다. 다중값은 별도의 엔터티로 분류 속성의 특성 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. 정규화 이론에 근거하며 주식별자에 함수적 종속성을 가져야한다. 속성의 특성에 따른 분류 기본 속성 업무에서 추출한 모든 속성 설계속성 업무에서 필요한 데이터 이외에 데이터 모델링, 업무를 규칙화 하기 위해 새로 만들거나 변형한 속성 파생 속성 다른 속성에 영향을 받아 발생하는 속성..

학교/SQLD 2022.03.09