썸네일 [그림으로 공부하는 IT 인프라 구조] 3-4장 3장. 3계층형 시스템을 살펴보자 1. 프로세스와 스레드 프로세스 및 스레드는 프로그램 실행 파일 자체가 아니라 OS상에서 실행돼서 어느 정도 독립성을 가지고 동작하는 것. 프로세스 및 스레드가 활동하려면 메모리 공간이 필요한데, 이것은 커널에 의해 메모리상에 확보된다. 프로세스 vs 스레드 프로세스는 전용 메모리 공간을 이용해서 동작하는 반면, 스레드는 다른 스레드와 메모리 공간을 공유하고 있는 운명 공동체이다. 프로세스는 개별 처리 독립성이 높은 반면, 독자 메모리 공간을 가지기 때문에 생성 시 CPU 부하가 스레드와 비교해서 높아진다. 2. OS 커널 OS에서 커널은 심장이자 뇌이며 척수이다. 커널은 다양한 역할을 갖지만, 가장 중요한 것은 뒤에서 무슨 일이 벌어지는지 은폐하면서도 편리한 인터페이스..
썸네일 [그림으로 공부하는 IT 인프라 구조] 1-2장 1. 인프라 아키텍처를 살펴보자 인프라란 무엇일까? 기반이 되는 것. 인프라 아키텍처? 구조. 집약형과 분할형 아키텍처 집약형 이전: 대형 컴퓨터를 이용하여 모든 업무 처리 주요 업무를 모두 한대로 처리: 다중화 등을 통해 고장에도 멈추지 않는 방법 고안 복수의 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리 구성이 간단. 리소스 관리나 이중화에 의해 안정성이 높고 고성능 대형 컴퓨터는 도입 비용 및 유지 비용이 크다. + 확장성의 한계 분할형 여러 대의 컴퓨터를 조합해서 하나의 시스템 구축 낮은 비용으로 시스템 구축 가능 서버 대수를 늘릴 수 있다. -> 확장성이 높다. 대수가 늘어나면 관리 구조 복잡 문제 발생시 영향 범위를 최소화하기 위한 검토 필요 물리 서버와 논리 서버의 차이 분할형..
썸네일 [SQL 레벨업] 7-8장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 7장 서브쿼리 21강. 서브쿼리가 일으키는 폐해 1. 서브쿼리의 문제점 서브쿼리의 성능적 문제는 실체적인 데이터를 저장하고 있지 않다는 점에서 기인 연산 비용 추가 서브쿼리에 접근할 때마다 SELECT 구문을 실행해서 데이터를 만들어야. → 구문 실행에 발생하는 비용 추가. (복잡할수록 실행 비용 높아짐) 데이터 I/O 비용 발생 연산 결과의 데이터양이 큰 경우 DBMS가 저장소에 있는 파일을 쓸 때도 존재. (ex. Microsoft SQL Server에서 서브쿼리 결과 tempdb에 저장) 이는 TEMP 탈락 현상의 일종. → 저장..
썸네일 [SQL 레벨업] 5 - 6장
썸네일 [SQL 레벨업] 3-4장 3장. SQL의 조건 분기 | 구문에서 식으로 Union을 사용한 쓸데없이 긴 표현 UNION은 외부적으로 하나의 SQL 구문을 실행하는 것처럼 보이지만, 내부적으로는 여러 개의 SELECT 구문을 실행하는 실행 계획으로 해석된다. -> 따라서 테이블에 접근하는 횟수가 많아지고, I/O 비용이 크게 증가한다. UNION을 사용해도 좋을지 여부는 신중히 검토해야한다. SELECT item_name, year, price_tax_ex AS price FROM Items WHERE year = 2002; 쓸데없이 길다: 거의 같은 쿼리를 두 번이나 실행 성능적으로 문제가 된다. UNION을 사용 했을 때의 실행 계획에서 Item 테이블에 2회 접근한다. -> TABLE ACCESS FULL(index없이 테이..
썸네일 [SQL 레벨업] 2장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 2장. SQL기초 | 자연 언어를 사용하는 것처럼 SELECT 구문 데이터베이스의 핵심은 검색 이다. 검색은 다른 말로 질의(query) 또는 추출(retrieve) 라고 부른다. 검색을 위해 사용하는 SQL구문을 SELECT 구문이라고 부른다. 문자 그대로 선택 한다는 의미! SELECT 구와 FROM 구 기본적으로 SELECT 구와 FROM 구로 이루어진다. FROM구는 반드시 입력하야 하는 것은 아니지만, 테이블에서 데이터를 검색하는 경우에는 반드시 입력해야 한다. (Oracle의 경우 반드시 FROM 구를 입력해야 한다.) na..
썸네일 [SQL 레벨업] 1장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 1. DBMS 아키텍처 | 공짜 밥은 존재할까? DBMS 아키텍처 개요 쿼리 평가 엔진 계획을 세우고 실행하는 DBMS의 핵심 기능 담당 버퍼 매니저 버퍼 (메모리)영역을 관리 디스크 용량 매니저 어디에 어떻게 데이터 저장할지, 데이터의 읽고 쓰기를 제어 트랜잭션 매니저와 락 매니저 트랜잭션의 정합성 유지 및 실행. 필요시 데이터에 락을 걸어 다른 요청 대기 리커버리 매니저 데이터 정기적 백업, 문제시 복구 성능의 관점에서 가장 중요한 것은 쿼리 평가 엔진 (혹은 이 엔진이 세우는 실행 계획) 버퍼 매니저는 성능과 밀접한 관련을 가짐...
썸네일 [데이터베이스 첫걸음] 9-10장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 9장. 백업과 복구 - 장애에 대비하는 구조 트랜잭션의 특성 중 Durability(지속성)은 시스템이 정상일 때뿐만 아니라 비정상적 종료 등의 시스템 장애에 견딜 수 있다는 것을 의미 데이터베이스의 쓰기는 기억장치의 임의 장소에 무작위로 액세스해서 쓰기를 수행 → 동기화 쓰기는 느려서 성능 면에서 실용적이지 X DBMS의 3가지 구조 지속성과 성능의 양립을 위한 DBMS 구조 로그 선행 쓰기 (WAL. Write Ahead Log) 데이터베이스의 데이터 파일 변경을 직접 수행하지 않고 우선 로그 변경 내용을 기술한 로그 레코드를 작성..
썸네일 [데이터베이스 첫걸음] 8장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 8장. 테이블 설계의 기초 - 테이블 개념과 정규형 관계형 데이터베이스에서는 전체 데이터가 테이블에 포함되고 저장됨. → 테이블을 사용하여 데이터를 적절히 다루는 것이 중요 테이블 설계 규칙 테이블 열과 행으로 구성된 데이터 구조 고유한 기본키를 가지는 공통 속성을 가진 요소들의 집합 현실 세계의 개념이나 집합을 나타낸 것 공통점을 가진 사물의 집합을 나타내야 함 테이블명은 반드시 복수형이나 집합 명사로 표현해야 함 관련성이 없는 무작위 집합을 생성해서는 안됨 가장 상위의 개념 집합으로 정리하기 열은 개체의 속성(Attribute) →..
썸네일 [데이터베이스 첫걸음] 7장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 7장 트랜잭션과 동시성 제어 - 복수의 쿼리 통합 트랜잭션이란? 쿼리를 처리하는 단위. 한 번에 실행되어야 하는 복수의 쿼리를 한 단위로 묶은 것 트랜젝션 (ACID 특성) Atomicity(원자성) 트랜잭션이 전부 성공하거나 전부 실패하여야 함 Consistency(일관성) 트랜잭션이 성공적으로 실행 완료되면 언제나 일관성 있는 데이터베이스 상태를 유지해야 함 일관성 유지를 위해 데이터베이스 오브젝트에 각종 정합성 제약(유니크 등) 사용 가능 Isolation(고립성/격리성) 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들 수 ..
썸네일 [데이터베이스 첫걸음] 6장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 6장 SQL문의 기본 SELECT문의 기본 SQL은 주로 DBMS에 저장된 테이블을 조작하기 위해 사용 데이터베이스가 여러개 존재할 수 있기 때문에 테이블을 보기 위해서는 데이터베이스를 선택해야 함 데이터베이스 목록 보기 mysql> show databases; 데이터베이스 사용하기 mysql> use 데이터베이스명; 테이블 목록 보기 mysql> show tables; WHERE 테이블에서 열의 수는 테이블을 작성(정의)했을때 결정되어 이후 명시적으로 변경하지 않는 한 늘어나지 X. but 행수는 제한이 X. → SELECT문 줄이고..
썸네일 [데이터베이스 첫걸음] 5장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 5장 DBMS를 조작할 때 필요한 기본 지식 MySQL 설치 생략 MySQL 과 커넥션, 그리고 전화걸기 커넥션(Connection) 로그인을 통해 프롬프트가 표시된 것 → 사용자와 MySQL이 접속되었다. (연결되었다.) 커넥션과 전화 커넥션은 로그인에 실패하면 전화의 잘못된 번호 와 같은 안내를 받는다. 전화와는 달리 1대1이 아닌 복수의 사용자가 동시에 커넥션 할 수 있다. 전화를 끊는 것은 로그오프 세션(Session) 커넥션의 시작과 종료 사이에 DBMS와 다양한 교환을 진행하는데, 그 교환의 시작과 종료까지의 단위 기본적으로..