MS, IBM, 호스팅업체까지 모두 클라우드 서비스를 하고 있습니다. 하지만, 정작 해외 기업에서 제공하는 클라우드 서비스는 무언가 국내 실정에 안 맞거나 어렵기까지 한 UI를 가지고 있는데요. 네이버가 기업용 클라우드 서비스를 시작하였습니다. 국내 실정에 맞게 또 글로벌하게 구축한 경험을 토대로 기업용 클라우드 서비스를 진행하고 있는데요.

직접 네이버 클라우드 플랫폼을 써보면서 어떤 제품인지 알 수 있었습니다. 제가 IT개발자라서 그런지 API 개발, MSSQL 클라우드 서비스, APP개발서버, 파일 배포 서버 등의 다양한 서비스를 제공하는 네이버 클라우드 플랫폼을 미리 엿볼 수 있었습니다. 직접 네이버 본사에서 해당 서비스에 대해서 듣고 직접 서버구축까지 해볼 수 있었는데요. 

네이버 클라우드 플랫폼은 다양한 경험과 대규모 인프라경험을 바탕으로 기업들에게 편리하고 빠른 클라우드 서비스를 해준다는데, 어떤 비즈니스 플랫폼인지 알아보고자 합니다.




네이버 클라우드 플랫폼 서비스는 큰 틀 위에서 움직이는 서비스 중 하나입니다. 글로벌 리즌으로 제공되는 서비스로 매니저먼트와 보안을 갖추고 컴퓨터, 스토리지, 네트워크, 데이터베이스, IoT, AI, 프레임워크, OPEN API를 갖춰 결국 비즈니스 어플리케이션과 마켓 PLACE까지 진출되는 로드맵을 가지고 있습니다.

네이버는 국내 1위 포털 사이트로 그간 운영해온 다양한 서비스 경험이 이번 네이버 클라우드 플랫폼에도 반영되는데요. 국내 최대 규모의 데이터센터인 각을 비롯한 전세계를 잇는 네트워크를 구축하고 있는 회사입니다.



네이버의 기업용 클라우드서비스


클라우드 서비스는 이제 IT업계에서는 거스를 수 없는 서비스 중 하나입니다. 기존에는 서버를 구매하고 구축하기 위해서 엄청난 비용과 운영상의 어려움을 겪었다면, 이제는 운영 능력이 없는 스타트업 기업도 단순히 클라우드 서비스를 신청하여 서버를 사용할 수 있는 것이죠.

빠르게 서비스할 수 있다는 장점과 운영상의 어려움도 클라우드 서비스에서 해결해주니, 기업으로서는 골치 아픈 것이 줄어 든다고 볼 수 있습니다.

클라우드란 서버가 어디에 있든 이제 쉽게 기업은 글로벌 서비스를 운영할 수 있게 되는 것입니다.





그럼 나에게 맞는 클라우드 서비스는 무엇이 있을까요? 저는 서버 추가만 해보았는데 전체 상품을 열어 보면 다양한 상품군을 가지고 있네요. 

컴퓨터, 스토리지, 네트워킹, 데이터베이스, 매니지먼트, 보안, 글로벌 리즌까지 모든 상품을 갖추고 있는 네이버 클라우드 플랫폼 서비스입니다.

그럼 직접 네이버 클라우드 플랫폼 서비스를 이용해보면서 서버를 신청을 해보죠.



네이버 클라우드 플랫폼 서비스는 기본적으로 50GB용량이 주어지는데, 서버의 사양이 높아야 하면 램을 늘리거나, 하드 용량을 더 추가하여 늘릴 수 있습니다. 초기에 서버의 유저가 적다면, 적은 비용으로 바로 서버를 운영할 수 있다는 장점이 있습니다. 운영이 잘되고 사용자가 늘어 난다면, 바로 서버의 사양을 높여 반영할 수 있다는 게 네이버 클라우드 플랫폼의 장점입니다.



기업용 네이버 클라우드 플랫폼 서비스 사용법(서버 추가하기)

네이버 클라우드 플랫폼 서비스를 신청하였습니다. 그리고 서버를 바로 추가하여 운영해 볼 텐데요. 왼쪽 메뉴의 SERVER를 눌러서 서버 생성 버튼을 눌러 줍니다.



서버는 리눅스 서버부터 윈도우 서버까지 다양한 OS를 지원합니다. 저는 윈도우 서버 계열인 windows 2012R2 64Bit 서버를 만들어 보겠습니다.


