모두의 네트워크
[모두의 네트워크]는 이제 막 네트워크를 공부하기 시작했거나 공부해야겠다고 마음먹은 초급자를 대상으로 한 입문서다. 네트워크의 개념, 비트, 바이트부터 OSI 계층, 무선 랜 구조까지 160개의 일러스트와 유쾌한 캐릭터들의 대화로 설명해 그림책을 읽듯 쉽고 재미있게 네트워크 관련 지식을 익힐 수 있다. [모두의 네트워크]로 누구나 쉽게 네트워크를 익혀 보자!
저자
미즈구치 카츠야
출판
길벗
출판일
2018.06.30

이 글은 위의 책을 읽으며 제 생각과 함께 정리하는 내용입니다. 


데이터 링크 계층?

 

데이터 링크 계층의 특징은 크게 두 가지 입니다.

1. 데이터 전송에 있어서 오류를 탐지하고 수정합니다.

2. 각 장치를 식별하기 위해 MAC주소로 이루어진 주소 체계를 관리합니다 

 

오류 감지 방식

 

오류를 감지하는데  3 가지 방식이 있습니다 

1. 회선 제어

회선 제어는 오류를 감지하기보다는 회피하는 방법으로 충돌 현상이 발생하지 않게 제어합니다 

 

2. 오류 제어

CRC 혹은 패리티 검사로 오류 탐지 코드를 사용합니다.

탐지된 오류는 해밍 코드를 이용하여 정정합니다.

 

3. 흐름제어

흐름 제어는 송,수신 간의 데이터 처리 속도 차이를 조절하기 위해 수신자의 상황에 따라 송신자의 데이터 전송량을 조정하는 방법입니다.

 

이더넷?

 

이더넷이란 다수의 컴퓨터, 허브, 스위치 등을 하나의 인터넷 케이블에 연결한 네트워크 구조입니다.

이더넷은 CSMA/CD라고하는 프로토콜을 사용했었습니다. (더미 허브에서 나타나는 충돌에 대한 방안!)

하지만 이제 스위칭 허브에서 MAC주소를 이용한 통신으로 그 역할을 대신 해주기 때문에 사용하지 않습니다.

 

MAC 주소?

 

랜 카드 같은 "network interface card"에 할당된 고유 값입니다.

 

어디에 사용?

 

1계층에서 온 데이터가 2계층으로 넘어가면 2계층에서는 이 데이터(bit)에 헤더와 트레일러를 붙입니다.

붙이는 헤더에  송신자의 MAC주소, 수신자의 MAC주소가 구성되어 있습니다.

추가로 헤더에 IP의 프로토콜의 유형이 들어갑니다. (IPv4, IPv6, ARP)

 

ARP?

 

근데 보내는 사람의 MAC주소는 거기서 데이터가 나오니 알수 있다쳐도 목적지의 MAC주소는 어떻게 알까요?

이때 사용하는것이 ARP입니다.

ARP은 보내고자 하는 IP주소에 해당하는 MAC주소를 알려주는 프로토콜입니다.

 

과정은 이렇습니다.

  1. 컴퓨터A는 보내고자 하는 IP에 MAC주소가 있는지 자기의 ARP테이블을 확인합니다.
  2. 없다면 컴퓨터A는 같은 허브에 묶여 있는 모든 장치에게 목적지의 IP를 주며 "IP가 동일하면 MAC주소를 내놔라" 합니다.
  3. 모든 장치는 IP를 비교하고 동일한 장치가 나타날 경우, 그 장치는 MAC주소를 넘겨줍니다.
  4. 그 후 컴퓨터A는 받아온 MAC주소와 매핑된 IP를 자기 메모리의 ARP 테이블에 저장합니다.
  5. 다시 통신을 해야할시 1번으로 돌아갑니다.

그런데 아무래도 허브단에서 이루어지기 때문에 LAN환경에서만 가능합니다.

그러면 WAN환경에서는 어떻게 ARP가 사용될까요?

그래서 우리가 찾는 IP를 가진 장치가 허브와 연결되있지 않다면, 연결된 라우터로 이동하여 찾는 ip를 가진 장치를 다시 찾게 됩니다.

근데 중요한건 스위치에만 ARP테이블이 있는게 아니라, 각 컴퓨터에도 존재한다!

컴퓨터가 이미 통신하고자하는 IP의 MAC주소를 가지고 있다면 스위치에게 MAC주소를 찾아오라고 하지 않고,

MAC주소를 주면서 이 장치와 연결하겠다고 요청한다.

 

스위칭 허브?

 

