분류 전체보기 103

5. import, require 정리

1. require class ComponentA {} module.exports = ComponentA; const ComponentA = require('./ComponentA.jsx); js 파일에서 해당 컴포넌트를 불러오는 방법 중하나로 require문이 있는데 require문으로 외부 파일로 선언된 컴포넌트를 불러오려면 module.exports = ComponentA; 형태이다. 2. import 1) 형태1 //이 클래스가 선언된 파일이름은 CompoB라고 가정. class ComponentB {} export default ComponentB; import ComponentB from 'CompoB'; 3. 여러 모듈을 export하는 방법 1) 형태1 //파일 이름이 react.js 이며..

8. SQL 프로그래밍 기법

1. 개요 1) 개요 응용 프로그램에서 SQL 데이터베이스를 접근하는 기법들에 대해 정리한다. 이전 절에서 정리한 SQL 문법은 데이터 베이스 연산들을 위한 구조에 대해 정리한 것이다. ORACLE REMBS와 같은 대부분의 DB 시스템은 "대화식 인터페이스"라고 SQL 명령문을 모니터 상에서 입력하고 DB 시스템에서 실행할 수 있다. 예를 들어 ORACLE REMBS를 컴퓨터에 설치하고 SQLPLUS 명령을 실행하면 ORACLE이 제공하는 대화식 인터페이스가 시작되며 이곳에 SQL 명령어나 질의들을 여러줄 입력하고 끝에 세미콜론과 엔터키를 입력하여 DB 시스템에서 명령어들을 실행할 수 있다. 위와 같은 대화식 인터페이스를 통해서 가끔 실행되는 임의의 질의를 수행하는데는 편리하지만 주로 실제로 DB의 동..

7. 데이어 링크 층 : 하위부계층 MAC(media access control)

Data link layer Data link control Multiple-access control 6절에서 데이터링크층의 상부부계층에 대해 설명하였다. 7절에서는 데이터링크층의 하위부계층 MAC에 대해 설명한다. MAC란 노드 또는 지국이 다중점 또는 브로드캐스트 링크라고 하는 공유 링크를 사용할 때는 링크에 접근하는 것을 조율하기 위한 다중 접근 프로토콜이 필요하게 된다. 예를 들어 공유 링크에 지국 A, B, C, D가 공유하고 있고 A와 B가 통신하는 중(공유 링크 사용) C와 D가 통신하려하면 공유링크를 역시 사용하므로 A, B 통신에 대해 C, D 통신은 noise가 되 수 있고 바대로 C, D 통신에 A, B 통신이 noise가 될 수 있다. 이것을 제어하는 것을 MAC 라고한다. MAC..

9. Process Management

1. Programms / Process / Thread 개요 1) Programms / Process 프로그램이라고 하는 것은 2진 형태의 데이터의 집합이다. dormant라고 하는데 이는 아직 동작을 시작하지 않았지만 실행될 수 있는 상태를 말한다. 프로그램이 실행된다고 하는 것은 HDD에 저장되어 있는 프로그램이 process 형태로 바뀌는 것이다. 그럼 왜 프로그램은 2진 형태로 존재해야하는가? => 프로그램이 메인 메모리에 적재되었다고 모두 실행되는 것이 아니다. 그럼 어떤 프로세스가 현재 실행 중이다 애기할 수 있냐면 CPU 자원을 할당 받았을 때만 프로세스가 실행되는 것이다. 메인 메모리에 적재된 명령어 중 CPU 자원을 할당 받지 않는 명령어는 sleep 한다라고 한다. 프로세스 A를 실행..

8. Multy-Process와 Mutual Locking

1. Process management 개요 1) 프로세스의 형태 운영체제는 직역을 하면 구성 시스템이다. 그럼 무엇을 구동하냐? 프로세스를 구동시키기 위해 존재한다. Mutual Locking이 왜 필요한지는 프로세스를 알아야 왜 필요한지를 알게 된다. 프로그램은 storage(such as HDD)에 저장되어 있다. (이는 실행될 수 있는 2진 형태이다.) 이 프로그램을 실행하게 되면 실행되 수 있는 2진 소프트웨어가 메인메모리에 적재가 된다. 이것이 loading이라고 한다. HDD->RAM으로 loading 될 때 기존의 프로그램에서 모양이 달라지며 loading되는데 아래와 같은 메모리 구조를 가지며 프로세스가 된다. 위와같이 생긴것이 프로세스이다. Stack heap data section t..

7-2. 관계대수와 관계해석 : 이항 관계 연산

