Joo's
article thumbnail
반응형

리눅스와 운영체제

OS : 하드웨어를 직접 관리하는 소프트웨어

  • 사용자에게 컴퓨터의 프로그램을 쉽고 효율적으로 실행할 수 있는 환경을 제공
  • 컴퓨터 시스템 하드웨어 및 소프트웨어 자원을 여러 사용자 간에 효율적 할당, 관리, 보호하는 것
  • 사용자 프로그램의 오류나 잘못된 자원 사용을 감시하는 것과 입출력 장치 등의 자원에 대한 연산과 제어를 관리

OS에서 하는 일들

  • 프로세스 관리. 인터럽트. 메모리 관리. 파일 시스템. 장치 드라이버. 네트워킹 (TCP/IP, UDP). 보안 (프로세스/메모리 보호). 입출력 관리 등등 …

OS의 종류

  • 윈도우(windows) : microsoft사에서 개발한 운영체제로, 노트북 및 서버 시스템에서 주로 사용된다.
  • macOS : Apple사에서 개발한 운영체제로, mac 컴퓨터 및 노트북에서 사용된다. 시스템 안정성과 사용자 편의성에 중점을 둔 운영체제다.
  • 리눅스(Linux) : 오픈 소스 운영체제로, 다양한 배포판이 있다. 서버 시스템 및 임베디드 시스템에서 주로 사용되며, 안정성과 보안성이 높은 운영체제다.
  • 유닉스(UNIX) : 다중 사용자 및 다중 작업을 지원하는 운영체제로, 서버 환경에서 주로 사용된다. 안정성과 신뢰성이 높다. IBM일괄 관리

리눅스 : 유닉스 계열의 운영체제

  • 1969 : UNIX (C로 쓰여진 최초의 운영체제)
  • 1987 : 교육용 OS 인 minix (Andrew S. Tanenbaum) => 소스 코드 공개 Linus Tovals 가 이를 이용하여 개인 PC용 운영체제를 만들 계획을 세움 초기에는 운영체제가 아닌 운영체제(minix) 위에서 실행되는 터미널 환경 파일을 제어할 수 있는 수준까지 만든 후 포직스(POSIX)에 호환되는 운영 체제 커널로 발전
  • 1991 : GNU(그누) 라이선스 아래에서 커널 소스를 공개함 (0.01)
  • POSIX : IEEE(전기전자공학자협회)가 제정한 유닉스의 애플리케이션 프로그래밍 인터페이스(API) 규격
  • GNU(그누) 라이선스 : GNU 라이선스는 자유 소프트웨어를 사용, 복제, 수정, 배포할 수 있는 규정들의 모음

리눅스의 특징

  • 대부분의 리눅스는 무료
  • 대부분의 플랫폼 (IA-32, AMD64, SPARC, PowerPC, ARM , etc…) 에서 사용가능
  • 간단히 말하면, 인텔,AMD, 썬, 애플 등 많은 회사들이 만들어낸 하드웨어 제어 방법에 호환되며 일반 PC 가 아닌 임베디드 기기 에서도 호환성을 보여줌
  • 유닉스와 호환되며 표준 라이브러리, 프로그래밍 도구, 컴파일러, 디버거 등 의 완전한 유닉스 프로그래밍 환경을 제공
    • 임베디드 기기 : embedded system이라고도 불리며, 기계나 다른 시스템에서 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템을 의미. 이는 주로 제한된 환경에서 작동하며, 특정한 목적을 위해 설계. 임베디드 시스템은 자동차의 엔진 제어 장치, 가전제품의 제어 시스템, 의료 기기, 디지털 카메라 등 다양한 분야에서 활용.
  • 강력한 네트워크 지원
    • TCP/IP , IPv4,IPv6, UDP, UUCP 등의 다양한 프로토콜
    • 이더넷, 토큰링, 전화 접속, 무선 네트워크 등 다양한 네트워크 기술을 사용할 수 있음
    • 인터넷 기반 어플리케이션 지원
    • 리눅스 자체를 라우터 및 방화벽으로 동작시킬 수 있음
    • 다양한 웹서버 지원( apache 등)
    • 그 외 다양한 네트워크 서비스(samba, FTP, NFS 등)
  • 다양한 파일 시스템 지원 (ext2,ext3, fat, ntfs 등)
  • 낮은 하드웨어 사양에서도 사용가능
  • 리눅스 및 리눅스 어플리케이션들은 대부분 소스가 공개되어 자유롭게 사용, 수정, 재배포가 가능함.
  • 전 세계 수백만의 개발자들에 의해 기능이 나날이 발전하고 있음