서버의 이름을 정합니다. 최소3글자와 15자이하로 입력하면 됩니다.


서버의 스토리지 종류는 가장 빠른 SSD 선택도 가능합니다. 클라우드 플랫폼 호스팅도 SSD라 빠른 속도를 제공하여 주는군요. 상대적으로 저렴한 HDD로 CPU 2코어로 디스크 50GB 용량으로 신청하였습니다. 



서버 설정 후, 서버에 대한 인증키를 생성할 수 있습니다. pem 파일로 내려 받아지는데, 이것은 나중에 서버의 관리자 패스워드를 알아내는 인증키로 사용됩니다. 

[인증키 생성 및 저장] 버튼을 눌러 줍니다.



ACG는 일종의 방화벽입니다. 네트워크 접근 제어와 관리를 담당하며, 서버들의 접근을 제어하고 관리하여 보안 규칙 단위로 서버들을 관리할 수 있는 기본적인 접근 제어를 구현합니다.



모든 설정이 끝났고 서버 생성을 눌러 줍니다. 이제 조금 기다리면 서버가 생성되며, 생성된 후에는 이메일로도 알람이 옵니다.  언제 생성되었는지 이메일 푸시로 받을 수 있어 알기 쉽죠.



서버는 아직 생성중이네요. 상대적으로 리눅스 서버가 생성이 더 빨랐습니다.



서버가 생성되었습니다. 이메일로 푸시가 오니 편하군요.


서버는 생성 되자마자 보안상 공인IP가 할당되어 있지는 않았습니다. 공인IP 가 없으면 외부에서 접근이 안되니 IIS서버로 접근이 안됩니다. 그래서 PUBLIC IP (공인IP)를 눌러서 공인IP를 신청합니다.


설명이 어려울 수 있죠? 그래서 다양한 도움말을 제공하여 주고 있습니다. 풍선말로 설명을 해주고 있어서 마우스만 가져가도 정보를 알 수 있게 되어 있습니다. 또 메뉴 팝업 설명으로 간편한 가이드를 받을 수 있습니다.



또 FAQ 로 사이트로 이동하여 설명을 받을 수 있습니다. 위키페이지처럼 상세한 설명이 있으니 중간TO 매니저가 보면서 네이버 클라우드 플랫폼 서비스를 교육할 수 있습니다.


공인IP를 신청하였습니다. 서버에는 미할당하였는 데 이를 선택하여 할당하여 줍니다.



신청된 공인IP를 할당하고 싶은 서버를 선택하여 부여합니다.



이제 서버는 외부로 연결이 되게 공인IP를 부여 받았습니다. IIS 서버로 웹서버로 연결을 하면 열립니다.



서버 관리를 위해서 알려진 포트를 숨길 필요가 있는데요. 이럴 때, 포트포워딩을 설정할 수 있습니다. 3389 포트는 터미널 포트로 외부에서는 3333으로 호출되게 바꾸어 볼 수 있습니다. 이렇게 알려지지 않은 포트를 운영하면 보안상 덜 위험할 수 있어 좋습니다.


ACG가 기본적으로 생성되어 있는데요. 앞서 설명한 것처럼 보안장치입니다.



ACG에는 내부 포트들의 인바운드/아웃바운드를 설정할 수 있습니다. 0.0.0.0 IP대역으로 3389 터미널 포트와 22번 포트가 허용되어 있습니다. 서버에서 운영될 응용프로그램이 사용하는 포트가 있다면 이를 허용하기 위해서 사용하면 됩니다.


서버를 원격 터미널로 접근하고 싶다면, 서버의 패스워드를 알아야 합니다. 서버가 신청되어 생성될 때 임의로 패스워드가 지정되었고 이를 알 수 있는 방법은 [관리자 비밀번호 확인] 메뉴를 눌러서 확인할 수 있습니다.


서버 신청시 받은 인증키를 선택합니다. pem 확장자로 된 인증키를 선택하면 됩니다.




인증키를 선택하면 이렇게 서버의 비밀번호가 보여집니다. 이를 관리하였다 접속할 수 있습니다.




서버의 모니터링을 한눈에 볼 수 있는데요. 아직 신규서버라 Disk 의 사용이나 I/O 전송량도 크지 않습니다. 만약 CPU사용량이 99%를 넘거나 한다면 관리자에게 알려 주어야 할 것 같은데요. 이런 관리도 가능합니다.