1. 이항관계 연산 1) 조인 연산 관계 대수에서 조인연산의 기본 형태는 우선 아래와 같다. R와 S라는 테이블의 카티션곱을 Q라고할 때 에서 join condition은 R과 S에 속하는 애트리뷰트들 간의 관계 조건을 나타낸 것인데 그러한 join 조건을 만족하는 Q만을 나타낸 것을 의미한다. 예를 들어 Mgr_ssn은 부서에서 부서장의 번호를 나타낸 것이고 Ssn은 직원의 번호를 나타낸 것인데 Mgr_ssn즉 부서장을 나타내는 번호를 가진 직원의 이름을 알려고한다. 위와 같은 join 조건으로 부서와 직원 테이블의 카티션곱이 이루어지고 join조건을 만족하는 투플만 남게 된다. 그리고 프로젝트 연산을 통해 Fanem, Lname 애트리뷰트 행만 추출하면 부서장을 나타내는 번호를 가진 직원의 이름을 알..

scanf_s와 동적할당

1. scanf_s의 사용법 1) scanf_s는 크기를 지정한 byte를 저장시킨다. scanf_s("%s", s1, 10); 위 방식과 같이 scanf와 동일하지만 3번 째 매개변수가 있다. 이것은 기존의 scanf의 단점을 보완한 것으로 제한된 크기를 리턴하는 것이 scanf_s이다. 3번째 매개변수는 byte단위의 크기 값인데 10byte의 크기를 무조건 반환한다. 사용자가 char s1[100]의 값 s1에 문자열을 저장할건데 ※ 9자리의 문자열 + '\0'를 반환한다. 경우1) 10보다 작은 5byte 문자열을 입력하면 5byte+4개의 null+'\0' 이렇게 총 10자리를 반환한다. 경우2) 9보다 큰 즉 10자리 이상을 입력하면 그 입력은 무시된다. 2) scanf_s는 %s와 %s가 아..

잡지식 2021.11.02

4. Js 동기, 비동기 처리 : setState 의 문제점 및 해결

0. 헷갈릴 내용 정리 class ClassA { name = 'kim'; obj = { name :'Lee', p : this.name, f: function() { console.log(this.name); // Lee console.log(this.p); // kim } } } var c1 = new ClassA(); c1.obj.f(); 클래스를 선언하고 클래스 안에서 프로퍼티로 obj를 선언하였다. 헷갈릴 내용이 이 obj 안에서 this 사용이다. 객체가 만들어지는 과정은 위 전역 코드가 '평가'되어서 객체 리터럴이 전역 코드 안에 일종의 동륵이 되는데 이때 객체의 프로퍼티들의 값을 하나하나 넣게 된다. 먼저 name: 'Lee'를 저장하고 p : this.name을 저장하려고하는데 이때 th..

4-1. 동기처리와 비동기 처리

1. 배경 지식 비동기 프로그램을 정리하기전에 base가 되는 개념은 js 코드의 '평가'와 '실행'과 실행 컨텍스트 스택의 개념을 알아야함.. 2. 동기 처리의 개념 VScode에서 .html 코드를 작성하고 이를 웹브라우저에서 실행하면 웹브라우저안에 있는 js 엔진이 .html 파일 안에 스크립트 태그로 작성된 js 코드를 실행하게 된다. 자바스크립트 엔진은 js의 소스코드를 '평가'와 '실행'을 수행한다. (실행 컨텍스트는 js엔진에 의해 시행되는 것임) 모든 js엔진은 하나의 실행 컨텍스트 스택을 가진다. 따라서 한 번에 하나의 테스크만 처리하는 싱글 스레드로 동작한다. sleep 메소드는 동기식으로 처리하는 메소드인데 sleep(func, 3000); Calc(); 위 코드는 3초 동안 기다렸다..

JavaScript 2021.10.31

7-1. 관계대수와 관계해석 : 단항 관계 연산(SELECT, PROECT), 집합 이론

1. 실렉트(SELECT) 연산 ● 실렉트 연산 실렉트 연산이란 단항 연산자로 하나의 릴레이션에만 적용된다. 더욱이 실렉터는 각 투플에 개별적으로 적용된다. 하나의 릴레이션에서 을 만족하는 투플들만 걸러내는 연산으로 실렉트는 릴레이션을 두 집합으로 수평분할 한다고 말할 수 있다. (조건을 만족하는 투플들, 조건을 만족하지 않는 투플들) 아래 예시를 보자. 위 예시는 이 Dno = AND Salary > 25,000이 된다. 부서 번호가 4이고 동시에 급여가 25,000이상인 투플들만 걸러내라는 의미가 된다. 비교 연산자는 아래 중 하나이다. 실렉트 연산의 결과 릴레이션의 차수(=애트리뷰트의 개수)는 원래 릴레이션 R의 차수와 같다. 실렉트 연산은 아래 성질을 만족한다. 2. 프로젝트(PROJECT) 연산..