리눅스의 장단점

리눅스의 구조

  • 하드웨어(Hardware, H/W)
    • 컴퓨터 하드웨어는 케이스, 중앙 처리 장치(CPU), 모니터, 자판(키보드), 컴퓨터 기억 장치(RAM), 그래픽 카드(GPU), 사운드 카드, 메인보드와 같은 컴퓨터의 물리적 부품을 의미
  • 커널(Kernel)
    • 사용자가 실행시키는 응용프로그램(Application)과 하드웨어 사이의 관리자 역할을 수행하며 쉘과 연관되어 쉘에서 명령하는 작업을 수행하고 수행된 결과를 쉘로 보내는 역할을 한다.
  • 쉘(Shell)
    • 셸은 운영체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하며 사용자가 입력하는 명령을 대신 해석해 커널에게 전달하여 실행해주는 프로그램
  • 응용프로그램(Application)
    • 응용 소프트웨어 또는 애플리케이션은 운영체제에서 실행되는 모든 소프트웨어

리눅스의 데이터 관리

  • 리눅스에서 관리하는 모든 것은 파일로 인식
    • 일반 파일, 하드웨어, 현재 돌아가는 프로세스 등..
  • 파일 시스템 사용
    • 파일을 효율적으로 관리하기 위해 디렉토리를 사용
    • 디렉토리는 계층구조
    • 전체 파일을 용도에 따라 계층 디렉토리로 구분하여 관리하며 이것을 파일 시스템

리눅스 파일의 종류

  • 일반파일
    • 데이터를 저장. 각종 텍스트파일, 실행파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일
    • 실행파일이나 이미지 파일의 경우 데이터가 바이너리 형태로 저장되어 바이너리 파일 이라고도 함.
  • 디렉토리
    • 디렉토리도 파일로 취급. 디렉토리 파일에는 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보가 저장
  • 심벌릭 링크
    • 원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한것 으로 윈도우의 바로가기와 개념이 비슷
  • 장치파일
    • 하드디스크나 마우스같은 장치들도 파일로 취급. 장치들을 관리하기 위한 파일.
    • 각종 장치를 관리하기 위해 시스템 관리자는 해당 장치 파일에 접근. 장치파일은 /dev 디렉토리 아래에 위치.

디렉토리 구조

  • 수많은 디렉토리(파일)들을 효율적으로 관리하기 위해 계층적으로 구성 (트리구조)
  • 디렉토리는 그 밑으로 하위 디렉토리로 나누어지고 각 디렉토리에는 파일들이 저장
  • 모든 디렉토리의 최상위 디렉토리를 루트 디렉토리. 루트 디렉토리는 / 으로 표시.

주요 디렉토리의 기능

디렉토리 명  설명 디렉토리 명 설명
/ (루트) 최상위(루트)디렉토리. 디렉토리들의 절대 경로를 표기할 때 이 디렉토리로 부터 시작함 /bin (바이너리) 기본적인 명령어가 저장된 디렉토리 리눅스에서 자주 사용하는 mv, cp, rm등과 같은 명령어들 이 이 디렉토리에 존재함
/home 사용자들의 홈 디렉토리가 생성되는 곳 사용자를 추가하면 사용자의 id와 동일한 디렉토리가 이곳 에 자동으로 생성 /boot 부팅에 필요한 정보를 가진 파일들이 있는 디렉토리
/media CD_ROM이나 USB같은 외부 장치를 연결하는 디렉토리 /var (바) 시스템 운영 중에 발생한 데이터와 로그가 저장되는 디렉 토리
/opt (옵트) 추가 응용프로그램패키지가 설치되는 디렉토리 /tmp (템프) 시스템 사용 중에 발생한 임시데이터가 저장 (부팅 시 초기화)
/dev (디바이스) 장치파일들이 저장되어 있는 디렉토리 /lib (라이브러리) 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈파일 등이 존재하는 디렉토리
/root root계정의 홈 디렉토리 (/ 디렉토리와는 다름) /run 실행중인 서비스와 관련된 파일이 저장되는 디렉토리
/sys (시스템) 리눅스 커널 관련 정보가 있는 디렉토리 /proc (프로세스) 프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리
/usr 기본 실행파일과 라이브러리 파일, 헤더 파일등의 파일이 저장되어 있는 디렉토리(윈도우의 Program Files) /mnt (마운트) 파일 시스템을 임시로 연결하는 디렉토리 Media는 OS에서 자동으로 마운팅 해주는 포인트로 주로 사용되며 mnt는 사용자가 직접 마운트 하는 경로로 사용
/etc 리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉토리 /sbin 주로 시스템 관리자들이 사용하는 시스템관리자용 명령 어를 저장하고 있는 디렉토리