서버 선택 후 상세모니터링 서비스 설정을 눌러 줍니다.


이렇게 상세 모니터링 서비스를 신청하고 서버에 대한 상세 모니터링을 할 수 있는데요.


테스트를 위해서 서버의 CPU 부하가 10% 가 넘으면 알람이 오게 설정하였습니다.



통보 방법은 SMS와 이메일로 보내게 했습니다.



임계치는 CPU10% 인데요. 이를 넘으면 제 스마트폰으로 문자와 이메일이 오게 됩니다.




이메일로 서버의 이상을 알려 왔습니다.


또 설정해둔 스마트폰으로 서비스 상태를 알려 왔는데요. 상세 모니터링으로 설정해둔 조건에 해당되면 관리자에게 바로 알려주니, 서버에 장애가 발생해도 즉각 상태를 인지하여 대처할 수 있게 됩니다.

이런 알람 서비스는 실제로 운영하는 서버에 디스크용량이 다 차거나, CPU 사용량이 너무 많아졌을 때 받으면 좋습니다. 서버에 부하적인 문제가 크니 이를 해결해주는 진단용으로 사용하는 것이죠.

이렇게 해두어야 서비스의 장애가 발생하지 않고 미연에 방지할 수 있는 것입니다.


네이버 클라우드 플랫폼 서비스로 운영되고 있는 발표자의 PHP운영페이지의 모습입니다.



만약 서버의 스펙을 높이고 싶다면, 서버 타입을 변경하여 CPU 코어를 늘리거나, 메모리, 디스크를 증설 할 수 있습니다.



서버를 자동으로 생성하게 스크립트 쉘을 작성한다던지 보다 전문적인 운영방법도 있는듯합니다. 설명을 읽어보면 쉽게 운영할 수 있게 되어 있는데요. 만약 잘안되고 장애가 발생한다면?



365일 쉬지 않고 24시간 지원이 되는 고객센터를 가지고 있습니다. 안정적인 서비스를 위해서 로드밸런서를 운영하고 있어 네트워크 트래픽을 분산하여 서버의 부하를 경감하여 주는데요. 대규모의 서비스도 네이버 클라우드 플랫폼 서비스라면 문제가 없어 보입니다.



모르는 것이나 장애가 발생한다면 24시간 쉬지 않고 운영되는 고객지원실로 문의 할 수 있습니다. 


네이버 클라우드 플랫폼 서비스 무료체험 이벤트


기업은 관리자라면 네이버가 하는 서비스에 귀 기울여보고 싶을 겁니다. IT기업 중에는 큰 기업이 하는 클라우드 플랫폼 서비스이니 관심이 갈 텐데요. 사전 체험을 통해서 어떤 클라우드 플랫폼 서비스인지 알아 볼 수 있습니다.

5월 16일까지 신청이 가능한 네이버 클라우드 플랫폼 서비스는 2코어CPU 1대, 공인IP 1개, Network Traffic 1TB, 스토리지 100GB, 파일스토리지 100GB, CDN 100GB 를 제공합니다. 선착순 1000명에게 제공된다니 조금 서둘러야겠네요.



무료 체험자에게는 또 다른 혜택이 있는데요. 콘솔 내 사용후기를 올리 분에게 모두 스타벅스 아메리카노 쿠폰을 준다고 합니다. 또 무료 체험 기간 중 사용량이 많고 충실한 후기를 남겨준 300분에게는 추첨으로 체험기간 종료 후 즉시 사용할 수 있는 50만원 상당의 추가 무료 혜택이 주어진다고 합니다!


▲ 네이버클라우드 무료 체험 신청하기

http://www.ncloud.com/freeTrialApply



출처: http://ndolson.com/4133 [엔돌슨의 IT이야기]

출처: http://ndolson.com/4133 [엔돌슨의 IT이야기]

트랙잭션( transaction ) 개념을 말하자면

데이터베이스 내에서 한꺼번에 수행되어야할 일련의 연산들 입니다.
간단하게 말하자면 전부 되거나~~ 전부 안되거나~~

트랙잭션 의 모든 연산은 반드시 한꺼번에 완료가 되야 하며
 그렇지 않은경우에는 한꺼번에 취소되어야 하는 원자성을 가지고 있습니다

한꺼번에 완료가 된경우에는 성공적인 종료 COMMIT 

이 경우에는 작업결과는 데이터베이스에 반영이 되게 됩니다.

