분류 전체보기(619)
-
데이터베이스(12), 뷰와 시스템 카탈로그
뷰와 시스템 카탈로그 1. 뷰 1) 뷰의 개념 뷰는 기존 릴레이션(실제 릴레이션)에 대한 SELECT 문으로 정의된다. 동적인 창의 의미는 시간에 따라 달라지는 것을 볼 수 있다는 것을 의미한다. 어느 시점에 실제 릴레이션을 select해서 뷰를 사용한다. 뷰 3은 기본 릴레이션2와 3을 사용했다. 즉, 여러 릴레이션을 가지고 정의할 수 있다. 뷰 또한 다른 뷰를 정의할 때 사용될 수 있다. with check option은 선택적으로 올 수 있다. 두 개의 릴레이션을 조인할 때 이름이 동일하면 이를 명시해야한다. 예시 1 예시 2 뷰를 질의에서 사용하면 뷰의 접근 권한을 검사한 뒤, 기본 릴레이션에 대한 동등한 질의로 변환한다. 2) 뷰의 장점 (1) 복잡한 질의를 간단하게 표현 가능 (2) 데이터의 ..
2023.01.31 -
풀스택 서비스 네트워킹(11), Wrapup
Wrapup 실질적으로 api를 제공하는 입장에서 클라이언트에게 부담을 줄여주기 위해 HTTP/1.1을 사용하는 경우가 많다. ZMQ는 실질적으로 서버가 존재해야했다. WebRTC도 마찬가지로 서버가 존재했다. P2P 통신이지만 STUB이나 중간에 서버가 존재하게 된다. HTTP/2는 다중화를 통해 HoL 문제를 해결했다. 서버 부하의 입장에서 보더라도 HTTP/1.1은 HoL을 피하기 위해서 여러 TCP 세션을 만들었는데, 이를 통해 조금이나마 멀티플렉싱을 시도했지만 서버 부하가 늘어났다. 또한 이를 통해 보안을 강조하고자 했다. gRPC는 HTTP/2를 사용하는 어플리케이션이다. 함수 호출방식이다. restful API는 사전지식없이 url을 보내는 식으로 진행했지만 gRPC는 사전지식이 필요하다. ..
2023.01.30 -
마이리폼(1), DB 설계와 API 설계
마이 리폼 시작기 기존에 활동하던 UMC에서 프로젝트를 시작했다. UMC에서 방학 중에 진행하는 프로젝트는 같은 지부에 있는 사람들과 함께 어플을 개발하는 식으로 진행된다. 여러가지 아이템 중 '마이 리폼'이라는 서비스가 가장 타켓팅이 잘 되어있다고 느껴서 매력적으로 다가와서 이를 지원하고 함께 프로젝트를 진행하게 됐다. 나는 일정이 있어서 팀 회의에 참석하지는 못했지만 팀 회의 다음날까지 파트장을 구해야했기에 다음날 바로 파트장 선발을 위한 회의를 진행했다. 파트장에 지원하는 분이 없어서 파트장은 제비뽑기로 선발되었다. 사실 파트장에 지원할까 했지만 지금 알바를 빡세게 하고 있기도 하고 우테코 5기에 최종합격돼서 조만간 바빠질 것으로 생각돼서 지원을 못했다. ㅠㅠ 파트 분담 어쨋든 그러고 며칠 뒤 역할..
2023.01.19 -
데이터베이스(11), 함수적 종속성과 정규화
함수적 종속성 부록 Closure test 위첨자로 +를 붙여서 이를 사용한다. Y는 어트리뷰트 집합을 의미한다. Closure: 어트리뷰트들의 집합이 결정할 수 있는 모든 어트리뷰트를 모아놓은 것 Closure를 구하는 방법 1. 처음에는 Y+ = Y로 둔다. ex) Y = {C, D} => Y+ = {C, D} 2. Y+에 포함된 X가 다른 어트리뷰트를 결정지으면 이를 Y+에 포함시킨다. ex) X E Y+, X -> A => Y+에 A를 포함 예 요구사항에 따라 ABCD를 ABC와 AD로 분해한다. 이때 ABC와 AD의 함수적종속성을 알아야한다. ABC의 함수적 종속성: AB -> C AD의 함수적 종속성: D -> A 분해된 릴레이션에서는 C -> D의 함수적 종속성이 사라졌다. 또한 원래 있던 ..
2022.12.25 -
데이터베이스(10), 릴레이션 정규화
릴레이션 정규화 1. 정규화 개요 원래의 릴레이션에는 중복이 있기에 이를 작은 릴레이션으로 분할한다. 이때 함수적 종속성을 사용한다. 좋은 관계 데이터베이스 스키마를 설계하는 목적 정보가 중복되면 갱신이상이라는 주요한 문제가 발생한다. 어떤 시스템을 개발할 때에는 정확하게 구현하는 것부터 시작해서 퍼포먼스를 고려해야한다. 데이터 베이스 설계에서도 기능을 요구사항대로 구현할 수 있는지 따지고, 그 뒤 성능에 대해 고려한다. 갱신 이상(update anomaly) (1) 수정 이상(modification anomaly) (2) 삽입 이상(insertion anomaly) (3) 삭제 이상(deletion anomaly) 회사의 방침이 바뀌어서 부서가 3개나 1개만 속할 수 있다고 하면 스키마를 바꿔야한다. ..
2022.12.20 -
운영체제(12), I/O Systems
I/O Systems I/O 디바이스의 일반적인 동작 1. Computer System Operation 1) I/O operation I/O 요청이 오면 이를 수행하고, 이를 모두 수행하면 인터럽트를 보내서 수행이 끝났다는 것을 전달한다. I/O컨트롤러도 작은 컴퓨터이기에 CPU가 IR에 명령어를 적재하고, DR에 데이터를 적재하면 이후 I/O가 명령어를 수행한다. CPU가 주기적으로 체크하면서 읽어오는 것을 폴링이라 한다. 실제로 I/O 디바이스가 수행한 결과를 CPU에 전달하는데 이 크기가 작으면 CPU 레지스터로 I/O가 전달하는데 이를 programmed I/O라고 한다. 아니면 디스크와 같이 CPU에 알려줄 수 없는 경우에는 DMA를 사용한다. CPU가 명령을 내리지 않은 상태에서 인터럽트가 ..
2022.12.19