국민대학교에서 "오라클로 배우는 데이터베이스 개론과 실습(2판)" 을 이용한 신인수 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 1. 관계 데이터 모델의 개념 릴레이션 릴레이션(relation) : 행과 열로 구성된 테이블 관계(relationship) => 1. 릴레이션 내에서 생성되는 관계 : 릴레이션 내 데이터들의 관계 (각각의 열(=집합) 에서 원소 한 개씩을 선택하여 하나의 행이 만들어진 것으로 이 원소들이 관계를 맺고 있음) => 2. 릴레이션 간에 생성되는 관계 : 릴레이션 간의 관계 릴레이션 스키마와 인스턴스 스키마의 요소 속성(attribute) : 릴레이션 스키마의 열 도메인(domain) : 속성이 가질 수 있는 값의 집합 (가질 수 있는 값의 범위 등) 차수(degree..
국민대학교에서 "오라클로 배우는 데이터베이스 개론과 실습(2판)" 을 이용한 신인수 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 1. 데이터베이스와 데이터베이스 시스템 1. 데이터, 정보, 지식 데이터 : 관찰의 결과로 나타난 정량적 혹은 정상적인 실제 값 정보 : 데이터에 의미를 부여한 것 지식 : 사물이나 현상에 대한 이해 2. 일상생활의 데이터베이스 데이터베이스 : 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행함 ⇒ 변경이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업을 말함 통합된 데이터(integrated data) : 데이..
최근에 Co-Code라는 코딩 교육 플랫폼 프로젝트를 시작하면서 백엔드를 맡게 되었습니다!! 가장 먼저 하게된건 서버 배포하기... 바로 시작하겠습니다 가장 먼저 EC2부터 생성해보았다!(제 블로그 AWS에 인스턴스 생성 실습이 있으니 참고하시면 될 것 같습니다) => Ubuntu를 사용했음!! (+ 프리티어) 키페어도 만들어서 잘 보관해주고!! ssh -i "pem 파일 이름" ubuntu@ec2-"퍼블릭 ip 주소".ap-northeast-2.compute.amazonaws.com 이제 작업중인 환경에서 (저는 vscode를 사용하기 때문에 vscode 터미널을 이용했음) pem 파일 위치로 이동 후 위의 명령어를 입력하여 EC2 서버로 접속한다 그런데Permissions for 'key.pe..
윈도우에서 vscode를 사용하여 개발중인데터미널에서 EC2 서버(ubuntu)에 접속하려고 명령어를 쳤는데....!!!! Permissions for 'key.pem' are too open에러가 발생....😫 정말 2시간정도 구글링을 한거 같은데 우선 발생 원인은 윈도우에서 ubuntu EC2로 연결할 시에 pem파일의권한이 너무 높게 부여 되어 EC2에서 키를 거부하는 것이었다 => 윈도우에서 설정된 보안 권한이 자동으로 pem파일에 적용되어 설정된 모든 사용자가 pem의 권한을 갖기 때문 해결 방법은 2시간 동안 찾은 거치고는 꽤 간단..? 했음 1. pem 파일에 마우스 오른쪽 버튼을 눌러 속성에 들어간 후 보안탭에서 고급을 클릭 2. 상속 사용 안함을 클릭("이 개체에서 상속된 사..
state React에서의 state는 React 컴포넌트의 상태를 의미한다 => 리액트 Component의 변경 가능한 데이터 (state는 개발자가 정의해서 사용하며 JavaScript 객체이다) 렌더링이나 데이터 흐름에 사용되는 값만 state에 포함시켜야 함! => state가 변경될 경우 component가 재렌더링되기 때문에 렌더링과 데이터 흐름 관련없는 값을 포함하면 불필요한 경우에 component가 다시 렌더링되어 성능을 저하시킬 수 있기 때문 (그렇지 않은 값은 컴포넌트의 인스턴스 필드로 정의하면 됨) state는 엄밀히 말하면 수정이 가능하긴 하지만 직접 수정 할 수 없다 (하면 안된다) Hooks 리액트 Component에는 Function Component와 Class Compon..
Components 리액트는 Component-Based라는 중요한 특징이 있다는 것을 배웠다 => 모든 페이지가 컴포넌트로 구성되어 있고 하나의 컴포너트는 또 다른 여러개의 컴포넌트의 조합으로 구성될 수 있다 이렇게 하나의 컴포넌트를 반복적으로 사용함으로써 전체 코드의 양을 줄일 수 있어서 자연스레 개발 시간과 유지보수 비용도 줄일 수 있다! React component는 JavaScript의 함수와 같은 역할을 한다고 생각하면 되는데 입력과 출력값이 다르다 React Component에서 입력은 props이고 출력은 React element이다! => 어떤한 속성들을 입력받아 그에 맞는 리액트 엘리먼트를 생성하여 리턴해주는 것이다 (element는 자바스크립트 객체 형태로 존재하면 화면에 보이는걸 기..
react elements Elements의 정의 리액트의 엘리먼트는 리액트 앱을 구성하는 요소를 의미한다 리액트 공식 홈페이지에서는 Elements are the smallest building blocks of React apps 라고 정의한다 => 리액트 앱을 구성하는 가장 작은 블록들 실제 브라우저의 DOM에 존재하는 엘리먼트는 DOM 엘리먼트가 되는 것이고 React의 Virtual DOM에 존재하는 엘리먼트가 React 엘리먼트가 되는 것이다 => 결국 React 엘리먼트는 DOM 엘리먼트의 가상 표현이라고 볼 수 있다 (DOM 엘리먼트는 React 엘리먼트에 비해 많은 정보를 담고 있기 때문에 상대적으로 크고 무겁다!) React Elements는 화면에서 보이는 것들을 기술한다 => 엘리먼..
A syntax extension to JavaScript => 자바스크립트의 확장 문법 JSX란 JavaScript + XML / HTML 📌JSX코드 1 const element = Hello, world!; h1 태그로 둘러싸인 html을 element 변수에 저장시킴 JSX는 내부적으로 XML, HTML 코드를 JavaScript로 변환하는 과정을 거치게됨 => JSX로 코드를 작성해도 최종적으로는 JavaScript 코드로 나옴 이 변환하는 역할을 React의 createElement 함수가 해줌 React.createElement()의 결과로 element 객체가 생성됨 createElement 의 파라미터로는 React.createElement( type, [props], [...childr..
리액트의 장점 빠른 업데이트 & 렌더링 속도 여기서 말하는 업데이트는 웹 사이트를 탐색할 때 화면의 내용이 바뀌는걸 의미함! => 메뉴에서 마이페이지를 선택했을 때 현재 보고있는 화면에서 마이페이지 화면으로 전환되는걸 생각하면 됨 리액트는 빠른 업데이트를 위해 내부적으로 Virtual DOM을 사용함 Virtual DOM은 말 그대로 가상의 DOM임 📌 DOM이란 Document Of Model로 하나의 웹사이트를 정의하는 객체이다 (= 하나의 웹사이트 정보를 모두 담고있는 큰 그릇) Virtual DOM은 웹페이지와 실제 DOM 사이에서 중간 매개체 역할을 함 일반적으로 사용자와 상호작용을 하는 웹페이와 같은 경우 화면의 업데이트가 수시로 이뤄짐 => 화면이 업데이트 된다는 말은 곧 DOM이 수정된다는..
데이터 조작 데이터 삽입 1. 완전한 행 삽입 이 방법은 코딩을 짧게 해도 된다는 장점이 있는 반면 데이터를 삽입하는 값의 순서가 변경될 경우 테이블이 망가질 수 있다는 위험이 있다 INSERT INTO 테이블명 VALUES (값1, 값2, 값3); 2. 열 이름과 함께 완전한 행 삽입 INSERT INTO 테이블명(열 이름1, 열 이름2, 열 이름3) VALUES (값1, 값2, 값3); 3. 부분 행 삽입 INSERT INTO 테이블명(열 이름1, 열 이름3) VALUES(값1, 값3); 4. SQL 문장 결과를 삽입 INSERT INTO 테이블명1(열 이름1, 열 이름2, 열 이름3) SELECT 열 이름1, 열 이름2, 열 이름3 FROM 테이블명2 WHERE 조건절; 1. CUST_PARTY 테..
하위 쿼리의 이해 FROM절의 하위 쿼리 1. 조건에 맞는 대상자 선정 후 요약할 때 이 방법은 조건에 맞는 대상자를 선정한 후 데이터를 요약할 때 많이 사용된다 => 테이블 별칭을 주지 않으면 에러가 발생하기 때문에 하위 쿼리를 작성한 후 테이블 별칭을 꼭 주어야 한다 SELECT 열 이름1, 열 이름2 FROM (SELECT * FROM 테이블명 WHERE 조건절) (AS) 별칭 WHERE 조건절; 2. 테이블 조인을 할 때 테이블 조인을 할 때 필요한 정보만 조인할 수 있도록 고안된 방법이다 SELECT 별칭1.열 이름1, 별칭2.열 이름2 FROM 테이블명1 (AS) 별칭1 LEFT OUTER JOIN (SELECT 열 이름1, 열 이름2 FROM 테이블명 2 WHERE 조건절) (AS) 별칭2 ..
열(Column) 합치기 내부 조인 1. FROM/WHERE를 사용 내부 조인은 두 테이블의 키값이 매칭될 경우 선택된 모든 열을 나타냄 SELECT 테이블명1.열 이름1, 테이블명2.열 이름2 FROM 테이블명1, 테이블명2 WHERE 테이블명1.KEY=테이블명2.KEY; 2. FROM/WHERE와 별칭을 사용 오라클을 포함한 몇몇 DBMS는 테이블명 별칭을 줄 때 AS 키워드가 지원되지 않으므로 AS를 빼고 테이블 별칭을 설정해야함! SELECT 별칭1.열 이름1, 별칭2.열 이름2 FROM 테이블명1(AS) 별칭1, 테이블명2(AS) 별칭2 WHERE 별칭1.KEY=별칭2.KEY; 3. INNER JOIN을 사용 INNER JOIN을 사용하여 두 테이블을 합칠 수 있다 => ON 뒤에 두 테이블의 ..