리눅스 사용자 관리

  • 사용자의 분류
    • 루트계정 : 모든 권한을 가진 특별한 사용자
    • 시스템 계정 : 리눅스 설치시 기본으로 생성되는 계정
    • 사용자 계정 : 실제 리눅스 사용자를 위한 계정
  • 루트 계정 관리
    • root 계정 : 완전한 권한을 갖는 슈퍼유저 사용자. 해당 시스템의 대표 관리자 계정 UID는 0
    • 루트계정 권한 획득 방법
      • root 사용자로 로그인 : $sudo passwd root 패스워드 입력후 로그인
      • root 사용자로 임시 전환 : sudo 명령어를 통해 루트권한으로 해당 명령어를 실행
      • 해당명령이 종료되면 root권한도 사라짐
      • $sudo vi /etc/passwd

서버 하드웨어와 네트워크 구성

서버 하드웨어의 구성

  • 하드웨어 (HWㆍHardware)
    • 실체가 있는(시각적으로 보이면서도 만질 수 있는), 컴퓨터의 모든 물리적인 부품을 통틀어 의미.
    • Windows를 사용하기 위한 노트북 혹은 Android/iOS 사용을 위한 스마트폰, 그 외 모니터, 키보드 마우스 등이 모두 하드웨어
  • 서버와 일반 PC의 차이
    • PC / 서버용 하드웨어의 가장 큰 차이는 사용 용도에 따른 부가적인 기능 탑재/제거
    • 일반 PC 하드웨어 : 장시간 사용하지 않는 전제로 제작되며 이용자들은 평균적으로 음성채팅, 게임, 영화시청 등의 목적으로 일반 PC를 사용하기 때문에 멀티 미디어 기능이 제공되어야 함.
    • 서버용 하드웨어 : 원활하며 끊임없는 서비스를 공급하기 위하여 365일 24시간동안 구동되어야 하기 때문에 불안정/불필요할 수 있는 기능들을 배제하고 품질 및 내구성이 좋아야 함. 수많은 데이터를 빠르게 처리하기 위하여 CPU 또는 RAM을 추가 장착하여 고성능 연산기능을 추가하기도 함
  • 메인보드
    • CPU, RAM, DISK 등 여러가지 부품 및 케이블을 연결시킬 수 있으며 전력 공급, 각 부품들의 통로가 되는 핵심 기판. 서버용으로 생산된 하드웨어를 부착하기 위해서 호환성을 유의.
  • CPU (중앙처리장치)
    • 서버의 두뇌라고 할 수 있으며 모든 하드웨어에 대해 제어하고 입력되는 수많은 데이터들을 처리, 연산하는 핵심 부품
  • RAM (ECC 메모리)
    • 랜덤 액세스 메모리, 즉 램이라고 불리며 여러 영역에서 자유롭게 내용을 읽고 쓰고 지울 수 있는 주 기억장치이며 기입되는 내용들은 전원공급이 원활하게 유지되는 동안 해당 기억장치에 저장 서버용 RAM의 경우 보통 ECC 메모리를 사용 – ECC는 컴퓨터 메모리의 한 유형으로 메모리 데이터 손상을 탐지하고 수정하는 역할을 지님.
  • 디스크 (스토리지)
    • SSD : 반도체로 구성되어 플래시 메모리라는 전자적 데이터 저장 방식을 지닌 보조기억 장치이며 평균적으로 2.5인치 SSD가 사용. 가볍고 튼튼하며 물리적인 간섭을 두고 있지 않아 읽고 저장하는 속도가 빠름
    • HDD (3.5”)
      • 하드디스크라고 불리며 플래터라는 원판을 회전시킨 후 자기 패턴 측정으로 정보를 읽고 저장하게 되며 평균적으로 3.5인치 하드디스크가 사용
      • 물리적인 데이터 저장 방식을 지니고 있어 읽고 저장하는 경우 비교적 느린 속도
      • 사용시 물리적으로 충격을 받거나 강한 자성과 맞닿을 경우 플래터에 손상을 입힐 수 있음