https://ddidding.tistory.com/213 에 간단히 설명했다.

 

전송 방향에 따른 통신 방식

 

3 가지 종류가 있다.

  • 단방향 통신
    한쪽에서는 송신만, 반대편은 수신만 가능하다.
    ex) TV, 라디오

  • 양방향 통신(반이중 방식)
    하나의 통신선에서 송,수신이 가능하다.
    하지만 한쪽이 송신중이면 반대편은 수신만 가능하다. 
    ex) 더미 허브

  • 양방향 통신(전이중 통신)
    하나의 통신선에서 송,수신이 가능하다.
    한쪽이 송신중이더라도 반대편이 송신이 가능하다, 수신도 마찬가지
    ex) 스위칭 허브

 


용어 정리

 

데이터 링크 계층 :데이터 전송에 있어서 오류를 감지, 수정하는 계층

 

프레임 : 데이터 링크 계층에서 사용하는 데이터 단위, 다른 계층과 달리 데이터구조에 트레일러가 추가적으로 있다.

 

트레일러 : 전달한 데이터에 오류가 없는지 검출하기 위한 용도로 사용되는 데이터

 

CSMA/CD : 전류의 강도를 확인해 케이블이 사용 중인지 확인하는 방식

케이블이 사용 가능한지 확인하고 사용 가능하면 전송, 아니면 대기 (눈치 게임)

 

ARP : IP주소와 MAC주소를 매핑하기 위한 프로토콜

 

이더넷 : 허브나 스위치에 여러 컴퓨터를 연결한 형태의 LAN

 
모두의 네트워크
[모두의 네트워크]는 이제 막 네트워크를 공부하기 시작했거나 공부해야겠다고 마음먹은 초급자를 대상으로 한 입문서다. 네트워크의 개념, 비트, 바이트부터 OSI 계층, 무선 랜 구조까지 160개의 일러스트와 유쾌한 캐릭터들의 대화로 설명해 그림책을 읽듯 쉽고 재미있게 네트워크 관련 지식을 익힐 수 있다. [모두의 네트워크]로 누구나 쉽게 네트워크를 익혀 보자!
저자
미즈구치 카츠야
출판
길벗
출판일
2018.06.30

이 글은 위의 책을 읽으며 제 생각과 함께 정리하는 내용입니다.


물리 계층의 역할

 

OSI 7 계층 중 물리 계층은 컴퓨터들을 물리적으로 연결하여 데이터를 전기 신호로 변환하고 전달 하는 역할을 담당합니다.

 

전기 신호?

 

전기 신호는 전압의 변화에 의한 신호 입니다.

컴퓨터가 처리하는 데이터의 최소 단위인 비트(0과 1)를 전기 신호로 표현하면 이렇습니다.

이런 식으로 전압의 변화로 0과 1을 표현하여 비트를 전기 신호로 변환하는 것 입니다

 

누가 전기 신호로 변환을?

 

우리가 보내려는 데이터를 전기 신호로 변환해주어 내보내는 장치가 바로 랜 카드 입니다.

즉, 랜 카드는 데이터가 내 컴퓨터 밖으로 나가는 출발점 이라고 할 수 있습니다.

 

물리 계층의 통신 예시

 

  1. 랜 카드
    • 물리적 연결 : 랜 카드에 랜선으로 다른 장치와 연결합니다.
    • 전기 신호 전달 : 비트 데이터를 전기 신호로 변환하여 다른 장치로 전송합니다
  2. 리피터
    • 물리적 연결 : 네트워크 케이블을 통해 두 지점을 물리적으로 연결합니다.
    • 전기 신호 전달 : 약해진 신호를 받아 증폭한 후, 다시 전달합니다.
  3. 허브(더미 허브)
    • 물리적 연결 : 여러 포트에 케이블을 꽂아 물리적으로 연결합니다.
    • 전기 신호 전달 : 수신한 데이터를 모든 포트로 전달하여 모든 연결된 장치에 전기 신호를 전송합니다.

용어 정리

 

물리 계층 : 장치를 물리적으로 연결하고 전기 신호를 전달하는 계층

 

전기 신호 : 전압의 변화에 의한 신호

 

리피터 : 전기 신호를 증폭하여 다시 전달해주는 장치

 계층

 

모두의 네트워크 - 예스24

네트워크를 전혀 몰라도 괜찮다!초보자와 비전공자를 위한 가장 쉬운 네트워크 입문서[모두의 네트워크]는 이제 막 네트워크를 공부하기 시작했거나 공부해야겠다고 마음먹은 초급자를 대상으

www.yes24.com

