기본 개발환경 구축

2022. 6. 13. 13:38정처기(필기)/프로그래밍언어활용

더보기

(1) 웹 서버

1. 웹 서버의 개념

- 웹 서버는 웹 브라우저로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램

- 대다수의 웹 서버는 ASP, PHP 등의 서버 사이드 스크립트 언어를 지원한다.

 

▼ 정적/동적 콘텐츠

  • 정적 콘텐츠 : 미리 생성된 페이지를 사용자 요청에 의해 바로 응답하는 콘텐츠
  • 동적 콘텐츠 : 서버사이드 스크립트 언어를 이용하여 사용자 요청에 의해 생성되는 콘텐츠

2. 웹 서버의 기능

특징 설명
HTTP HTTP의 요청과 응답에 대한 처리 수행
통신 기록 처리 기능을 로그화시켜서 추적성 보장
인증 허용된 사용자나 관리자만 접근할 수 있도록 인증기능 제공
HTTPS 지원 웹 서버에서는 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화하고, 데이터의 적절한 보호를 보장하는 HTTPS를 지원
가상 호스팅 기본적 호스트인 메인 호스트를 제외한 나머지 호스트
대역폭 제한 네트워크의 과부하를 막기 위해서 품질 보장을 보장하는 대역폭 제한 가능

 

3. 웹 서버 주요 제품

  • 아파치 웹 서버 : 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버로 BSD, 리눅스 등 유닉스 계열뿐 아니라 마이스크로소프트나 노벨 넷웨어 같은 기종에서도 운용할 수 있는 웹 서버
  • 마이크로소포트의 IIS : 마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비들의 모임으로 구성된 제품
  • 구글 웹 서버(GWS) : 구글 웹 서버는 구글이 자사의 웹 서비스에 사용하고 있는 웹 서버 소프트웨어 
더보기

(2) DB 서버

1. 데이터베이스 관리 시스템

- 다수의 사용자들이 데이터베이스 내의 데이터를 접근하여 편리하게 이용할 수 있도록 해주는 소프트웨어 도구의 집합

 

2. 데이터베이스 관리 시스템(DBMS) 아키텍처

- DBMS 서버는 인스턴스 및 데이터베이스로 구성된다. 인스턴스는 메모리 부분과 프로세스 부분으로 구성된다. 

- 그 외 데이터베이스의 시작과 종료를 위한 DBMS 환경을 정의한 매개변수 파일과 파일 목록을 기록한 제어 파일이 있다. 

 

 

3. 데이터베이스 서버의 기동 및 종료

- 데이터베이스를 사용하려면 권한을 가진 DBMS 관리자가 우선적으로 DBMS 인스턴스를 시작해야 한다. 

- 인스턴스를 시작하면 인스턴스와 데이터베이스에 대한 구성 매개변수의 목록이 있는 매개변수 파일을 읽는다. 

 

  • 데이터베이스 서버 기동 : 인스턴스 시작 -> 데이터베이스 마운트 -> 데이터베이스 오픈 순으로 진행
  • 데이터베이스 서버 종료 : 데이터베이스 담기 -> 마운트 해제 -> 인스턴스 종료 순으로 진행

 

4. 데이터베이스 서버의 구성요소

구성요소 설명
데이터 딕셔너리 연관된 데이터베이스 정보를 제공하는 읽기 전용 테이블 또는 뷰의 집합
테이블 스페이스,
데이터 파일
데이터는 논리적으로 테이블 스페이스와 물리적으로 해당 테이블스페이스와 연관되어 있는 데이터 파일에 저장
데이터베이스 영역 할당 데이터베이스 관리 시스템은 데이터베이스의 모든 데이터에 대한 논리적 데이터베이스 영역을 할당,
할당 단위는 데이터 블록, 확장 영역, 세그먼트
데이터베이스 관리 시스템 메모리 데이터베이스 관리 시스템은 실행되는 프로그램 코드, 세션 정보, 교환 정보, 캐시 데이터 정보를 저장하기 위해 메모리를 사용
데이터베이스 버퍼 데이터 파일로부터 읽어 들인 데이터 블록의 복사본을 가지고 있음
로그 버퍼 데이터베이스의 변경 사항 정보를 저장
공유 풀과 정렬 영역 공유 풀과 정렬 영역을 메모리 영역에 가지고 있음
DBMS 프로세스 사용자 프로세스, 서버 프로세스, 백그라운드 프로세스로 구성

 

