📖 책 도서

IT도서 : 비전공자를 위한 이해할 수 있는 IT지식 - [2장] 프로그래밍 언어 & 운영체제 / [3장] 네트워크, 클라이언트, 서버

핑크빛연어 2022. 2. 27. 18:35

 

2장] 프로그래밍 언어 & 운영체제

 

 

🚨 컴파일러

• 인간과 컴퓨터 사이에서 인간의 요구를 컴퓨터로 전달해준다
• 개발자는 컴파일러에게 문서로 일을 시키는 사람
• 자바, 파이썬, 루비, 스위프트 등 영어로 되어 있는 프로그래밍 언어를 사용해 컴파일러에게 명령을 전달하면,
  컴파일러가 그 명령을 기계어인 0과 1로 변환해 컴퓨터에게 전달을 하는 방식
• 컴파일러는 코딩한 문서를 0과 1로 바꿔서 컴퓨터에게 전달해준다

 

🚨 프로그래밍 혹은 코딩

• 프로그래밍 언어로 문서 작업하는 행동

 

🚨 통합 개발환경 IDE (Integrated Development Environment)

• 개발을 하기 위한 모든 것들을 제공해주는 환경
 - Android Studio (안드로이드 애플리케이션 개발 용도)
 - Xcode (애플 운영 체제 위의 애플리케이션 개발 용도)
 - Eclipse (C/C++ 개발, 자바 개발, 웹 개발 용도)
 - PyCharm (파이썬 개발 용도)

 

🚨 프로그래밍 언어

저수준 언어

• 컴퓨터 친화적인 언어
 - 컴퓨터가 어떤 일을 하는지 구체적으로 꼼꼼하게 적어줘야 한다
 - 컴퓨터 입장에서는 구체적으로 적혀있으니 일하기 쉽다
 - 낮은 사양의 컴퓨터에서도 원활히 작동한다

고수준 언어

• 인간 친화적인 언어
 - 사람들이 학습하기 쉽다 -> 쓰기도 편리하고 유지보수도 저수준 언어에 비해 쉽다
 - 대신 컴퓨터가 더 많이 고민해야 하기 때문에 저수준 언어보다 작동이 느리다

저수준과 고수준 언어

 

🚨 컴퓨터의 구성 요소

• CPU : 컴퓨터의 머리, 데이터 연산 처리
• 메모리 : CPU의 작업 공간
• 보조기억장치 : HDD, SSD - 컴퓨터의 창고
• 메인보드 : 이 부픔들을 메인보드라고 하는 판에 끼운다
- 포토샵 실행 시 Program files - Adobe - Photoshop 안에 포토샵 실행 파일을 클릭하는데, 
  보조기억장치에 저장된 프로그램을 실행시켜 CPU가 일하게 하는 것
- 보조기억장치에서 실행에 필요한 데이터가 메모리로 올려서 실행시키는 것
- CPU 가 메모리 위에서 빠르게 작업을 수행할 수 있게 된다

 

🚨 운영체제

• 운영체제는 우리 대신 하드웨어를 관리
• 운영체제가 보조기억장치(HDD, SSD)를 관리하고 있기 때문에 가능
 - 프로그램 설치, 실행, 메모리 관리 등 우리가 아는 컴퓨터를 기본적으로 작동하게 해주는 소프트웨어
• 운영체제마다 사용하는 언어가다르다
 - 애플의 운영체제 위에 돌아가는 프로그램을 만드려면 Objective-C 혹은 스위프트라는 언어를 사용
 - 구글 운영체제 위에 돌아가는 프로그램을 만들려면 자바 혹은 코틀린(Kotlin)이라는 언어를 사용

 

 

 


 

3장] 네트워크, 클라이언트, 서버

 

 

🚨 네트워크 유형

LAN (Local Area Network)

로컬 영역 네트워크 (좁은 지역, 좁은 범위)
- 컴퓨터가 연결된 작은 지역
ex) 집, 피시방, 사무실 등

MAN (Metropolitan Area Network)

대도시 영역 네트워크 (도시 범위)
- 도시의 여러 LAN 을 하나로 연결해 만든 네트워크
ex) 서울시, 성남시 등

WAN (Wide Area Network)

광범위 영역 네트워크 (광대한 범위)
- 도시와 도시, 나라와 나라를 모두 연결해서 만든 네트워크
ex) 대한민국, 미국, 중국 등

LAN 이 모여서 MAN 이 되고, MAN 이 모여서 WAN 이 된다.

 

✓ App Store(애플) 에서 카카오톡 다운로드 받기 클릭 시