이 글은 위의 책을 읽으며 제 생각과 함께 정리하는 내용입니다. 


프로토콜

 

네트워크는 컴퓨터가 연결되어 데이터를 주고 받는 것이다. 컴퓨터는 이 데이터를 주고 받기 위해 아무런 규칙이 없을까?

물론 있다. 컴퓨터 간의 통신 규칙을 모아둔게 프로토콜이다.

 

대표적인 프로토콜이 TCP/IP(4 Layer)OSI 7 Layer 이다.

 

OSI 7 Layer

 

OSI 7 Layer를 설명하기 전에 옛날으로 돌아가서 통신이 가능한 장치들(허브, 스위치, ...)이 있었다.

이 장치들마다 제조사가 달랐고, 이 제조사 마다 고유의 프로토콜을 이용했기 때문에 다른 제조사들과의 장비는 통신하기 힘들었다.

이렇게 가다간 같은 제조사로만 장비를 구성하지 않는한 쓸모가 없어져 높은 효용성을 위해 여러 나라가 모인 국제표준기구(ISO) 에서 "모든 장치가 통신될 수 있는 프로토콜 만들어 봤는데 어때?" 한게 OSI 7 Layer이다.

근데 중요한건 "어때?" 라고 제안한거 뿐이지 정말로 사용하지는 않는다. 하지만 이 프로토콜의 완성도가 잘 잡혀있어 이 프로토콜을 기반으로 현재 사용하는 TCP/IP같은 프로토콜이 탄생했다.

 

이 규칙은 7단계로 이루어져 있기에 7Layer라 한다.

7 계층 응용  계층
6 계층 표현  계층
5 계층 세션  계층
4 계층 전송  계층
3 계층 네트워크  계층
2 계층 데이터 링크  계층
1 계층 물리  계층

 

TCP/IP

 

OSI 7 Layer는 실제 사용하기에 너무 많은 단계가 나뉘었다. 그래서 좀 더 축약된 프로토콜이 TCP/IP다.

중간에 슬래시가 있는 이유는 TCP라는 프로토콜과 IP라는 프로토콜을 같이 사용하기 때문이다.(하나가 아님에 주의하자)

4계층 응용 계층
3계층 전송 계층
2계층 인터넷 계층
1계층 네트워크 인터페이스  계층

 

MAC 주소

 

일단 주소는 왜 있을까? 어떤걸 쉽게 식별하고 찾기 위해서다.

집 주소는 집을 쉽게 식별할 수 있으며, 컴퓨터도 메모리의 주소를 이용해 원하는 데이터를 찾아낸다.

 

MAC주소LAN카드를 식별해주며, 하나밖에 없는 코드를 LAN카드(하드웨어)에 부여하기에 MAC주소를 하드웨어 주소, 물리주소 라고도 한다.

유선 랜카드 (무선도 있음!)

물론 나는 컴퓨터를 대상으로 공부를 하기에 MAC주소는 LAN카드에 부여된다 했지만, 사실은 Network Interface Card로 LAN카드 처럼 통신지원되는 장비에 다 부여된다.

 

예를 들어 핸드폰에는 무선 LAN카드가 없지만 대신 LAN칩? 이라 해야하나 그런 부품이 들어가 있고 그 부품에도 MAC주소가 부여된다.

 

IP 주소

 

IP주소는 KT, STK, LG 등 인터넷 서비스에 가입하면 할당받는 주소이다. (마찬가지로 고유함)

일단 넘어가고 자세한건 뒤에 살펴본다.

 

포트

 

한 줄로 말하면, 응용 프로그램의 데이터 출/입구 번호 이다.

게임을 하면서 이벤트로 아이템을 받게될 때, 아이템의 데이터가 일단 우리의 컴퓨터까지 도착했다 생각하자.

근데 어떤 프로그램으로 데이터를 줘야하는가? 하면 이때 포트번호가 어떤 프로그램에게 가야하는지를 식별해준다.

 

반대로 우리가 데이터를 보낼때 이 데이터는 몇번 포트에서 출발한다~ 라고 도 얘기해줄수 있다.

 

캡슐화 역캡슐화

 

OSI 7 Layer에서는 각 계층을 지나갈 때마다 데이터(주소)가 붙여진다. 이 각 계층에서 붙여지는 데이터 마다 헤더라 불린다.

http://www.ktword.co.kr/test/view/view.php?no=379

※ 트레일러는 전달한 데이터에 오류가 있는지 검출하기 위한 용도로 사용한다.

 

이렇게 데이터가 붙여지는 과정을 캡슐화, 다시 데이터가 벗겨지는 것을 역캡슐화 라 한다.


