CS
-
DB - NOSQLCS/DB 2021. 2. 12. 19:47
NOSQL SQL 관계형 데이터베이스 에서 사용되며 '구조화 된 쿼리 언어(Structured Query Language)'의 약자이다. RDBMS(관계형 데이터베이스 관리 시스템)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 데이터는 정해진 데이터 스키마를 따라 테이블에 저장되고 관계를 통해 연결된 여러개의 테이블에 분산된다. 장점: 데이터의 무결성을 보장한다. 각 데이터를 중복 없이 한번만 저장한다. 단점: 데이터 스키마를 나중에 수정하기가 번거롭거나 불가능 할 수 있다. JOIN문이 많은 복잡한 쿼리가 만들어질 수 있어 성능에 문제가 생길 수 있다. NOSQL 스키마가 없고 관계가 없는 비 관계형 데이터베이스를 말한다. 레코드를 문서(documents)라고 부른다. 다른 구조의 데이터를 같..
-
DB - 스키마CS/DB 2021. 2. 12. 19:30
스키마 스키마 데이터베이스의 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. DBMS(데이터 베이스 관리 시스템)가 주어진 설정에 따라 스키마를 생성하며, 사용자가 자료를 저장, 조회, 삭제, 변경할 때는 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다. 스키마는 3층 구조(외부 스키마, 개념 스키마, 내부 스키마)로 되어있다. 외부 스키마 외부 스키마 = 서브 스키마 = 사용자 뷰 프로그래머나 사용자의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한다. 하나의 데이터에 여러개의 외부 스키마가 존재할 수 있다. 개념 스키마 개념 스키마 = 전체적인 뷰 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 ..
-
DB - ORMCS/DB 2021. 2. 11. 23:23
DB - ORM ORM Object-relational mapping. 객체-관계 매핑. 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. Object DB데이터 장점 객체 지향적 코드: SQL문이 아닌 클래스의 메소드를 통해 데이터베이스를 조작할 수 있어 개발자가 객체 모델만 이용해서 프로그래밍을 하는데 집중할 수 있게 한다. 재사용, 유지보수 용이성: 기존 객체와 독립적으로 작성되어있고, 객체로 작성되어 있어 재활용할 수 있다. DBMS에 대한 종속성 하락: 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하고, 객체의 자료형 타입까지 사용할 수 있기 때문에 RDBMS의 데이터 구조..
-
DB - 정규화CS/DB 2021. 2. 11. 23:04
DB - 정규화 정규화 관계형 데이터베이스에서 중복을 최소화하기 위해 데이터를 구조화 하는 작업. 이상 현상 발생 가능성을 줄이는 것이 목표이다. 정규형의 조건 무손실 조인을 보장해야 한다. (하나의 릴레이션을 분해하고 다시 조인했을 때 데이터 손실이 없어야 한다.) 함수적 종속성을 보존해야 한다. 이상현상 삽입 이상 테이블에 데이터를 삽입할 때 의도와는 상관없는 불필요한 값들을 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능한 경우. ex) 학번, 과목 동아리로 구성된 학생 테이블에서 새로운 동아리가 신설되고 아직 동아리원이 한 명도 없는 경우에 새로운 동아리를 등록하기 위해서는 학번, 이름값이 필요하다. 삭제 이상 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 경우...
-
DB - JoinCS/DB 2021. 2. 11. 21:57
DB - Join Join 2개의 테이블에 대해 연관된 튜플들을 결합해 새로운 릴레이션을 반환한다. Join은 크게 inner & outer Join 으로 구분된다. Join 속성: 연결 고리가 되는 공통 속성을 의미한다. Inner Join Join조건에 만족하는 결과만 조회한다. Equi Join Join 속성을 기준으로 '=' 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성한다. ex) SELECT t1.name FROM t1, t2 WHERE t1.id=t2.id Non-Equi Join Join 조건에 '=' 조건이 아닌 나머지 비교 연산자(BETWEEN, 등)를 사용하는 Join방법. ex) SELECT t1.name FROM t1, t2 WHERE t1.age > t2.age Out..
-
WEB - 웹과 통신CS/WEB 2021. 2. 10. 21:42
웹과 통신 웹의 동작 원리 웹 페이지 URL정보로 HTTP요청 메시지를 만든다. 입력한 URL주소를 DNS서버에서 조회하여 IP주소를 검색한다. 라우터를 통해 해당 서버의 게이트웨이까지 이동한다. ARP로 IP를 MAC주소로 변환한다. 대상 서버와 TCP 통신을 시도한다. 서버와 연결이 되면 HTTP프로토콜로 요청한 다음 이에 대한 응답 메시지를 생성한다. 만들어진 HTTP 응답 메시지는 온 방식 그대로 원래 컴퓨터로 전송한다. 도착한 HTTP 응답 메시지는 HTTP프로토콜을 사용하여 웹 페이지 데이터로 변환된다. 변환된 웹 페이지는 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 된다. CORS Cross Origin Resource Sharing. 현재 도메인과 다른 도메인으로 리소스가 요청되는 경..
-
Network - 캐시/쿠키/세션CS/Network 2021. 2. 10. 21:07
캐시/쿠키/세션 캐시 리소스 파일들의 임시 저장소. 같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하여 서버를 거치지 않아도 된다. 이전에 사용되었던 데이터는 다시 사용될 가능성이 높으므로 저장하여 페이지 로딩 속도를 개선한다. 쿠키/세션을 이용하는 이유 HTTP의 약점인 connetionless, stateless를 보완하기 위해서 사용한다. 계속 커넥션을 유지하지 않기 때문에 서버 리소스 낭비가 줄어드는 것은 큰 장점이지만, 통신할 때마다 새로 커넥션을 만들기 때문에 클라이언트 측면에서는 상태를 유지(인증 등)하기 위해 통신할 때마다 어떤 절차를 가져야 한다는 단점이 생긴다. 만약 쿠키와 세션이 없다면 어떤 페이지에서 다른 페이지로 넘어갈 때마다 인증을 다시 받아야 하는 것이다. 쿠키 클라이언트에..
-
Network - HTTPCS/Network 2021. 2. 10. 20:53
HTTP HTTP HyperText Transfer Protocol. 하이퍼 텍스트(html) 문서를 교환하기 위해 만들어진 protocol. 요청/응답 구조로 통신이 이루어 진다. stateless: 요청이 오면 그에 맞는 응답을 한 뿐 요청/응답끼리 연결되어 있지 않다. 이전의 요청과 응답에 대한 데이터가 필요할 때는 쿠키나 세션을 사용한다. 암호화 과정이 없기 때문에 보안에 취약하다. HTTPS HTTP + SSL(암호화) 기존의 HTTP는 TCP와 직접 통신했지만, HTTPS는 HTTP와 TCP 사이에 SSL이 끼워져 있는 것이다. HTTP는 SSL과 통신하고 SSL는 TCP와 통신하게 된다. 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 공개키 암호화를 지원한다. 안전하게 데이터를 주고..