SSD와 HDD의 차이

  • 가장 큰 차이는 데이터 저장 방식과 저장 및 읽기에 관한 속도
  • HDD의 경우 물리적 데이터 저장방식을 사용하고 있어 읽기, 저장에 관한 속도 자체는 전자적 데이터 저장방식을 지닌 SSD보다는 느림
  • SSD는 저장 가능한 용량대비 가격이 높고 수명이 짧지만 속도가 빠르고 소음이 없으며 가볍고 튼튼한 장점
  • HDD는 물리적인 방식으로 인해 소음이 발생하게 되며 충격에 약하지만 저장 가능한 용량대비 가격이 저렴하고 장기간 데이터 저장하는 것에 용이하다는 장점

시스템 버스 (System Bus)

  • 데이터 버스 (Data Bus)
    • 기억장치 & 입출력장치의 명령어를 CPU에게 전달하거나, 반대로 CPU의 결과값을 기억장치 & 입출력 장치에게 전달하는 버스.
    • 따라서 양방향 버스이며, 시스템의 전반적인 성능을 좌우함
    • 여러 분리된 선으로 구성되어 있으며, 선의 수(32, 64, 128 ~)는 곧 CPU가 수용할 수 있는 데이터의 크기이자 한번에 이동할 수 있는 bits의 크기이다.
  • 주소 버스 (Address Bus)
    • CPU가 기억장치 & 입출력장치에게 데이터를 보내기 위해 주소를 전달해주는 버스. (메모리의 주소나, I&O Device의 포트 번호)
    • 따라서 단방향 버스이며, 입출력장치와는 양방향을 이용한다
  • 제어 버스 (Control Bus)
    • 데이터 버스와 주소 버스를 제어하기 위해 신호를 주고받는 버스
    • CPU가 Memory를 Read할지, Write할지에 대한 정보를 전달

Booting Up

  • 전원기동
  • 전원공급
    • 전원 공급 장치가 메인보드에게 전력을 공급.
  • 부트 프로그램 실행 및 하드웨어 검사
    • 전원이 공급되면, 가장 먼저 CPU가 ROM에 있는 BIOS를 실행.
    • BIOS는 POST라는 하드웨어 검사를 수행하는데, 이 때 하드웨어가 정상인지 전체적으로 검사.
  • 운영체제 로드
    • 운영체제는 하나의 프로그램이자 데이터 형태이므로, DISK에 저장되어 있다가 RAM에게 넘어가는 방식
    • 하드웨어 검사 결과가 정상이라면, DISK에 있는 Boot Loader가 OS를 RAM에게 넘겨줌
  • 운영체제 사용
    • OS가 실행되면, 이제 사용자가 입력하는 명령에 의해 CPU가 프로그램을 실행시키고 동작을 수행

네트워크의 구조

  • 패킷(packet)이란?
    • 네트워크를 통해 전송되는 데이터의 작은 조각. 큰 데이터가 있더라도 작게 나누어서 보내는 게 규칙. (패킷 == 택배)
    • 작게 나누지 않고 큰 상태 그대로 보내면 번거롭지도 않고 오히려 더 편할 수 있지만, 큰 데이터를 그대로 보내면 그 데이터가 네트워크의 대역폭을 너무 많이 차지(점유) 해서 다른 패킷의 흐름을 막을 위험이 있다.
    • 용량이 큰 데이터는 패킷을 분할하여 전송하고, 전송이 완료되면 원래 사진대로 되돌리는 작업이 필요. 다만, 전송한 패킷이 네트워크가 지연되어 늦게 도착하거나 누락되는 등 전송 순서대로 도착하지 않을 수 있기 때문에 패킷 번호(디지털 데이터)를 부여하고 도착 후 패킷 번호(디지털 데이터)에 맞춰 정렬한다.

정보의 양을 나타내는 단위

  • 비트와 바이트란?
    • 모든 컴퓨터는 숫자 0과 1만을 다루는데, 그 0과 1의 집합을 디지털 데이터(digital data)라고 함
    • 0과 1의 정보를 나타내는 최소 단위를 비트(bit)라고 함
    • 0과 1을 표현하는 1비트(bit)는 사진과 같이 0또는 1인 숫자 여덟 개를 모아 표시 할 수 있음
    • 이 단위를 바이트(byte)(== 8bit)라고 부름.
    • 신호를 나타내는 최소 단위 비트(bit), 정보의 기본단위 바이트(Byte)
  • 문자 코드
    • 모든 것을 0과 1의 집합으로만 다루는 컴퓨터의 문자 입력 방법
    • 숫자와 문자의 대응표를 미리 만들어 두었기 때문에 가능. 이 대응표를 문자 코드(character code)라고 함.
    • 문자 코드 중 하나인 ASCII(아스키) 코드는 알파벳, 기호, 숫자 등을 다룰 수 있는 기본적인 문자 코드임
  • 전기 신호
    • 네트워크에 데이터를 전송하는 경우에는 비트 정보를 전기 신호로 변환하여 전송.