취소가 된경우에는 비정상적인 종료 ROLLBACK 

이 경우에 작업결과는 모두 취소되게 되어 데이터베이스에 영향을 미치지 않게 됩니다. 



이 트랙잭션에 성질들을 보게되면 

1. 원자성(Atomicity)

분리 할수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소 되어야 합니다.

2. 일관성(Consistency)

- 사용되는 모든 데이터는 일관되어야 합니다.

3. 격리성(Isolation)

 - 접근하고 있는 데이터는 다른 트랜잭션으로 부터 격리 되어야 합니다.

트랜잭션이 진행되기전과 완료된 후에 상태를 볼수 있지만

트랜잭션이 진행되는 중간 데이터는 볼수 없습니다.

4. 영속성(Durability)

- 트랙잭션이 정상 종료되면 그 결과는 시스템에 영구적으로 적용되어야 합니다.

5. 순차성(Sequentiality)

- 데이터를 다시 로드하고 트랜잭션을 재생하여 원래 트랜잭션이 수행된 후의 상태로

 데이터를 되돌리는 것을 말합니다.


트랙잭션의 예를 하나 들어 이해를 해볼게요ㅎㅎ


저는 카드하나를 들고서 은행 인출기 앞으로 갑니다.

처음에     카드를 넣습니다

두번째로     어떤거래를 할지 선택을하고

세번째로     비밀번호를 눌러 인증을 받고

네번째로     거래를 완료 하겠죠

이 네가지 과정을 묶어서 트랜잭션이라고 합니다.


거래까지 완료됬으면 COMMIT 

중간에 비밀번호를 틀리거나.. 인증을 받았는데 거래를 취소하거나 하는 일이

 발생해서 처음으로 돌아갈경우에는 ROLLBACK 이라고 합니다.



출처: http://121202.tistory.com/17 [책방 창고]

Untitled

[관계형 데이터베이스] - ER 다이어그램 (Entity-Relationship Diagram) 본문

데이터베이스

[관계형 데이터베이스] - ER 다이어그램 (Entity-Relationship Diagram)

Bool 2016.12.10 01:42
1. 개요

ER 다이어그램은 ER 모델 (Entity-Relationship Model)을 기반으로 데이터베이스의 논리적 구조를 표현하기 위한 도구이다. ER 다이어그램에는 ER 모델과 같이 개체 (entity), 속성 (property), 관계 (relationship)가 존재한다.


2. 구성 요소

ER 다이어그램을 구성하는 각 구성 요소들의 기호는 아래의 [그림 1]과 같다.


[그림 1] ER 다이어그램의 구성 요소 및 기호


위의 [그림 1]에 나타낸 기호 이외에도 total participation은 double line으로, subtype과 supertype 관계는 supertype에서 subtype으로 향하는 화살표로 나타낸다.


3. ER 다이어그램의 변환

ER 다이어그램은 데이터베이스를 설계하기 위한 도구이기 때문에 ER 다이어그램으로 작성된 것을 실제 데이터베이스로 변환하는 작업이 필요하다. 다음은 ER 다이어그램을 구성하는 요소들을 실제 데이터베이스로 어떻게 변환하는지 보여준다.


  • 개체 (entity): 개체가 regular entity인 경우에는 base table (base relation)로 변환한다. Table의 key는 ER 다이어그램에서 정의된 key attribute를 이용한다.
  • many-to-many relationship: 이러한 관계는 base table로 변환한다. 두 개체를 각각 base table로 정의할 수도 있고, 두 개체가 연관된 relationship 자체를 base table로 정의할 수도 있다.
  • one-to-many relationship: 이러한 관계는 따로 table로 변환할 필요가 없다. 단순히 many 쪽에 해당하는 개체에 foreign key를 추가하기만 하면 된다.
  • weak entity: 개체를 정의하기 위해 외부에서 가져온 속성을 foreign key로 설정한다. 그 다음, weak entity의 key와 foreign key를 조합하여 primary key를 생성한다.
  • 속성 (attribute): 속성에 해당하는 요소들은 테이블의 필드로 변환된다.
  • subtype과 supertype: subtype과 supertype에 해당하는 개체는 동일한 primary key를 갖는다. 또한, subtype에서 primary key는 foreign key의 역할도 한다.


매번 SQL을 만드시느라 고생하셨죠?

토드에는 sql을 자동으로 만들어주는 기능이 있습니다.