1. 내 휴대폰에서 가까운 기지국으로 카카오톡 설치파일을 보내라는 신호를 요청한다
2. 신호가 WAN 에 따라 App Store 로 이동해서 정해진 컴퓨터 주소로 신호가 전달된다
   (애플이 가지고 있는 컴퓨터로 신호가 간다)
3. App Store 에서 카카오톡 설치파일을 기지국으로 전송, 기지국은 내 스마트폰으로 해당 파일을 전송 
   (카카오가 앱스토어에 설치파일을 올려놓았기 떄문에 애플은 카카오톡 파일을 가지고 있고, 
    애플의 컴퓨터는 카카오톡 설치 파일을 우리의 컴퓨터로 보내준다)
4. 다운로드 중이라는 화면이 뜨고 잠시 뒤 카카오톡이 설치된다
5. 설치된 앱을 클릭 시 컴퓨터의 보조기억장치(HDD, SSD)에 카카오톡 실행 파일들이 저장된다
6. 내가 카카오톡 아이콘을 누르는 순간 실행에 필요한 부분들이 메모리 위로 올라온다
7. CPU가 이 데이터들을 처리하며 카카오톡이 동작한다

 

✓ 카카오톡에서 이미지, 동영상을 다운로드 시

1. 내 휴대폰에서 가까운 기지국으로 동영상을 보내달라는 신호를 요청하면,
2. 카카오톡 프로그램이 지정해 놓은 주소를 따라서 카카오톡이 켜놓은 컴퓨터로 신호가 간다
3. 신호를 받은 컴퓨터에서는 이미지 파일, 동영상 파일 등등을 보내준다
4. 그렇게 보낸 파일들을 우리의 스마트폰에서 볼 수 있다


 

🚨 IP 주소

• 이미지 파일,동영상 파일, 메시지 등을 보내기 위한 해당 컴퓨터가 위치한 주소
• 인터넷에 접속하는 순간 우리의 컴퓨터는 지금 위치에 맞는 IP주소를 갖게 된다
• 12자리 숫자가 마침표(.)로 구분된 모습을 갖는다
• 위치에 따라, 컴퓨터에 따라 고유하다 (즉, 집의 IP주소와 카페의 IP주소가 다르다. 이동하면 IP주소는 계속 바뀐다)
• IP는 0~255의 숫자만 사용할 수 있다는 한계가 있기 때문에 최근에는 숫자 구분을 4개에서 6개로 늘린 IPv6를 함께 사용하고 있다

 

 

🚨 클라이언트 & 서버

클라이언트(Client), 프론트 엔드(Front-End)

- 데이터를 요청하고 받는 컴퓨터
- 파일을 달라고 요청하는 컴퓨터, 스마트폰이나 고객의 컴퓨터

서버(Server),  백 엔드(Back-End)

- 데이터를 제공해 주는 컴퓨터
- 클라이언트의 요청에 응답하는 컴퓨터
- 파일을 주는 컴퓨터 

ex) 카페의 손님 : 클라이언트, 카페의 직원 : 서버, 카페의 커피 : 데이터

 

리눅스

• 리눅스는 운영체제(OS) 이다
• 리눅스 위에서 서버 프로그램을 돌린다
• 하드웨어를 직접 컨트롤하지 않고 프로그래밍 언어로 코딩된 프로그램을 동작하게 하려면
  운영체제 위에서 프로그램을 돌려야 한다
• 윈도우 OS, 맥 OS, iOS, 안드로이드 OS 말고 리눅스를 쓰는 이유 
  -> 무료이기 때문! 리누스 토발스가 깃(Git)과 함께 리눅스를 만들었다
• 우분투(Ubuntu) -> 리눅스의 유면한 버전 중 하나
• 하드웨어를 관리해서 사용자가 프로그램을 사용하기 쉽게 도와주는 운영체제
• 레드햇(Red hat) -> 리눅스 버전 중 리눅스를 개량해서 유료로 판매

 

개인 서버를 운영하면 힘든 이유?

- 전원이 꺼지는 순간 서버는 정지한다
- 서버 컴퓨터가 고장나면 저장된 모든 데이터가 복구할 수 없이 날아갈 수도 있다 -> 여러가지 리스크가 발생
- 호스팅 업체(서버 서비스를 제공, 관리해주는 업체) 가 생겨남 -> 해당 서비스를 대신해주는 업체
ex) Cafe 24, 가비아 등 
ex) AWS(Amazon Web Services)

 

 

감사합니다 ⭐︎

728x90
반응형