본문 바로가기

CS 과목(CS科目)

create database vs create schema CREATE DATABASE와 CREATE SCHEMA의 차이점은 데이터베이스 시스템에 따라 다르게 적용됩니다.1️⃣ 일반적인 차이점구분 CREATE DATABASE vs CREATE SCHEMA개념물리적인 데이터베이스 생성논리적인 네임스페이스(스키마) 생성사용 목적새로운 데이터베이스를 만들 때기존 데이터베이스 내에서 논리적인 그룹을 만들 때적용 범위독립적인 데이터베이스 단위하나의 데이터베이스 내에서 관리권한새로운 데이터베이스를 만들 수 있는 권한 필요현재 사용 중인 데이터베이스 내에서 사용 가H2 데이터베이스에서는?H2에서는 CREATE DATABASE 명령을 지원하지 않습니다.스키마를 생성하여 데이터베이스처럼 사용CREATE SCHEMA company;SET SCHEMA company;CREATE T.. 더보기
key(Feat. superKey, candidate key, foreign key) super key : relation에서 tuple을 unique하게 식별할 수 있는 attribute SET . candidate key : super key 중 어느 한 attribute라도 제거하면 unique하게 tuple을 식별할 수 있는 attribute set. primary key : candidate key 중 실제로 선택된 key. unique key(alternative key) : primary key가 아닌 candidate key.foreign key : 다른 relation의 Primary Key를 참조하는 attribute Set 더보기
RDBMS(Feat. 관계형 데이터베이스, relation, set, list etc) 관계형 DB, 즉 "Relational" DB의 Relation은 수학에서의 Relation에서 유래함Relation in Mathematics의 2가지 정의1] subset of Catesian Product2] set of tuples-> 위 내용을 아래에서 자세히 알아 보자.  setset : 중복 없는 elements를 가지는 collection이며, 순서는 중요하지 않다. e.g.{1,3,4,5} == {1,5,4,3}Cartesian Product Catesian Procut의 수학적 표기 : X_1 x  X_2 x .... X_n = {(x_1,x_2,...x_n) | x_1 -> Set X_1,Set X_2,Set X_n, 즉 n개의 Set에서 하나씩의 elements를 골라 만들 수 있는.. 더보기
database 기본 개념(Feat. data models, conceptual level, logical level, physical level, three schema architecture etc) database system (줄여서 database라고도 부름)= database(순수 데이터가 저장된 곳) + DBMS + 연관된 applications data model : DB 구조(structure)를 추상화하여 표현하는 것 *DB 구조 : 데이터 유형, 테이터 관계(relationship), 제약 사항(constraints) 등등data model의 분류(catagolizing) : 크게 3가지로 분류 가능1] conceptual data models : 일반 사용자에게 DB 구조 이해시키기위한 수단-> 비즈니스 요구 사항을 추상화하여 기술할 때 사용*ER 다이어그램 : conceptual data models의 종류 중 하나.  2] logical data models : 개발자들이 가장 .. 더보기
internal schema Internal Schema는 데이터가 실제 물리적으로 저장되는 방식을 정의하는 것이므로, SQL 쿼리보다는 데이터베이스 내부의 저장 구조를 최적화하는 설정 코드로 표현됩니다.아래 예제에서는 MySQL, PostgreSQL, MongoDB 등에서 Internal Schema를 구현하는 방법을 보여드릴게요.1️⃣ MySQL에서 Internal Schema 적용 예시MySQL에서는 스토리지 엔진, 인덱스 구조, 파티셔닝을 설정하여 Internal Schema를 구성할 수 있습니다.✅ B-Tree 인덱스 적용 (클러스터링 인덱스)sql복사편집CREATE TABLE Customers ( customer_id INT PRIMARY KEY, name VARCHAR(100), address VARCHAR(255), .. 더보기
4xx클라이언트 오류, 5xx 서버 오류 4xx 오류와 5xx 오류의 차이점4xx 오류 : 재요청을 하더라도 정상 처리 영구히 불가능-> 클라이언트에서 잘못된 요청을 한 것이기에 아무리 재요청을 한다고 하더라도 처리가 불가(클라이언트에서 수정 후 다시 재요청을 해야 한다)5xx 오류 : 재요청을 했을 때 정상 처리가 될 가능성이 있다.-> 클라이언트에서 요청을 보냈는데 그때 하필 DB 서버에서 장애가 발생을 하였다. 이때에는 정상 처리가 불가능하다. 그러나 시간이 지나 DB 서버를 원상 복구된 후에 재요청을 하면 정상 처리가 된다.  서버에서는 왠만하면 5xx 코드를 클라이언트에게 전달하도록 코딩하면 x (강의 7:50)-> 진짜로 서버에서 문제가 터졌을 때에만 5xx를 던져야 한다. 예를 들어 클라이언트에서 API 스펙에 잘 맞추어 요청을 보.. 더보기
HTTP API 설계 예시(모든 개발자를 위한 HTTP 기본 지식,Feat PATCH vs PUT vs POST) 강의 4:50[수정] API의 HTTP 메서드는 되도록이면 PATCH를 사용PUT의 경우 기존 리소스를 아예 덮어 버리기 때문에 리소스의 항목 중 일부 항목에 대한 수정 정보를 넣지 않게 되면그 항목이 전부 날라가게 된다. 그러나 수정 중에서도 일부 수정이 아니라 전체 수정을 하는 경우에는 PUT을 사용하는 것이 더 적합예를 들어, 게시글 같은 경우에는 부분 수정이 아니라 대부분의 경우 전체 수정이기 때문이다. PATCH와 PUT 둘다 사용하기에는 애매한 상황에서는 POST를 사용!! PUT 등록과 POST 등록의 차이(강의 5분 55초)회원 등록 : /members -> POST-> 클라이언트는 회원의 리소스 위치를 모르고, 서버에서 회원 리소스를 등록하고 그 위치를 서버에서 생성회원 등록 : /mem.. 더보기
HTTP 메서드의 속성(FEAT. 캐싱) 실무에서는 GET, HEAD 정도만 캐싱을 한다. 왜냐면 GET은 URL만을 가지고 Key값으로 만들면 되는데, POST 등은 메시지 BODY 안의 내용까지 이용하여 키값을 만들어야 하기 때문이다. . 더보기