용어 정리

 

프로토콜 : 컴퓨터간 통신하기 위한 규칙

 

OSI 7 Layer : ISO에서 제시한 표준 프로토콜, 

Application, Presentation, Session, Transport, Network, Data link, Physical의 7 계층으로 이루어짐

 

TCP/IP : TCP와 IP를 사용하는 프로토콜 방식

Applciation, Transport, Internet, Network Interface의 4계층으로 이루어짐

 

MAC 주소 : LAN카드에 부여되는 코드로, LAN카드를 식별하는 주소.

 

IP주소 : 통신업체로 부터 부여받는 코드로, 솔직히 아직 잘 모르겠음 추후에 업데이트.

 

포트 : 응용 프로그램을 식별하는 번호, 프로그램의 데이터 출/입 구 번호이다.

 

 

 

 

모두의 네트워크 - 예스24

네트워크를 전혀 몰라도 괜찮다!초보자와 비전공자를 위한 가장 쉬운 네트워크 입문서[모두의 네트워크]는 이제 막 네트워크를 공부하기 시작했거나 공부해야겠다고 마음먹은 초급자를 대상으

www.yes24.com

이 글은 위의 책을 읽으며 정리하는 내용입니다. 

2024.05.21 허브, 스위치 내용 추가


네트워크?

 

컴퓨터 네트워크 말고도 물류 네트워크 등 생각해보면 연결 되어 주고 받는 것 이라고 볼 수 있다. 컴퓨터 네트워크 같은 경우는 (컴퓨터가) 연결 되어 (데이터를) 주고 받는 것 이다.

앞으로 나오는 네트워크는 모두 컴퓨터 네트워크로 의미를 지정하겠다.

 

왜 필요한가?

 

아까 말했듯이 데이터를 주고 받고 싶어하기 때문에 필요하다.

데이터를 주고 받고 싶어하기 때문에 데이터를 주고 받았다ㅋㅋ

 

이렇게 데이터를 주고 받아 사용하는 경우의 예시는 이렇다.

● 컴퓨터와 프린터를 연결하여 출력하려는 데이터를 주고 받는 경우

● Github 처럼 각자의 컴퓨터가 연결 되어 같은 프로젝트의 데이터를 읽고 쓰는 경우

 

네트워크의 형태

 

통신 범위에 따라 LAN과 WAN으로 구분 된다.

LAN

Local Area Network로 건물 안이나 특정 지역을 범위로 하는 네트워크이다.

하나의 건물 내에 존재하는 모든 컴퓨터와 주변 장치를 연결하는 범위 이하가 LAN이라 생각하면 되겠다.

 

WAN

Wide Area Network로 2개 이상의 랜을 연결한 것을 의미한다.

각 차이를 정리하면 이렇다.

구분 LAN WAN
정의 근거리 통신망 광역 통신망
거리 제약 10km 이내 제약 없음
전송 속도 고속 저속

 

 

네트워크 구성 장치

 

이 파트는 너무 헷갈려서 천천히 다시 정리중이다 /  작성해야하는 장치 : 브리지, 라우터

1. 허브 (더미 허브)

태초에 통신이라 함은 컴퓨터와 컴퓨터, 1대 1연결이였다.

이 통신은 그냥 장치 없이 선 하나로 충분했다.

근데 후에 여러대의 컴퓨터가 통신을 하고 싶어 했다.

컴퓨터가 다섯개지만 선만 해도 10개, 컴퓨터마다 꽂을 구멍은 4개..

그래서 이러한 장치를 만들어 낸다.

가운데 있는 네모장치가 바로 초기의 허브(더미허브) 이다.

 

이 허브의 특징은 한 컴퓨터가 다른 컴퓨터에 데이터를 전송하고 싶어 허브에 데이터를 전송하면 다른 모든 장치는 받기 싫어도 허브가 모든 컴퓨터에게 데이터를 발신한다.

 

출처 : https://www.youtube.com/watch?v=U1-2gGD9sYk

그래서 나온 해결 방안이 MAC주소를 이용한 방법인데(MAC주소는 다음 포스팅에 작성)

데이터를 보낼때 전송하고 싶어하는 컴퓨터의 MAC주소를 같이 허브에 보낸다.

그럼 데이터가 모든 컴퓨터에게 갈텐데 여기서 컴퓨터는 자신의 MAC주소가 아니라면 수신하지 않고 삭제해버린다.

 