5. 오라클 DB 서버 구조

[1] 프로세스

  • 서버 프로세스 : 사용자 프로세스와 통신하면서 사용자의 각종 명령어를 처리하는 프로세스
  • 백그라운드 프로세스 : 서버 프로세스가 하는 일 외에 데이터 파일을 읽어서 DB 버퍼 캐시에 적재

[2] 디스크(물리적 영역)

  • 데이터 파일 : 디스크에는 데이터베이스가 여러 데이터 파일들로 구성되어 있고, 각각 데이터 파일은 여러 개의 블록으로 구성되어 있음
  • 임시 데이터 파일 : 대량의 정렬이나 해시 작업을 수행하다가 메모리 공간이 부족해지면 중간에 결과 집합을 잠시 저장하는 용도로 사용되는 파일
  • 로그 파일 : 캐시에 저장된 변경사항이 기록되지 않은 상태에서 장애 발생으로 데이터 파일로 기록하지 못한 정보가 없어진 경우, 복구하기 위해서 사용
  • 컨트롤 파일 : 데이터베이스에 사용할 모든 파일들의 절대 경로와 파일 크기 등의 정보를 저장하고 있고, 파일들의 이상 유무를 확인하기 위해서 항상 참조되는 파일
  • 파라미터 파일 : 공유 메모리 영역의 할당 범위,컨트롤 파일의 경로와 데이터베이스의 환경 설정 등 관련된 모든 정보를 담고 있는 파일

 

[3] 메모리 영역

▼ 공유 메모리 영역

  • DB 버퍼 캐시 : 디스크에 있는 데이터 파일로부터 읽은 데이터 블록을 담고 있는 캐시 영역
  • 공유 풀 : 딕셔너리 캐시와 라이브러리 캐시로 구성되어 있음
  • 로그 버퍼 : DB버퍼 캐시에 가해지는 모든 변경 사항은 로그 파일에 기록

!!여기서 잠깐!!

캐시(Cache)란?

- 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소

 

▼ 프로세스 전용 메모리 영역

  • UGA : 하나의 프로세스가 여러 개의 세션을 위한 독립적인 메모리 공간이 필요해지는데, 이 때 사용하는 영역
  • CGA : 프로세스 전용 메모리 영역에 할당되는 메모리 공간
  • 정렬 공간 : 데이터 정렬을 위해 사용되는 공간

 

6. MySQL DB 서버 구축

- 다양한 운영체제에서 사용할 수 있으며, 여러 가지 프로그래밍 언어를 지원하고 크기가 큰 데이터 집합도 빠르고 효과적으로 처리 가능(다중 스레드, 다중 사용자 형식의 DBMS)

 

7. MariaDB 서버 구축

- 오픈 소스의 관계형 데이터베이스 관리 시스템이며 MySQL과 동일한 소스 코드 기반으로 GPL v2 라이선스를 적용받는다. 

- 자동으로 스레드 개수를 조절하는 스레드 풀을 지원한다. 

- 하나의 서버가 여러 대의 마스터를 가지고 복제본으로 연결되는 구조를 가진다.

 

더보기

(3) 패키지

1. 패키지 개념

- 패키지는 컴퓨터에서 사용자에게 특정 기능을 수행하도록 설계된 프로그램이나 프로그램 집합

- 패키지 소프트웨어란 이용도가 높은 프로그램이나 업무에 적합한 프로그램들을 묶어서 상품으로 제공하고 있는 소프트웨어

 

2. 패키지 소프트웨어 유형

- 실무에 필요한 기능을 수행하는 응용 패키지와 컴퓨터 자체 연산에 관련된 기능을 수행하는 시스템 패키지로 구별된다.