가정에서 하는 랜(LAN) 구성

  • 가정에서의 네트워크 구성
    • ISP( 인터넷 서비스 제공자(사업자)), 인터넷 회선, 인터넷 공유기

회사에서 하는 랜(LAN)구성

  • 소규모 회사에서의 네트워크 구성
    • 가정에서의 랜 구성과 눈애 띄게 다른 점은 DMZ(DeMilitarized Zone)라는 네트워크 영역이 있다는 점
    • DMZ(DeMilitarized Zone): 외부에 공개하기 위한 네트워크.
  • 외부에는 서버를 공개하는데 주로 웹 서버, 메일 서버, DNS 서버를 공개
    • 웹 사이트를 불특정 다수의 외부 사용자에게 공개하려면 웹 서버를 외부에 공개
    • 외부 사용자와 메일을 주고받으려면 메일 서버를 외부에 공개
    • 외부에서 도메인 이름을 사용하여 회사의 서버에 접속하려면 DNS 서버를 외부에 공개
  • 회사의 서버는 온프레미스나 클라우드로 운영되고 있다
    • 온프레미스(on-premise): 사내 또는 데이터 센터에 서버를 두고 운영하는것.
    • 클라우드 비교할 때 자주 사용하는 용어.

서버 가상화

가상화란?

  • 가상화의 기원은 최초 1960년대 IBM 메인 프레임에서 파티셔닝을 통해 서로 다른 업무를 동시에 실행하여 대용량 컴퓨팅 자원을 효율적으로 활용한 것이 그 효시로써, 컴퓨팅 기술의 발전에 따라 이를 x86 플랫폼 상에서 구현할 수 있게 된 것이 현재의 x86 서버 가상화

 

클라우드

  • 최초 안정성과 성능 면에서 많은 제약을 받았던 x86 가상화는 기술과 시장의 성숙을 바탕으로 급속도로 확산되어, 물리적인 한계를 넘어 논리화된 자원의 공유와 분배를 위한 클라우드 컴퓨팅 환경의 근간을 제공.

SDDC( Software Defined Data Center : 소프트웨어 정의 데이터 센터)

  • 단순히 서버 자원 만을 공유하던 기존의 가상화는 데이터 센터 인프라자원 (스토리지,네트워크,보안,재해복구)으로 그 범위를 넓혀 이제는 데이터 센터 자체에 대한 가상화(SDDC¹)가 진행되고 있습니다.
  • 컴퓨팅에서부터 스토리지, 네트워킹, 보안에 이르는 모든 부문에서 ‘제어’를 분리해내 중앙에서 소프트웨어에 의해 통합 관리할 수 있으며, IT 인프라를 서비스로 제공하는 ITaaS(IT as a Service) 데이터센터 인프라라고 정의

서버 보안과 관리

서버 보안

  • 서버 보안은 컴퓨터 시스템을 외부 공격이나 데이터 유출로부터 보호하는 것을 의미.
  • 이를 위해 방화벽, 암호화, 보안 패치 등 다양한 기술과 절차를 사용. 서버 관리는 서버의 구성, 성능 모니터링, 데이터 관리 등을 포함

보안 강화

  • 방화벽 설정: 외부에서의 불법 접근을 막기 위해 방화벽을 사용
  • 암호화: 중요한 데이터는 암호화하여 보호
  • 보안 패치 및 업데이트: 최신 보안 패치를 설치하여 시스템의 취약점을 보완
  • 감사 로그 모니터링: 시스템 로그를 검토하여 이상 징후를 감지
  • 권한 관리: 최소한의 필요 권한만 부여하여 보안을 강화

서버 관리

  • 하드웨어 관리: 서버의 물리적인 상태를 확인하고 필요한 경우 유지보수를 진행
  • 운영 체제 업데이트: 최신 운영 체제 패치를 설치하여 안정성을 유지
  • 성능 모니터링: 서버의 성능을 모니터링하여 문제를 식별하고 해결
  • 데이터 백업 및 복원: 중요한 데이터를 정기적으로 백업하고 필요한 경우 복원
  • 네트워크 관리: 네트워크 연결을 확인하고 문제를 해결