하지만 여전히 데이터를 모든 컴퓨터에게 보낸다는 단점은 여전했다. 또한 신호가 한 방향으로 밖에 갈수 없어 두 장치가 동시에 데이터를 전송할 수 없다는 단점이 있다.

 

그래서 이 모든 단점을 해결한 장치가 발명됐는데 그 이름은  스위치 이다.

 

2. 스위치 (스위칭 허브)

스위치는 허브와 비슷하게 데이터를 전송해주는 역할이지만 똑똑해져 연결된 컴퓨터의 MAC주소를 모두 알고있게 되었다! 이 MAC주소들은 밑으 표처럼 MAC 테이블로 관리된다

MAC주소 포트
11-11-11-11-11-11 1번
22-22-22-22-22-22 2번
... ...

 

하지만 스위치가 똑똑해졌다고 해서 처음부터 연결된 장치의 MAC주소를 알지는 못하는데, 한번은 모든 장치에 데이터를 보내 각 장치의 MAC주소를 받아와 MAC테이블을 업데이트합니다.

 

그래서 굳이 모든 컴퓨터에게 다 보내지 않아도 원하는 컴퓨터의 선으로만 데이터를 전송할 수 있게됐다.

 

또한 데이터 신호도 양 방향으로 전송이 가능해서 여러 컴퓨터가 데이터를 전송할 수 있게 됐다.

 

 


용어정리

 

네트워크 : 장치가 연결되어 데이터를 주고 받는 것

LAN : 짧은 거리의 장치를 연결하는 네트워크

WAN : 두 개의 LAN이 연결된 네트워크

대역폭 : 1초당 처리할 수 있는 데이터의 양

데이터 통신의 개요

 

데이터 통신 = 각종 통신기기 사이에서 2진수로 된 정보를 송,수신 하는 것을 말한다.

데이터 통신 = 데이터 전송 기술(송신) + 데이터 처리 기술(수신)

 

정보통신 = 데이터 통신을 포함하며 거기에 정보의 변환, 저장 과정이 추가된 형태의 통신이다.

 

데이터 통신과 정보 통신의 차이는

 

일단 DB를 배울때 자료(Data)와 정보(Information)의 차이가 나오는데

정보가 자료를 가공하여 처리한 결과물을 뜻한다.

 

고로 데이터 통신은 단순 송 수신 통신을 뜻하고

정보 통신은 데이터를 처리하는 과정이 추가되었다고 볼수있겠다.


통신의 3요소

 

  • 정보원(정보를 처리하여 전송하는 장치)
  • 전송매체(통신회선)
  • 수신원(정보를 수신하는 장치) 

뭐 당연한말이다.

 


전송매체(통신회선)

 

  • 꼬임선(이중 나선, 랜선)
  • 동축 케이블
  • 광섬유 케이블
  • 위성마이크로파

와 집에서 동축케이블쓰는데 느리다..

암튼 건 이러한게 있구나 넘어가야겠다.

 


통신 제어장치(Communication Control Unit)

 

통신 제어장치는 데이터 전송 회선과 주컴퓨터를 전기적으로 연결한다.

컴퓨터를 대신해 데이터 전송에 관한 전반적인 제어기능을 수행한다.

전반적인 제어기능 : 데이터의 실제 송신과 수신, 전송 제어 문자와 부호의 검출, 전송 과정에서의 오류 검사, 컴퓨터의 처리 능력에 비하여 과도하게 정보가 전달되는 것을 예방하는 흐름 제어, 회선 상태의 감시, 패킷 단위로 이루어지는 데이터 전송에서 패킷의 순서를 유지하고 각각의 패킷이 올바른 순서에 따라 전달되도록 보장하는 작업 등이 통신 제어에 포함된다.

 

제어기능에는 크게 3가지가 있다.

 

전송제어

  • 다중 접속 제어 : 하나의 통신회선을 여러개의 장치가 공유할 때 전송 회선을 선택
  • 교환 접속 제어 : 데이터 송/수신을 위한 회선의 설정과 절단

교환 : 영어로 Switching, 네트워크에서 적절한 경로를 선택하는 과정을 의미한다.

  • 통신 방식 제어 : 단방향, 반이중, 전이중의 통신 방식 제어

단방향 : 한쪽 방향으로만 전송 가능

반이중 : 양방향 전송이 가능하나 동시에는 불가능

전이중 : 동시에 양방향 전송 가능

  • 우회 중계 회선 설정 : 데이터 송/수신시 통신 회선에 오류가 발생한 경우 다른 우회 경로나 중계 경로로 정보를 전송한다.