file아래 schema browser버튼을 클릭합니다.


쿼리를 생성할 테이블을 선택합니다.


테이블에서 오른쪽버튼 클릭 후

generate statement 후 select 등 필요한 쿼리를 선택합니다.



테이블에서 오른쪽버튼 클릭 후

generate statement 후 select 등 필요한 쿼리를 선택합니다.


insert, merge, select, update 등 쿼리를 자동으로 생성해줘서

편리하게 사용할 수 있습니다.



데이터 무결성이란 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 데이터의 변경이나 수정시 제한을 두어 안정성을 저해하는 요소를 막아 데이터 상태들을 항상 옳게 유지하는 것을 의미한다.

 

도메인 무결성

컬럼에 대한 무결성을 보장하는 것으로써 해당 컬럼이 널을 허용하거나, 혹은 데이터타입이 적절하거나, 적정한 형식의 데이터가 저장되어있는지를 확인하는것으로써 체크(Check), 디폴트(Default), 룰(Rule) 등의 제약(Constraints)들로 이러한 도메인 무결성을 보장할 수 있다.

 

주민등록번호 컬럼에 틀린 형식의 데이터가 들어가는 경우, '남'|'여'로 입력되는 성별 컬럼에 '남자', 'Male' 등의 데이터가 들어가는 것도 도메인 무결성을 위반하는 것이다.

 

개체 무결성

테이블에 저장되어 있는 컬럼의 값이 동일 개체, 즉 테이블에 저장되어 있는 다른 행의 컬럼값과 비교했을때 중복되지 않아야 하는 경우 이러한 무결성을 지키도록 하는 것이 개체 무결성이다.

사용자 테이블(TB_Member) 과 같이 모든 사용자가 구분된다는 전제 조건이 있는 테이블이라면 동일한 아이디나 주민등록번호가 저장될 경우 개체 무결성을 위한한 것이다.

이러한 개체 무결성을 지원하는 구문은 프라이머리키 제약조건(Primary key constraints)이나 유니크(Unique constraints) 등을 통해 구현할 수 있다.

 

참조 무결성

개체와 개체간에 참조관계가 있을 대 이 두 개체간에 데이터가 일관성을 가질 수 있도록 보증하는 방법을 참조 무결성이라 한다.

일반적으로 외부키(Foreign key)로 제약을 주어 무결성을 보장할 수 있고 트리거를 통해서 데이터의 변경이 있을 때 관련 값들을 재조정할 수 있다.

 

'프로그램 > 데이터베이스' 카테고리의 다른 글

ER 다이어그램 (Entity-Relationship Diagram)  (0) 2017.09.19
[oracle] 토드팁 - sql자동생성  (0) 2016.12.30
DB 기본 용어 (SQL, DDL, DML, DCL, TCL)  (0) 2016.11.28
클라이언트/서버  (0) 2016.11.28
Osi 7 layer  (0) 2016.11.28

SQL

SQL (Structured Query Language) 은 구조적인 질의 언어라는 것이다.

이 SQL 이라는 질의 언어를 통해서 데이터베이스를 제어, 관리한다.

 

SQL 은 다음 언어로 나눌 수 있다.

 

⒜ DDL : 데이터 정의 언어 

⒝ DML : 데이터 조작 언어

⒞ DCL : 데이터 제어 언어

 

DDL

DDL (Data Definition Language) 는 데이터 베이스 스키마를 정의 하거나 조작하기 위해 사용한다.

SCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 다음 명령어로 정의, 변경, 삭제한다.


 

⒜ CREATE : 정의 

⒝ ALTER: 수정

⒞ DROP : 삭제

⒟ TRUNCATE : DROP 후 CREATE

 

* Oracle 11g 이전 버전과 MySQL은 DDL에 대해서 트랜잭션을 지원하지 않는다.

(Rollback 할 수 없고 Commit할 필요도 없다.)

 

DML

DML (Data Manipulation Language) 는 데이터를 조작 (조회, 추가, 변경, 삭제) 하기 위해 사용한다.

사용자가 응용 프로그램과 데이터 베이스 사이에 실질적인 데이터 처리를 위해서 주로 사용한다.

 

 SELECT : 조회

⒝ INSERT : 추가

⒞ DELETE : 삭제

⒟ UPDATE : 변경

 

기본적인 위의 명령어 외에 LOCK, EXPLAIN, CALL 등도 DML에 포함 된다.

 