웹 서버와 애플리케이션 서버

웹 서버 (Web Server)란?

  • 정의
    • 인터넷 상에서 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지들을 보내주는 역할을 하는 프로그램. 즉 HTTP 요청에 따라 서버에 저장되어 있는 적절한 웹페이지를 클라이언트에게 전달하는 것. 웹 페이지 뿐만 아니라 그림, 스타일 시트, 자바스크립트도 해당.
  • Static pages
  • image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미한다
  • 웹 서버에서 요청에 알맞은 파일을 반환하며, 항상 동일한 페이지를 반환한다. (말 그대로 정적인 컨텐츠)
  • 웹 서버에서 제공

웹 어플리케이션 서버(Web Application Server/WAS)란?

  • 정의
    • 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행해 주는 미들웨어. 단순하게 WAS라고도 함.. Servlet, ASP, JSP, PHP 등의 웹 언어로 작성된 웹 어플리케이션을 서버단에서 실행된 후 실행 결과값을 사용자에게 넘겨주게 되고, 우리가 가진 브라우저가 결과를 해석해서 화면에 표시하는 순으로 동작을 하게 됨

웹 서버와 웹 어플리케이션 서버의 차이 및 구성

  • 기본적인 웹 사이트 구성
    • 웹 서버는 정적 데이터를 처리하는 용도로, 웹 어플리케이션 서버는 동적 데이터를 처리하는 용도로 사용
    • 장점 : 사용자 증가에 따라 스위치 장비를 통해 로드 밸런싱을 수행하고, 여러대의 WAS를 통해 지원이 가능하다. 필요시에 추가로 WAS를 증설하는 구조라고 볼 수 있다
    • 단점 : WAS가 정적인 데이터(HTML/Image)의 처리와 동적인 데이터(웹 어플리케이션)의 처리를 동시에 수행하기 때문에 최적화 측면에선 바람직하지 않다. 또한 정적데이터의 입출력 처리를 위해 웹 어플리케이션의 수행을 방해할 수 있고, 그 반대의 경우도 있다.

  • 웹 서버와 WAS로 구성된 환경
    • 웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태이다. 정적인 데이터는 구조적으로 앞에 존재하는 웹 서버에서 처리하고, 동적인 데이터는 뒷단의 WAS가 처리한다.
    • 사용자의 요청에 대해서 정적 데이터인 HTML과 자바스크립트 파일, CSS, Image 등을 앞단의 웹 서버에 위치시켜 처리함으로써 WAS로 서비스 요청이 넘어가지 않게 한다.
    • 또한 웹 어플리케이션 서비스를 위치적으로 뒤편에 존재하는 WAS에 넘겨줌으로써 WAS는 웹 애플이케이션의 수행이 집중할 수 있다.
    • 웹 서버 단에서 처리할 것과 WAS에게 넘겨질 것을 처리하는 방식은 웹 서버 단의 Configuration을 통해 처리할 수 있다. 특정 확장자나 디렉토리 업무를 WAS로 넘길지 여부는 웹 서버 단에서 처리한다.

특정기능에 대한 서버를 별도로 두고 있는 환경

  • 점점 화려해지는 UI를 자랑하는 페이지들이 많아짐에 따라 이미지의 비중이 증가하고, 이런 이미지들이 전체 네트워크 비중의 상당부분을 차지. 따라서 이미지 서버를 따로 구성해 네트워크 비중도 줄이면서 웹 서버와 WAS를 좀 더 효과적으로 사용할 수 있는 구조
  • 또는 특정 콘텐츠에만 집중적인 요청을 받는 경우도 있다. 예를 들어, 대학 입시 때 경쟁률 조회는 상당히 많은 사용자에 의해 조회가 되고, Reload 또한 빈번하게 일어나므로 특정시간 간격으로 HTML을 생성하고, 페이지를 특정 서버에 위치시켜 적절하게 부하를 분산시켜 해결이 가능하다.
  • 장점 : 다양한 환경에 대한 대처가 빠름
  • 단점 : 구조를 정확하게 이해하지 않았을 경우에는 개발 및 테스트에 많은 시간이 쓰임

데이터베이스와 데이터베이스 시스템