동기 및 오류 제어

  • 동기 제어 : 컴퓨터의 처리 속도와 통신 회선 상의 전송 속도 차이 제어
  • 오류제어 : 통신회선과 단말기에서 발생하는 오류 제어
  • 흐름제어 : 수신 가능한 데이터의 양을 송신측에 알려 원활한 정보 전송 가능
  • 응답제어 : 수신 정보 확인 제어

기타

  • 제어 정보 식별 : 일반 데이터와 제어 정보 구분
  • 기밀 보호 : 암호화 제어

 


전처리기 (Front End Processor)

 

중앙 컴퓨터와 단말기사이에서 전송 처리를 먼저 수행함으로 컴퓨터의 부하를 줄여줍니다.

전송처리 : 메세지의 조립과 분해, 전송 메세지 검사

단말기 : 중앙 컴퓨터와 통신망으로 연결되어 자료를 입력하거나 출력하는 장치

ex) 컴퓨터, 핸드폰

 


주파수(Frequency) / 대역폭(Bandwidth)

 

 

주파수 : 단위시간(보통1초) 내에 신호 파형이 반복되는 횟수, Hz로 표현한다.

대역폭 : 주파스의 변화 범위, 상한 주파수와 하한 주파수의 차이

 


아날로그 / 디지털 전송

 

아날로그 전송

  • 아날로그 형태의 신호로 전달 됨
  • 신호 감쇠 현상이 심하여 장거리에 오류율 높음

 

디지털 전송

  • 디지털 형태의 신호로 전달 됨
  • 장거리 전송시 중계기(Repeater)에 의해 원래의 신호 내용을 다시 복원한 다음 전송하여 오류율 낮음
  • 대역폭을 효율적으로 이용해 더 많은 용량을 전송할 수 있음
  • 암호화가 쉬움

 


https://many258.github.io/study/data-communication-base/

 

[데이터통신] 데이터 통신 시스템의 기본

통신의 3요소 정보원(Source) 수신원(Destination) 전송매체(Transmission Media)

many258.github.io

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=deepb1ue&logNo=221182409375 

 

통신 제어장치

1. 통신 제어장치의 기능통신 제어장치(CCU, Communication Control Unit)는 데이터 전송 회선과 주...

blog.naver.com

소프트웨어

 

오늘날의 소프트웨어는

컴퓨터를 작동하고 특정 작업을 실행하는 데 사용되는 명령, 데이터 또는 프로그램의 집합 이라한다

저 특정작업에 따라 소프트웨어도 크게 두가지로 나뉜다.

 

1.응용 프로그램 소프트웨어(application software)

운영체제에서 실행되는 모든 소프트웨어

ex) 모든 게임, 파워포인트, 웹브라우저

 

2.시스템 소프트웨어 (Computer system software)

시스템 리소스를 관리 및 활용하기 위해 사용하는 프로그램

시스템 리소스 : 하드웨어

실행되는 응용 프로그램을 위한 플랫폼을 제공한다.

어셈블리 언어와 같은 저수준 언어로 작성된다.

ex) 운영체제, 어셈블러, 디버거, 컴퓨터 언어 번역기, 시스템 유틸리티

 


시스템 소프트웨어

 

시스템 소프트웨어도 기능별로 크게 두가지로 나뉜다.

 

1. 제어 프로그램(Control Program)

 

제어 프로그램이란 말 자체가 운영체제를 뜻하는 말 같다.

말그래도 제어를 담당하는 프로그램.

제어 : 시스템 전체의 작동 상태 감시, 작업의 순서 지정(스케줄링), 작업에 사용 되는 데이터 관리

감시 프로그램 각종 프로그램의 실행과
시스템 전체의 작동 상태를 감시한다.
작업 제어 프로그램 어떤 업무를 처리하고 다른 업무로의 이행을 자동으로 수행하기 위한 준비 및 그 처리에 대한 완료를 담당한다.
자료 관리 프로그램 주기억장치와 보조기억장치 사이의 데이터 전송과
보조기억장치 자료 갱신 및 유지 보수 기능을 수행한다.

 

2. 처리 프로그램

 

제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램

언어번역 프로그램 원시 프로그램을 기계어 형태의 목적 프로그램으로 번역함
ex) 어셈블러, 컴파일러, 인터프리터
서비스 프로그램 컴퓨터를 효율적으로 사용할 수 있는
사용 빈도가 높은 프로그램
문제 프로그램 특정 업무 및 해결을 위해 사용자가 작성한 프로그램

 


운영체제(Operating System)

 

밑의 두가지가 정의이자 목적이다.

 

1. Performance improvement

컴퓨터 하드웨어를 잘 관리하여 성능을 높인다.

