Lecture/서버와 인터넷 그리고 데이터 이야기(inflearn)

서버와 인터넷 그리고 데이터 이야기(2023.01.08)

Soo_buglosschestnut 2023. 1. 8. 14:50

서버와 인터넷 그리고 데이터 이야기(2023.01.08)(인프런)


1. 클라이언트와 서버

인프런 웹사이트에서 강의를 클릭하면 뒤에서는 어떤일이 일어나는가?

 

예를 들어, 우리가 인프런사이트에서 Java 강의를 클릭하면, 인프런 서버에 Java 강의를 요청한것이다.

여기서 정보를 요청한 쪽은 클라이언트, 정보를 요청받은쪽은 서버라고 한다.

 

서버는 클라이언트를 상대하는 서버들뿐만 아니라 다른 서버들도 많다. 이것을 WAS(Web Application Server)라 부른다.

 

클라이언트: 요청하는 쪽

서버: 요청받는 쪽

 

클라이언트 - 서버 구조(Architecture) : 클라이언트와 서버가 나누어 작동하는 것

 

2. 서버는 컴퓨터다

우리가 클라이언트가 아니라 컴퓨터도 클라이언트일수도 있다. 

 

서버에는 Django, Srping 등이 있다.

 

3. 온프레미스와 클라우드

개발을 하려면 서버역할을 하는 컴퓨터를 직접 사야하는가?

온프레미스와 클라우드가 있다.

 

온프레미스(On-premise): 내가 직접 자원관리의 주체가됨.

클라우드(Cloud): 남이 대신 만든것을 조금 떼서 가져다 쓰는것

 

쓰는 양이 많을 수록 온프레미스가 저렴하다. 

클라우드는 초반에 저렴하지만 일정량이 지나면 돈이 많이 든다.

그래서 큰회사들은 자체 데이터센터를 주로 가지고있는편이다.

 

클라우드 시작의 대중화는 AWS이다.

AWS는 처음에 자기들이 쓰려고 했던 온프레미스였다. 하지만 다른 회사들에게 빌려줌으로써 돈이 되어 사업성이 올라갔다. 그래서 지금의 AWS가 나오게된것이다. 

 

AWS는 다양한 서비스를 제공한다. 

Amazion EC2는 서버(컴퓨터) 하나를 임대해주는 개념이라고 보면된다.

이 서버를 임대해서 우리가 django, Spring을 설치하고 그러는것이다.

 

전세계에 서버실이 있는데 이것을 리젼(Region)이라고 부른다.

보통 강이나 바다근처에 위치한다. 가까우면 가까울수록 좋다.

 

약간 서버가 필요한데 서버가 컴퓨터잖아 컴퓨터 우리가사면 비싸..

그니까 임대해 그거 쓰는거 클라우드.. 클라우드라는 컴터만 있으면 뭐해 거기서 동작되게 해야되잖아? 

그래서 그 컴터에 spring django깔아서 쓰는거야.. 우리만의 서비스를 만들어주는거지..

3. 인터넷과 웹(1.0~3.0)

서버라는 컴퓨터가 존재하는데 이것들끼리 소통하면 어떤일이 벌어질까?

 

요청받고 요청하는 클라이언트 서버 아키텍처가 수없이 일어나게된다.

이러한 정보를 주고 받는 과정을 네트워크라고 한다.

 

프로토콜: 네트워크를 위한 수많은 약속

HTTP라는 프로토콜이 많이 사용되고있다.(정보를 주고받는 방법론이 궁금하면 HTTP공부)

 

API: 어떤 서버에 인터페이스(접근)하고 싶을때 쓰는 약속, 다른 서버의 데이터를 사용, 저장하기도 한다.

(서버간 정보저장을 알고싶으면 API공부)

 

Web: 서버들끼리 서로 연결되어있는 모습이 거미줄처럼 보인다.

WWW(World Wide Web): Web이 글로벌 수준으로 확장된것

 

웹 1.0: 일방향으로 정보를 제공하던 극초창기의 웹시대, 정보만 가져올수 있다.

웹 2.0: 양방향 소통, 클라이언트 입장에서 참여가 가능하다.(리뷰나 댓글을 쓰는 행동)

웹 3.0: 블록체인 기술 필두로 개인간 정보를 분산 저장, 개인별로 쪼개져서 저장이 되는 분산형 웹(비트코인, 이더리움등)

 

4. 데이터는 어떻게 쌓일까? (DB)

모든 데이터는 데이터베이스라는 곳에 저장되고있다.

 

서버는 데이터를 가져와주는 노동력 제공담당일뿐, 데이터가 저장되는 곳은 아니다.

DB(데이터베이스): 데이터가 저장이 되는곳

 

DB에 데이터가 저장되는 방법은 2가지이다.(대부분 회사는 관계형쓰되, 서브로 비관계형 쓰는 형태가 많음, 비관계형만 단독으로만 쓰지 않음.)

관계형 DB(RDB, SQL), 비관계형 DB(NoSQL)

 

관계형 DB(RDB, SQL)

RDB(Relational Database): 각각의 데이터 저장단위(테이블)이 서로 공통값(키)를 가지고 있는 형태, 쉽게 생각하면 엑셀 표에 데이터를 저장하는 것과 동일, SQL 사용해야지 알 수 있다.(Oracle, MySQL, MariaDB회사들이 있다.)

 

비관계형 DB(NoSQL): JSON형식 데이터타입이 주로 사용된다.(MongoDB, Cassandra, Firebase) 


완전 간단하게 본 느낌이라서, 모두의 네트워크라는 책 빌려서 다시 정리하는 계획으로 진해해야겠다.