데이터, 정보, 지식

  • 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값
  • 정보 : 데이터에 의미를 부여한 것
  • 지식 : 사물이나 현상에 대한 이해
  • 데이터베이스 : 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것
  • 데이터베이스의 개념 : 데이터베이스는 운영 데이터를 통합하여 저장하며 공용으로 사용된다

데이터베이스의 개념

  • 통합된 데이터(integrated data)
    • 데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상을 제거
  • 저장된 데이터(stored data)
    • 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
  • 운영 데이터(operational data)
    • 조직의 목적을 위해 사용되는 데이터를 의미한다. 즉 업무를 위한 검색을 할 목적으로 저장된 데이터
  • 공용 데이터(shared data)
    • 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미

데이터베이스의 특징

  • 실시간 접근성(real time accessibility)
    • 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하 는 것이 아니라 수 초 내에 결과를 서비스한다.
  • 계속적인 변화(continuous change)
    • 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다. 데이터베이스는 삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐 데이터 값을 저장한다
  • 동시 공유(concurrent sharing)
    • 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 동시(concurrent)는 병행이라고도 하 며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미다.
  • 내용에 따른 참조(reference by content)
    • 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.

데이터베이스의 시스템의 구성

데이터베이스 시스템의 발전

정보 시스템의 발전

  • 파일 시스템
    • 데이터를 파일 단위로 파일 서버에 저장
    • 각 컴퓨터는 LAN을 통하여 파일 서버에 연결되어 있고, 파일 서버에 저장된 데이터를 사용하기 위해 각 컴퓨터 의 응용 프로그램에서 열기/닫기(open/close)를 요청
    • 각 응용 프로그램이 독립적으로 파일을 다루기 때문에 데이터가 중복 저장될 가능성이 있음
    • 동시에 파일을 다루기 때문에 데이터의 일관성이 훼손될 수 있음

  • 데이터베이스 시스템
    • DBMS를 도입하여 데이터를 통합 관리하는 시스템
    • DBMS가 설치되어 데이터를 가진 쪽을 서버(server), 외부에서 데이터 요청하는 쪽을 클라이언트(client)라고 함
    • DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
    • 데이터의 중복을 줄이고 데이터를 표준화하며 무결성(integrity)을 유지함(일관성)

  • 웹 데이터베이스 시스템
    • 데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템
    • 불특정 다수 고객을 상대로 하는 온라인 상거래나 공공 민원 서비스 등에 사용됨

  • 분산 데이터베이스 시스템
    • 여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
    • 대규모의 응용 시스템에 사용됨

정보 시스템의 발전

퀴즈

Q1. 다음 OS의 설명 중 틀린것은?

  • A. 사용자에게 컴퓨터의 프로그램을 쉽고 효율적으로 실행할 수 있는 환경을 제공
  • B. 컴퓨터 시스템 하드웨어 및 소프트웨어 자원을 여러 사용자 간에 효율적 할당, 관리, 보호하는 것
  • C. 사용자 프로그램의 오류나 잘못된 자원 사용을 감시하는 것과 입출력 장치 등 의 자원에 대한 연산과 제어를 관리
  • D. 전체 파일을 용도에 따라 계층 디렉토리로 구분하여 관리(파일 시스템)

Q2. 다음 리눅스의 설명 중 틀린 것은?

  • A. 유닉스 계열의 운영체제로 1969년에 만들어졌다.(유닉스 설명)
  • B. 대부분이 무료이나 유료 버전도 있다.
  • C. TCP/IP , IPv4,IPv6, UDP, UUCP 등의 다양한 프로토콜을 지원한다.
  • D. 리눅스 및 리눅스 어플리케이션들은 대부분 소스가 공개되어 자유롭게 사용, 수정, 재배포가 가능함.

Q3. 다음 리눅스의 장점이 아닌 것은?

  • A. 무료로 고가의 유닉스 서버와 동일한 성능제공
  • B. 특정기계에 의존하지 않아 어떤 시스템에도 변경 가능
  • C. 기술지원에 대한 부족함을 사용자의 숙련된 기술로 해결 할 수 있다.(단점)
  • D. 유닉스와 완벽하게 호환 가능

Q4. 사용자가실행시키는응용프로그램(Application)과하드웨어사이의관리자역할을 수행하며쉘과연관되어쉘에서명령하는작업을수행하고수행된결과를쉘로보내는역할을 한다

  • A. Hardware
  • B. Shell
  • C. Application
  • D. Kernel (하드웨어 -> 커널 -> 쉘 -> 어플)