DQL

일부에서는 DML에서 SELECT 만을 따로 분리해서 DQL (Data Query Language) 나 

간단히 QUERY 로 표현하기도 한다.

 

DCL

DCL (Data Control Language) 는 데이터를 제어하는 언어이다.

데이터의 보안, 무결성, 회복, 병행 수행제어 등을 정의하는데 사용한다.

 

⒜ COMMIT : 트랜잭션의 작업 결과를 반영 

⒝ ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구

⒞ GRANT : 사용자에게 권한 부여

⒟ REVOKE : 사용자 권한 취소

 

TCL

일부에서는 DCL 에서 트랜잭션을 제어하는 명령인 COMMIT 과 ROLLBACK 만을 따로 분리해서 TCL (Transaction Control Language) 라고 표현하기도 한다.

 

'프로그램 > 데이터베이스' 카테고리의 다른 글

ER 다이어그램 (Entity-Relationship Diagram)  (0) 2017.09.19
[oracle] 토드팁 - sql자동생성  (0) 2016.12.30
데이터 무결성 (Data Integrity)  (0) 2016.12.02
클라이언트/서버  (0) 2016.11.28
Osi 7 layer  (0) 2016.11.28
1. 클라이언트/서버 이란?

  ㅇ 클라이언트 (Client)
     - 영어 뜻 자체로는 고객을 의미
        . 클라이언트는 기본적으로 한 개 이상의 서버가 제공하는 서비스를 사용할 수
          있는 소비자의 개념
     - 클라이언트/서버 모델에서, 
        . 네트워크를 이용하여 서버(Server)측에 서비스 요청을 의뢰하는 주체

  ㅇ 서버 (Server)
     - 클라이언트들이 요구하는 각종 서비스를 제공하는 측
     - 클라이언트/서버 모델에서,
        . 네트워크상에서 하드웨어 또는 소프트웨어로써 서비스의 요청을 받는 측


2. 클라이언트/서버 출현배경

  ㅇ 과거에는 동일 컴퓨터 내에서 호출 및 피호출 프로그램이 상호작용함으로써 이들을
     분리할 필요가 없었음
 
  ㅇ 그러나,  컴퓨터 및 네트워크 기술발전에 따라 많은 프로그램을 대신하여 서비스를
     제공하거나 자원을 관리하는 전문화된 프로그램의 개념이 널리 확산되어,
     - 이를 서버라 하고 서비스 또는 자원을 의뢰(요청)하는 측을 클라이언트라고 하게됨


3. 클라이언트/서버 모델의 특징

  ㅇ 이 모델에서의 통신은 항상 요청-응답의 형태를 취함
     - 클라이언트에 의해서만 시작되고 서버에 의해서는 결코 시작되지 않음

  ㅇ 서버 종류 
     - 통상 프린트서버, 고속의 그래픽서버, 데이타베이스서버, 화일서버, 네임서버 등과
       같은 것이 있으며 한 가지 작업을 전담함
     - 일반적으로 서버란 많은 다른 클라이언트들의 동시적인 요구를 처리할 수 있도록
       설계프로세스라고 말할 수 있음

  ㅇ 클라이언트/서버 환경
     - 최종 사용자에게는 많은 장점을 제공하는 반면에 망 운영자에게는 복잡하고 어려
       운 문제를 끊임없이 제기하게됨

  ㅇ 구성요소 : Client,  Server,  Network소프트웨어 위치
     - 변화가 적은 소프트웨어는 클라이언트측에 변화가 잦은 소트웨어는 서버측에 놓음

  ㅇ 분산처리
     - 클라이언트/서버 모델은 분산협동처리(distributed cooperative processing)
       의 특별한 예라고 할 수 있음
     - 지능형 동배간 처리에서 한 서버는  여유있는 서버에게 계산 부담을 분배함으로써
       서버와 네트워크 특성을 기반으로 하는 분산을 최적화할 수 있음


4. 클라이언트/서버 TCP/IP 프로토콜

  ㅇ 例) HTTP, FTP, 전자우편(SMTP,POP), TELNET, DNS 등

  ㅇ 서버 포트(Port) 관리
     - 서버는 클라이언트가 접근하는 초기 포트로써 잘알려진 포트를 사용하고,
     - 일단 이 포트를 통해 클라이언트와의 연결이 이루어지면,
     - 일반적으로, 서버는 임시 포트(Ephemeral Port)를 생성하여 연결하고, 
     - 이후에는 데이터 교환이 이렇게 유지되는 연결을 통해 이루어지짐