- 운영체제가 없다면 사용자가 하드웨어를 모두 컨트롤해야함

 

2. Convenience to use

사용자에게 편의성을 제공하는것

- 운영체제가 없다면 이렇게 편하게 컴퓨터를 다룰수가 없다.

옛날에는 이렇게 다루기 쉽지가 않아서 컴퓨터를 전문적으로 다루는 직업까지 있었는데

그 직업의 이름이 Operator 였다.

 


기능 

 

1. 프로세스 관리(프로세스 생성과 제거, 중지 및 재수행)
2. 프로세서, 기억장치, 입출력장치, 파일 등의 자원 관리
3. 자원의 스케줄링
4. 사용자에게 편리한 인터페이스 제공
5. 시스템의 각종 하드웨어와 네트워크 관리
6. 시스템의 오류 검사 및 복구, 데이터 관리, 데이터 및 자원 공유
7. 자원 보호 기능 제공
9. 가상 계산기 능력 제공

가상계산기 : 한 대의 컴퓨터에 여러 운영 체제를 가동하여, 마치 여러 대의 컴퓨터를 사용하는 것과 같은 환경을 제공하는 기술

 

 

이 모든 기능들의 목적이 위에서 언급한 성능을 높이고 편의성을 제공 이라 할 수 있다. 

 


https://softwaretestingreference.tistory.com/143

 

소프트웨어 시스템의 범위와 종류는 무엇인가요?

목차 질문 ISTQB에는 "소프트웨어 시스템을 비즈니스 애플리케이션(예, 은행업무)에서 소비자 제품(예, 자동차)까지 생활의 많은 부분에서 사용되고 있으며..."라고 되어 있는데, 소프트웨어 시스

softwaretestingreference.tistory.com

추가로 보면 정말 좋은데 정말 명강의다

https://www.youtube.com/watch?v=mcS4n34wBcY 

 

스키마(Schema)

 

데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술하는 것

명세 : 자세히

기술 : 대상의 과정의 내용과 특징을 있는 그대로 서술

 

영문사이트

https://www.educative.io/blog/what-are-database-schemas-examples#what

데이터베이스에 데이터를 저장하는 것을 타나내는 추상적인 디자인

 

=>한마디로 데이터베이스의 디자인을 어떻게 할것인가? (설계도 느낌)

디자인이라 하니까 이해하기 편해졌다.


스키마의 종류

 

추상적인 디자인이라 하였는데 시점에 따라 3가지로 디자인이 나뉜다.

 

1.개념스키마(Conceptual Schema)= 데이터베이스 관리자의 시점

 

데이터베이스 관리자의 시점이라는건 부분부분적인 데이터가 아닌

전체 데이터베이스 를 목적으로하는 시점이며 (정말 개발하는데 있어서 저장되는 모든 데이터)

데이터베이스 : 데이터의 모음

개체 간의 관계와 제약조건을 디자인한다. (접근권한, 보안 및 무결성 규칙)

개체 : 실제로 저장된 값(인스턴스)

 

 

2.외부스키마(External Schema) = 서브 스키마 = 사용자 뷰

 

개념스키마가 전체적인 데이터를 의미한다.

그럼 사용자는 그 전체적인 데이터를 다 알아야할까?

사용자는 필요한 데이터만 접근하면 된다.

즉, 사용자에게 필요한 데이터를 목적으로하는 구성을 디자인한다.

이게 좀 이해하기 애매했었는데 내 생각에는 DB가 응용프로그램 하나에만 쓰이는게 아니라 여러 프로그램에 쓰이기 때문에

각 프로그램마다 필요한 데이터구성이 있을텐데 이 하나하나의 디자인을 외부스키마라고 하는거 같다.

 

3.내부스키마(Internal Schema) = 저장 스키마

 

저장장치의 시점으로 보는 디자인이다.

말 그대로 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 디자인

(레코드의 구조, 필드 크기, 표현방법...)

 

이 그림이 이해하기 제일 쉬웠다.


데이터베이스 언어(Database Language)

 

DBMS를 통해 사용 가능하며 기능과 목적에 의해 3가지로 나뉜다. 아잇싯팔 또 세가지네

 

1. 데이터 정의 언어(DDL : Data Definition Language)

 

DB를 구축하거나 수정할 목적으로 사용하는 언어

수정할 목적 : DB구조, 데이터 형식, 접근 방식, 외부 스키마 정의, 데이터의 물리적 순서 등 

데이터베이스 관리자가 사용한다.

종류 역할
CREATE DB, 테이블등을 생성
ALTER 테이블을 수정
DROP DB, 테이블을 삭제
TRUNCATE 테이블 초기화

 

