찬란하게

[데이터 보안][python] 컴퓨터 구조 , HW, SW 의미 본문

AI (인공지능)/파이썬 프로그래밍

[데이터 보안][python] 컴퓨터 구조 , HW, SW 의미

체리핫 2021. 3. 15. 23:55

 

강사님께서 정말 중요한 말씀을 하셨다!
"디테일을 외우려 하지 말고, 전체적인 그림을 봐라!"

프로그래밍을 들어가기 앞서서,

가장 중요한 것은 컴퓨터 구조를 파악하고, 기억하는 것이다.


컴퓨터 구조 : H/W + S/W

- 컴퓨터는 H/W + S/W로 구성

- H/W : 반도체 소자, 전기적 신호를 받아 작동

- S/W : 명령어들과 DATA의 집합

 

- H/W와 S/W와 2 계층 구조는 S/W가 H/W에 지나치게 의존적이다.

따라서 H/W가 변경될 때 S/W도 달라져야 하며, 재사용성이 떨어져 비용이 증가한다.

 

=> 이런 문제점을 해결하기 위해 3 계층이 등장했다.


H/W + 응용S/W + 시스템S/W 

시스템 S/W가 H/W와 S/W를 연결해주면서 의존성을 덜어준다.

 

- 응용 S/W : 유저를 위한 S/W

- 시스템 S/W : 시스템을 위한 S/W

 

S/W는 명령어와 DATA를 담고 있다.

명령어와 DATA를 담은 S/W는 H/W로 전달되고 전기적 신호를 받은 H/W는 작동하게 된다.

 

- 프로그래밍이란 : 어떤 순서대로, 어떻게 작동되는가를 나타낸 것이다.

 

정보 보안 관점에서 H/W를 지키는 것이 네트워크 보안 -> 방화벽과 같은 OS 보안 -> 응용 S/W 보안은 시큐리티 코딩을 말한다.


네트워크 기술이 발달하면서 DATA와 CODE의 움직임이 가능해졌다.


H/W 

용어정리가 중요하다!

하드웨어에는 CPU와 주기억장치, 디스크가 있다. 

S/W 정보(명령어와 데이터)는 디스크에서 바로 CPU로 갈 수 없기 때문에 주기억장치를 거쳐서 간다.

 

- CPU :

중앙 처리 장치, ARU 또는 제어 연산만 가능, 1 수행

 

- 주기억 장치 :

DATA + 명령어들

RAM -> 휘발성

MAIN 함수, 즉 시작 포인트를 CPU에게 알려준다.


CPU

CPU의 제어 연산의 경우 제어장치를 거친다.


CPU는 저장능력이 없다.

따라서, 연산 후에는 꼭 주기억장치에 저장을 해야 한다.


S/W : 명령어 + code

SDK

파이썬은 도구일뿐이다!

- SDK : Software Development Kit : 소프트웨어 개발 키트 : 번역과, 로드와 같은 역할을 해준다.

- 파이썬 : 명령어를 전달하는 도구


프로그래밍 과정

- 프로그램 작성 과정

1) 데이터를 준비

2) 준비된 데이터로 명령어를 작성

 

3+10을 출력하는 프로그램을 작성한다면,

1) 3을 주기억장치에 적재 -> X는 주기억장치 위치정보

2) 10을 주기억장치에 적재 -> Y는 주기억장치 위치정보

3) X+Y를 한 후에 주기억장치에 기억시켜라 -> R = X+Y

4) print(R)

 

 

CPU는 주기억장치와만 연락을 주고받는다.


IDE

- IDE : Integrated Development Environment : 통합 개발 환경 : SDK에 얹는다


OS

메모리의 중요성, 주소값의 중요성

- OS :

메모리 관리 -> 시스템 관리 -> 시스템 S/W

주소와 변수를 맵핑하는 방식

 


메모리 관리

- 효율적인 메모리 관리

메모리를 쓰고 나가면서 메모리를 삭제한다면 비용이 너무 많이 들게 된다.

메모리를 쓸 다음 사람이 값을 덮어써버린다면, 비용을 절감할 수 있게 된다.

덮어쓰는 개념이 초기화다.

 

- 할당 : 전에 쓴 사람의 값이 남아있음 (주소만 할당)

- 초기화 : 후자가 원하는 DATA로 할당