◎ OSI 7 Layer

– 처음에는 네트워크 관련 제조사마다 각자 다른 독자적인 계층 구조를 사용했으나 타사와의 호환이 문제가 되어 참조모델로써 OSI 7 Layer가 도입되었습니다

– 호환 뿐 아니라 표준화를 통해 효율성 또한 높일 수 있으며 네트워크 상에서 문제가 발견되었을 때 데이터의 흐름을 파악해 문제점을 해결하기가 좀 더 수월합니다

– OSI 7 Layer는 위 그림처럼 나타낼 수 있습니다

– 데이터를 보낼 때는 7계층에서 1계층까지 거치면서 각 계층의 헤더와 여러 정보 (발신자의 주소 등)가 원래 데이터에 붙게 되는데 이것을 Encapsulation이라고 합니다

– 데이터를 수신한 입장에서는 1계층에서 7계층까지 거치면서 패킷의 헤더들이나 정보들을 벗겨내면서 원래 데이터를 만드는데 이것을 De-capsulation이라고 합니다

 

◈ Application ( 7계층 – 응용계층 )

– 사용자의 인터페이스를 담당하며 사용자들이 사용하는 네트워크 응용프로그램이라고 할 수 있습니다

– 서비스를 위한 프로토콜이 포함되어 사용자가 네트워크를 이용할 수 있도록 해주는 역할을 합니다 (서비스 제공)

– Ex > FTP , Telnet , SMTP , DNS , DHCP ….

 

◈ Presentation ( 6계층 – 표현계층 )

– 보내질 데이터의 포맷 즉 형식을 지정하는 계층입니다

– 송신 측과 수신 측의 부호체계가 다를 수 있기 때문에 그러한 것에 대한 변화를 규정하고 데이터 형식을 정합니다

– 데이터 형식이라 하는 것은 확장자나 파일 포맷 뿐 아니라 Charater Set이나 Encoding 등도 포함됩니다

 

◈ Session ( 5계층 – 연결계층 ) //논리적인 연결

– 연결을 담당하여 데이터의 송수신을 가능하게 하는 계층입니다

– 연결 즉 세션을 맺고 끊고 유지하는 역할을 하는데 통신에 있어서 양쪽 즉 수신과 송신 컴퓨터간의 최초연결과 연결유지를 담당합니다

 

◈ Transport ( 4계층 – 전송계층 ) // port

– 서비스를 PORT주소로 구분해서 데이터를 전송하는 역할을 담당합니다

– 만약 보내는 데이터가 클 때는 데이터를 쪼개서 패킷으로 만드는 역할 또한 연결계층이 담당합니다

– 데이터 전송 중 네트워크 오류나 기타 장애로 인해 데이터가 중간에 끊긴 경우 역시 연결계층에서 실패한 패킷만 재전송하는 역할도 합니다

– 4계층의 데이터 전송방식에는 TCPUDP가 있는데 이것에 대해서는 다음에 다시 알아보도록 하겠습니다. 간단하게 TCP는 신뢰성 / UDP는 빠른 속도를 가집니다

– 4계층의 PDU(Protocol Data Unit)은 Segment입니다

 

◈ Network ( 3계층 – 네트워크계층) //ip

– 논리적 주소인 IP를 가지고 통신노드에 대한 다양한 경로를 설정하고 라우팅 및 망,노드간의 트래픽을 제어하는 계층입니다

– 데이터의 안전한 전송을 위해 논리적 경로, 링크를 설정하고 흐름이나 순서를 제어합니다

– 3계층의 PDU는 Packet과 Datagram입니다

 

◈ Data Link ( 2계층 – 데이터링크계층)

– 물리적 주소인 MAC을 사용해서 노드대 노드로 데이터를 전달하는 계층입니다

– PDU는 Frame으로 Encapsulation시에 헤더와 테일을 붙이는데 테일을 붙이는 이유는 데이터의 무결성검사 즉 오류체크를 하기 위해서입니다

– LAN Protocol = Ethernet / WAN Protocol = HDLC , PPP

 

◈ Physical ( 1계층 – 물리계층 )

– 다 만들어진 패킷, 데이터를 실제 전기적신호로 바꾸어 물리적인 선을 타고 수신자에게 보내는 계층입니다

 

 

+ Recent posts