2. 데이터 조작 언어(DML : Data Manipulation Language)

 

사용자로 하여금 데이터를 처리할 수 있게 하는 언어,

사용자와 DBMS간의 인터페이스를 제공한다.

사용자가 사용한다는걸 옆집 개도 알수있다.

종류 역할
SELECT 데이터를 조회
INSERT 데이터를 삽입
UPDATE 데이터를 수정
DELETE 데이터를 삭제

 

3.데이터 제어 언어(DCL : Data Control Language)

 

데이터를 보호하고 데이터를 관리하는 목적으로 사용

데이터를 관리 : 보안, 무결성, 데이터 회복....

종류 역할
GRANT 특정 DB사용자에게 특정 작업에 대한 수행권 부여
REVOKE 특정 DB사용자에게 특정 작업에 대한 수행권 박탈
COMMIT 데이터 처리의 작업 결과를 저장 반영,
하나의 복구 기점이 된다.
ROLLBACK 마지막 commit시점의 상태로 복원

 

 

파일 시스템

 

데이터를 파일 단위로 파일서버에 저장하는 방식도 있고

로컬에서 참조하는 파일을 뜻하는 방식도 있었다.

(=서버가 아닌 자신의 보조기억장치에 저장되어있는 파일)

보통 DBMS와 비교할때 사용되는 건 로컬에서 참조하는 파일을 뜻하는 경우 같다.

 

 

프로그램과 데이터 파일의 종속성이 높다.

파일 시스템은 쉬운 질의기능이 없기 때문에 개발자가 만들어야 한다.

  • 나중에 추가로 다른 데이터가 생겨 그 데이터를 다루는 기능이 필요할 경우 추가로 그에 맞게 이 파일을 사용하는 모든 프로그램을 다 변경해줘야 한다
  • 파일의 레코드 구조나 확장자가 변경되면 그에 맞게 이 파일을 사용하는 모든 프로그램을 다 변경해줘야 한다

 

동시성 없다

두 개 이상의 클라이언트가 파일에 접근할 때 동기화가 되지 않아 데이터가 제대로 저장되지 않을 수 있다

 

 

데이터 중복성이 높다

데이터의 중복을 피하는 기능이 없기에 중복된 데이터를 가질 수 있다.

밑의 단점들은 데이터가 중복되었을 경우 나오는 단점이다.

  • 일관성이 없음, 중복된 데이터에서 값이 변경될 경우 하나만 변경될 가능성도 있기에 
  • 각 프로그램마다 보안 기능이 다르다 =  중복된 데이터마다 동등한 보안 수준 유지 어려움
  • 경제성이 떨어짐, 같은 데이터가 여러 개 존재하니 저장공간 낭비다 
  • 무결성 유지 힘듦, 아무리 찾아봐도 일관성과 다른 게 없다.

 

 

DBMS(DataBase Management System)

 

데이터베이스를 공유하거나 데이터를 검색하거나 데이터를 저장하는 것처럼

데이터베이스를 조작, 관리하는 시스템

ex) Oracle, MySQL, MSSQL, MariaDB

 

 

DBMS의 기능

  • 정의(Definition): 데이터베이스에 저장될 데이터의 구조에 대한 정의(데이터 삽입이 아님!)와 응용프로그램이 이를 이용하는 방식을 정의하는 기능
  • 조작(Manipulation): 응용프로그램이 요청하는 데이터의 검색, 갱신, 삽입, 수정, 삭제 작업을 지원함
  • 제어(Contorl): DB에 접근하는 갱신, 삽입, 삭제 작업이 정확히 수행되어 무결성 유지, 허가된 사용자에게 허가된 데이터만 접근할 수 있도록 보안 유지, 여러 사용자가 동시에 접근하여도 항상 정확성을 유지할 수 있어야 한다.

 

DBMS의 장단점

장점 단점
데이터의 중복을 피할 수 있음
동시성 가능
일관성 유지
무결성 유지
보안 유지
데이터 통합 관리 가능
항상 최신의 데이터를 유지
데이터의 실시간 처리 가능
데이터의 논리적, 물리적 독립성이 보장
시스템이 복잡함
DBMS을 운영하기 위한 비용과 자원 요구

※ 논리적 독립성: 데이터의 논리적 구소를 변경하더라도 프로그램은 변경되지 않음

※ 물리적 독립성: 프로그램과 보조기억장치에서 독립시켜 새로운 보조기억장치로 변경하더라도 프로그램에 영향을 주지 않음

+ Recent posts