Q5. 리눅스 파일의 종류 별 설명으로 알맞게선을 이으시오.

  • 일반 파일 : 데이터를 저장. 각종 텍스트파일, 실행파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일
  • 디렉토리 : 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보가 저장
  • 심벌릭 링크 : 원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한것 으로 윈도우의 바로가기와 개념이 비슷.
  • 장치 파일 : 장치들을 관리하기 위한 파일. 각종 장치를 관리하기 위해 시스템 관리자는 해당 장치 파일에 접근

Q6. 다음디렉토리의기능설명중맞는것은?

  • A. / : 사용자들의 디렉토리가 생성되는 곳(최상위 디렉토리)
  • B. /root : 최상위(루트)디렉토리. 디렉토리들의 절대 경로를 표기할 때 이 디렉토리로 부터 시작함(루트 유저 디렉토리)
  • C. /var : 시스템 운영 중에 발생한 데이터와 로그가 저장되는 디렉토리
  • D. /mnt : 실행중인 서비스와 관련된 파일이 저장되는 디렉토리(/run)

Q7. 리눅스사용자관리에대한설명중옳은것은?

  • A. 루트계정 : 실제 리눅스 사용자들을 위한 계정
  • B. 사용자 계정에서 루트 계정으로 로그인 할 수 있다
  • C. 루트 사용자로 임시 전환은 sodu 명령어로 할 수 있다
  • D. 시스템 계정이 완전한 권한을 갖는 슈퍼유저 사용자 계정이다

Q8. 다음설명에맞는것은?

  • 여러 영역에서 자유롭게 내용을 읽고 쓰고 지울 수 있는 주 기억장치이며 기입 되는 내용들은 전원공급이 원활하게 유지되는 동안 해당 기억장치에 저장
  • A. CPU
  • B. SSD
  • C. RAM
  • D. Mainboard

Q9. 다음설명에맞는것은?

  • 반도체로 구성되어 플래시 메모리라는 전자적 데이터 저장 방식을 지닌 보조기억 장치이며 평균적으로 2.5인치가 사용. 가볍고 튼튼하며 물리적인 간섭을 두고 있지 않아 읽고 저장하 는 속도가 빠름
  • A. HDD
  • B. SSD
  • C. RAM
  • D. ODD

Q10. 다음설명에맞는것은?

  • 기억장치 & 입출력장치의 명령어를 CPU에게 전달하거나, 반대로 CPU의 결과값을 기억장치 & 입출력 장치에게 전달하는 버스. 따라서 양방향 버스이며, 시스템의 전반적인 성능을 좌우함.
  • A. 주소 버스
  • B. 제어 버스
  • C. 데이터 버스
  • D. 고속 버스

Q11. 데이터버스와주소버스를제어하기위해신호를주고받는버스는?

  • A. 신호 버스
  • B. 제어 버스
  • C. 커널 버스
  • D. 터널 버스

Q12. 네트워크를통해전송되는데이터의작은조각

  • A. Bit
  • B. Byte
  • C. Packet
  • D. Piece

Q13. 다음네모박스안에알맞은말은?

  • 모든 것을 0과 1의 집합으로만 다루는 컴퓨터의 문자 입력 방법 ⇒ 숫자와 문자의 대응표를 미리 만들어 두었기 때문에 가능. 이 대응표를 [ ]라고 함. ⇒ [ ]중 하나인 ASCII(아스키) 코드는 알파벳, 기호, 숫자 등을 다룰 수 있는 기본적인 [ ]임.
  • A. 서식 코드
  • B. 데이터 코드
  • C. 소스 코드
  • D. 문자 코드

Q14. 웹서버의정의로틀린것은?

  • A. 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행해 주는 미들웨어
  • B. 인터넷 상에서 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페 이지들을 보내주는 역할
  • C. 항상 동일한 페이지를 반환
  • D. 웹 페이지 뿐만 아니라 그림, 스타일 시트, 자바스크립트도 해당.

Q15. 웹서버와애플리케이션서버를한서버로사용할때장점이아닌것은?

  • A. 사용자 증가에 따라 스위치 장비를 통해 로드 밸런싱을 수행할 수 있다.
  • B. 정적인데이터와 동적인데이터를 동시에 처리하여 최적화를 이뤄낼 수 있다.
  • C. 필요시에 추가로 서버를 증설할 수 있다.
  • D. 서버 구성이 단순해 진다.
반응형
profile

Joo's

@JooJY

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!