본문 바로가기

독서25

논리적인 SQL 개념 용어 서브쿼리 위치에 따른 SQL 용어서브쿼리란 쿼리 안의 보조쿼리를 가르키는 용어다. 메인쿼리를 기준으로 내부에 서브쿼리가 어디에 위치하는지에 따라 부르는 용어가 달라진다.SELECT (SELECT ... FROM ...) -> SELECT 절 : 스칼라 서브쿼리FROM (SELECT ... FROM ...) -> FROM 절 : 인라인 뷰WHERE 컬럼명 IN (SELECT ... FROM ...) -> WHERE절 : 중첩 서브쿼리스칼라 서브쿼리서브쿼리가 반환하는 결과가 단일 값을 가지는 경우이다. 즉, 결과 값이 항상 1행 1열의 구조로 출력되어야 한다.메인쿼리 SELECT 절 목록이나 WHERE에 주로 사용된다.출력되는 데이터 건수가 1건이어야 하므로 집계함수가 자주 쓰인.. 2024. 1. 30.
물리 엔진과 오브젝트 용어 DB 엔진 용어1. 스토리지 엔진역할 : 스토리지엔진(InnoDB, MyISAM, Memory 등)은 사용자가 요청한 SQL로 DB에 저장된 디스크나 메모리에 필요한 데이터를 가져온다.선택 기준 : 데이터를 저장하는 방식에 따라 각각의 스토리지 엔진을 선택해서 사용한다.InnoDB : 데이터 일관성과 안정성이 중요한 OLTP(online transaction processing) 환경에서 사용. 일반적으로 온라인상의 트랜잭션 발생으로 데이터를 처리하는 OLTP 환경이 대다수이기 때문에 InnoDB를 자주 사용한다.MyISAM : 대량의 쓰기 트랜잭션이 발생할 때 사용Memory : 메모리 데이터를 로드해서 빠르게 데이터를 읽어야할 경우 사용2. MySQL 엔진역할 : 사용자가 요청한 SQL에 대한 문법검.. 2024. 1. 30.
오브젝트 : 객체지향 프로그래밍 협력, 객체, 클래스객체 지향이란 객체를 지향하는 것이다.대부분의 사람들이 객체지향 프로그램을 작성할 때 가장 먼저 고려하는 것은 어떤 클래스가 필요한지, 클래스 내부에 어떤 클래스의 속성과 메서드가 필요한지 고민한다.하지만 진정한 객체지향 패러다임의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있으므로 다음과 같은 것에 집중해야한다.어떤 클래스가 필요한지 고민하기 전에 어떤 객체가 필요한지 고민해야한다. 어떤 객체들이 어떠한 상태와 행동을 가지는지 먼저 결정해야한다.객체들이 어떻게 협력할지에 대해서 고민해야한다. 객체들의 모양과 윤곽이 잡히면 공통된 특성과 상태를 가진 객체을 타입으로 분류하고 이 타입을 기반으로 클래스를 구현해야한다.도메인의 구조를 따르는 프로그램 구조소프트웨어는 사용자가.. 2024. 1. 6.
15장. 구글 드라이브 설계 1단계. 문제 이해 및 설계 범위 확정기능적 요구사항파일 추가. 가장 쉬운 방법은 구글 드라이브 안으로 떨구는(drag-and-drop) 것이다.파일 다운로드여러 단말에 파일 동기화. 한 단말에서 파일을 추가하면 다른 단말에도 자동으로 동기화 되어야 한다.파일 갱신 이력 조회파일 공유파일이 편집되거나 삭제되거나 새롭게 공유되었을 때 알림 표시비-기능적 요구사항안정성 : 저장소 시스템에서 안정성은 아주 중요하다. 데이터 손실은 발생하면 안된다.빠른 동기화 속도네트워크 대역폭 : 제품이 네트워크 대역폭을 불필요하게 많이 소요한다면 사용자는 불편할 것이다.규모 확장성 : 이 시스템은 아주 많은 양의 트래픽도 처리 가능해야 한다.높은 가용성 : 일부 서버에 장애가 발생하거나, 느려지거나, 네트워크 일부가 끊겨도.. 2023. 12. 30.