본문 바로가기

728x90

Computer Science

(41)
네트워크 기초 1. 네트워크와 인터넷 개념 네트워크 기초 시리즈는 유튜버 '쉬운코드'의 네트워크 강의를 정리함https://youtu.be/oFKYzp6gGfc?si=pMc1aOUFQ_Y2y4qo IP address : 인터넷에 연결되기 위한 필요한 인터넷상의 주소모뎀(modem)네트워크 통신에 필요한 신호변환장치디지털 정보를 아날로그 신호로 변조(modulation)하여 송신하고, 수신된 아날로그 신호를 디지털 신호로 복조(demodulation)공유기(Home Router)여러 기기들이 인터넷에 연결될 수 있도록 하는 장치(LAN, wifi를 통해 기기들을 공유기에 연결)하나의 IP 주소로 동시에 여러기기들이 인터넷을 사용하게 하는 것이 가능.공유기에 연결된 기기들은 같은 네트워크 소속스위치(switch)같은 네트워크에 있는 기기들이 서로 통..
개인 프로젝트 - 노트북 VMware 포트포워딩 1. 집에 있는 안 쓰는 노트북을 개인 프로젝트 서버로 사용하기로 결정2. 리눅스 연습 겸 우분투로 서버 실행하고 싶지만 노트북 OS는 윈도우로 그대로 두고 싶어서 VMware 사용3.1 노트북으로 포트포워딩3.2 노트북으로 들어온 요청을 다시 노트북 윈도우에서 실행중인 VMware의 우분투 리눅스로 보내줘야함3.3 3.2의 VMware 포트포워딩 설정은 Vmnetcfg를 설치해서 진행4. 추가로 VMware의 우분투 리눅스 서버 방화벽(UFW) 설정에서 WAS가 사용하는 포트도 해제해줘야함  *포트 포워딩은 외부 아이피 : 포트번호와 내부 아이피 : 포트번호를 연결해주는 기능- 공인IP로 들어온 요청이 해당 IP에 연결된 전자기기 시스템 중 어느 곳으로 갈지 내부IP와 포트번호를 이용하여 미리 정해주는..
SQLP 기초 - 4. 인덱스 기본 사용법 인덱스를 사용할 때는 인덱스 컬럼을 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다.- 정상적으로 사용한다는 것은 인덱스의 리프 블록에서 스캔 시작 지점을 찾아 거기서부터 스캔하다가 중간에 멈추는 것(Range Scan)을 의미한다.- 인덱스를 full scan 하는 것은 인덱스를 제대로 사용하는 것이 아니다. 인덱스 컬럼을 가공하게 되면 full scan 방식으로 인덱스를 사용하기 때문에 좋지 않다. - 인덱스 컬럼을 가공하지 않았을 대는 INDEX RANGE SCAN을 사용한다. - 인덱스 컬럼 가공 시 인덱스를 사용하지 못하고 TABLE FULL SCAN 한다.  OR Expansion - 옵티마이저의 실행계획 선택 예시- or 조건을 union all 조건으로 바꾸는 방법- USE_CONCAT..
개인 블로그 프로젝트 - 1. 어떤 기능을 만들까? 매번 하다가 포기했던 개인 블로그 프로젝트를 다시 해보려고 한다.  그만두게 되었던 이유 분석과 앞으로 만들 블로그 계획을 간단히 잡고자 한다. 1. 실패했던 이유- 모르는 기술을 쓰는 계획을 세웠음. 예를 들어 나만 쓸 기능인데 로그인 기능을 내가 접해보지 않은 토큰 방식으로 한다든지..- 화면설계서나 기능설계를 하지 않고 생각만 하면서 프로그래밍을 해서 중구난방이 되다 보니 시간이 지나고 들어간 뒤에 어디서부터 해야 하는지 알 수가 없어 의욕이 떨어지게 됐음. 2. 개선해야 할 점- 내가 할 수 있는 간단한 기능부터 개발하고 클라우드 서비스를 통해 배포해볼 것.- WBS나 주석 등을 상세히 달아 사정이 생겨 한참 후에 들어왔어도 바로 작업을 이어갈 수 있게 환경을 만들어 둘 것.  구현할 기능1. 블..
SQLP 기초 - 3. 인덱스 구조 및 탐색 - 인덱스 탐색 과정은 수직적 탐색과 수평적 탐색 2단계로 이루어진다. - OLTP(Online Transaction Processing)은 소량 데이터를 주로 검색하므로 인덱스 튜닝으로 속도를 빠르게 하는 것이 중요하다. 인덱스 튜닝의 핵심 요소1. 인덱스 스캔 과정에서 발생하는 비효율 줄이는 것. 즉, 인덱스 스캔 효율화 튜닝2. 테이블 엑세스 회수 최소화. 인덱스 스캔 후 테이블 레코드를 엑세스할 때 랜덤 I/O를 사용하므로 랜덤 엑세스 최소화 튜닝- 랜덤 I/O를 줄여야 하는 것이 인덱스 튜닝의 핵심이다.  - B*Tree Index 구조(B = Balanced)- Root와 Branch 블록에 있는 각 레코드는 하위 블록에 대한 주소값을 갖는다.- Root와 Branch 블록에는 키값을 갖지 않..
SQLP 기초 - 2. 데이터 저장 구조 및 I/O 매커니즘 1. SQL이 느린 이유- SQL이 느린 이유는 디스크 I/O 때문이다.- OS 또는 I/O 서브시스템이 I/O를 처리하는 동안 프로세스는 잠을 잔다.- 프로세스는 생성(new) 이후 종료(terminated) 전까지 준비(ready)와 실행(running)과 대기(waiting) 상태를 반복한다.- 이러한 매커니즘은 하나의 프로세스만 CPU를 사용할 수 있기 때문에 필요하다.- DB 프로세스도 디스크에서 데이터를 읽어야 할 땐(디스크 I/O) CPU를 OS에 반환하고 waiting 상태에서 대기한다. 그러므로 일해야 할 프로세스가 대기를 하고 있으니 I/O가 많으면 DB 성능이 떨어진다. 2. 데이터베이스 저장 구조- 데이터베이스를 논리적 구조로 보면 테이블스페이스 - 세그먼트 - 엑스텐트 - 블록(오..
SQLP 기초 - 1. SQL 처리 과정 : 파싱, 최적화, 캐싱 1. SQL 파싱과 최적화- 파싱(parsing) : Syntax 체크(문법 체크) - Semantic 체크(의미 체크) - Shared Pool 체크(공유 메모리에 캐시 되어 있는지 체크) 과정, 최적화 이전 단계.- 최적화 : DBMS 내부에서 Optimizer가 각종 정보를 가지고 다양한 실행경로 중 효율적인 하나를 선택하는 단계.- 최적화 이후 로우 소스(실행가능한 코드 혹은 프로시저)를 생성한다. 2. Optimizer- 최적의 데이터 엑세스 경로를 선택해 주는 DBMS의 핵심 엔진(별도의 백그라운드 프로세스가 아닌 서버 프로세스가 가진 기능임)*컴퓨터 프로그래밍에서 엔진(engine)이란 특정 프로그램 내부에서 또는 다른 프로그램들을 위해 핵심적이고 본질적인 기능을 수행해주는 프로그램- 옵티마..
그림으로 공부하는 오라클 구조 - Ch10,11. 오라클 백업/복구, 백그라운드 프로세스 백업과 복구 백업온라인 백업 : 데이터베이스 운영 상황에서 백업 => BEGIN BACKUP과 END BACKUP 사이에 변경이 일어난 블록을 Redo 로그에 기록하여 불완전 복구 방지콜드 백업 : 인스턴스 정지 후 백업복구장애(인스턴스) 복구 : 장애 발생 시 자동으로 실행되는 복구미디어 복구 : 사용자가 명시적으로 실행완전복구 : 최신 데이터까지 복구불완전 복구 : 특정 시점까지 복구데이터베이스/테이블스페이스/데이터파일/블록의 복구기본적인 복구 흐름데이터베이스 손상 확인재작업할 수 있도록 현재 상태 백업필요한 데이터 파일과 아카이브 리두 로그 파일 restore복구 실행 백그라운드 프로세스의 동작과 역할DBWR(DBW) : 이미 변경된 데이터를 캐시에서 디스크로 기록LGWR : commit 시 red..

728x90