▶도커 설치 링크 : 


https://docs.docker.com/toolbox/toolbox_install_windows/





*컨테이너 개념 :
2가지 유형이 있다

1) Linux Container

2) Docker


VM환경에서 Container 개념으로 넘어가는 것에 대해서도 생각해봐야한다.


인프라의 변화에 대해 이야기를 해보면

1.물리머신

2.VM

3.Container

으로 변하고 있다!!


*비즈니스 관점에서 살펴보면

(ex: 어플을 각 인프라에 배포한다고 했을 때)

물리머신에서 VM으로 넘어가게 된 계기는 Enterprise 관점에서 이슈가 있었기 때문이다...이 변화는 우연히 바뀐것은 아님...

- 비즈니스에서 고민거리에 대해 누군가 방법론을 만듬

- 방법론을 해결할 수 있는 솔루션이 나옴

항상 이 순서로 진행되어왔다.


*서버 가상화

물리시스템에서 VMWARE로 바뀌면 하드웨어가 많이 사라지게 된다.

많은 인원이 필요 없어짐.

IT Provider에 있어서 원하지 않는 흐름

하지만 서비스 제공자, Business에 있어서는 비용(COST)을 줄일 수 있기 때문에 이 흐름을 환영.


*기존 물리머신 Hardware 비즈니스 관점 이슈

DATA Center가 계속 생겨나면 비용~전기세가 가장 많이 많이 듬

이걸 Business에 있어서는 VM을 통해 획기적으로 줄일 수 있음...

어플리케이션 유지...다른 Business와 같이 사용...규모의 경제

==>Hardware Consolidation

구성만 잘 하면 성능상에서도 기존 대비 별다른 이슈 없음


*Data Center의 주류가 VM으로 변경됨

70%이상의 시스템이 VM기반으로 넘어가게됨...CLOUD...





*Docker Container가 2013년에 시장에서 처음 언급됨...

2014년에 Release(Container의 등장)


MICRO SERVICE ARCHITECTURE, DEVOPS 관점

최근 IT에 있어서 원하는 희망사항?


1) 대규모 통합 서비스(시스템이 무거워짐, Dependency에 걸리는 Library 충돌이 일어나고...)

2) 모듈러 베이스 아키텍쳐(네트워크를 통해 모두 분산시킴)

3) MSA 방법론(분산컴퓨팅에서...하나의 시스템에는 한개의 어플리케이션만...Micro Service...가장 작은 단위의 서비스로 만들어냄)

RESTFUL...네트워크 단위로 분산


*OPERATION 관점에서 살펴보면 : 

- IT는 COST다

IT COST의 7:3에서 7이 유지보수 비용...


가상화를 통해 하드웨어에 대한 유지보수 비용이 줄어든다...S/W로 들어가면 유지보수 비용도 최소화된다.

7: 혁신에 더 많은 비용을 들이고

3: 유지보수는 최소화....



프로그램을 너무 크게 만들어서 문제(경쟁사에 밀리지 않기 위해 Release를 빨리 해야 함...대규모 시스템을 모듈화...최소화...)

=> 소스코드를 검증해서 바로 Release

Release는 자주하면 할 수록 소프트웨어는 신뢰도가 높아진다.

=>어플리케이션을 가장 작은 UNIT으로 잘라낸다.

단점 : 서로 커뮤니케이션이 안됨~전문성 부재(ex: 개발자<=>테스트)

개발팀을 다시 소규모로 줄임...전문성은 자동화?

"코드 한줄을 바꿔서 Release를 얼마나 할 수 있는가(Dependency ↓)?"




이제 PAAS, MSA, DEVOPS 간의 교집합...

VM을 가지고 이 3가지를 모두 접목하기가 어려워짐...한계!!

=>리눅스 컨테이너의 탄생(2008) 

=>Docker(2014)



구조 1) 


APP1, APP2


Kernel


H/W


그런데 이런 구조라면 네트워크 및 프로세스를 공유...무거워진다.



그럼 아래 같은 구조라면? (커널이 3개)

커널을 2번 타게 되면서...Native 보다 성능이 좋지 않다.

리소스 많이 사용.


구조 2) VM


APP1                                APP2

Kernel(4Core /8G)                    Kernel(4Core /8G)


Kernel OS(10Core/64G을 1개 어플리케이션이 모두 점유할 수 없다)


H/W




//위 2개의 중간~>Name Space 개념 도입(격리, Isolation!!)

네트워크, PID, IPC, User Group, Mount가 VM처럼 모두 독립적임, 

리소스를 상대적으로 적게 쓰게 됨(커널이 1개)

베어메탈에 준하는 성능


구조 3) Container


App1            App2

Centos(OS)    Ubuntu(OS)    


Kernel 공유(10Core/64G를 온전히 1개 어플리케이션이 모두 점유할 수 있다)


H/W




*Linux 컨테이너의 한계: 

Linux 컨테이너는 분산배포를 처리하는 개념이 없었다...단순히 VM을 경량화 시킨것

Docker는 컨테이너로 분산배포 지원

배송/배포가 핵심!!



- Linux Container : OS Container (1개의 OS에 여러 App을 띄움)

- Docker Container : App Container (각 OS에 Application을 독립적으로 띄운다, OS Container로도 구성이 가능 - MSA)




* 컨테이너를 때거지로 모아서 관리하는것...

Multi Container Management Solution : 

- Swarm, Compose (Docker : Multi Container 관리)

- Kubernetes(Google: Multi Container 관리)


가벼운 VM을 만들자!!

AR Augmented Reality 란?

증강현실 : 

> 사용자가 눈으로 보는 현실세계 + 가상 물체

> 겹쳐 보이기 기술

> 현실세계에 실시간으로 부가정보를 갖는 가상세계를 합쳐 하나의 영상으로 보여주므로 혼합현실(Mixed Reality, MR)이라고도 한다.





AR 특징

특징 :


> 사용자가 보고 있는 실사 영상에 3차원 가상여상

> 중첩함으로써 현실과 가상의 구분이 모호

> 가상현실이 현실과 접목되면서 변형된 형태 중 하나

> 인간과 컴퓨터의 상호작용 만드는 콘텐츠가 주로 이룸

> VR보다 나은 현실감과 부가 정보를 제공



AR 역사

1960년대에 유타 대학의 이반 서덜랜드에 의해 고안된 HMD를 바탕으로 항공사의 HUD 발달

 

비행기의 HUD에서 헬기의 HMD 형태로 발전


1990년 보잉의 톰 코델이 항공기의 전선 조립을 돕기 위해

> 가상 이미지를 실제 화면에 중첩하여 이해하기 쉽게 설명하는 과정에서 최초로 증강현실 이라는 용어 사용.




AR 한계

적응성

> 금방 익숙해져 몰입감 없음

> 지속적 필요도 낮음


인간기능 둔화

> 뇌 둔화

> 행동 둔화


휴유증

> 감각 단절 ㅈ으상

> 시각 장애

> 시각 차단

> 어지러움




발전 기기

 VR 시뮬레이터 형태로 발전


트레드밀 :

> 행동의 자유를 통해 몰입도 증가


VR & AR 적용 기술


- 3D 사운드

- 3D 인터페이스, 동작추적 및 인식

- 디스플레이 촬영기술

- 네트워크

- 착용형 디바이스


VR & AR 자유도


6자유도(Six degrees of freedom)

> 위와 회전에 관한 여섯 개의 운동방향

> 3자유도는 Position(위치 / x,y,x)

> 3자유도는 Orientation(자세 / roll, pitch, yaw)




'가상현실[ VR] 이해와 활용' 카테고리의 다른 글

VR 유형 및 응용분야, 한계  (0) 2018.03.10
VR 가상현실 활용과 개념  (0) 2018.03.10

VR 특징

사용자 주변환경을 차단

사용자 감각정보를 조작

몰입감 제공이 핵심





VR 유형 및 전달방식

몰입형 VR (Immersive VR) : 
> VR 영화


시뮬레이션형 가상현실(Simulation VR)

> Video Game


투명형 가상현실 (Projection VR, Artificial VR)

> 클리프 행어, 스타워즈, 쥬라식 파크


데스크탑형 가상현실(Garage VR, Homebrew VR, Desktop VR)





VR 분류 체험방식

시뮬레이션 : 가상의 환경을 만들어서 경험하게 하는 것

> ex) 테마파크, 박물관 , 비디오 게임, 의료수술 시뮬레이션,

> 군사 시뮬레이션, 분자구조 시뮬레이션


화상회의 시스템

> ex) 재택진료, 재택근무, 번역 시스템.


가상현실과 로보틱스의 결합

> ex) 텔레 로보틱스(Tele Robotics), 텔레프리센스(Telepresence)

> 텔리 이그지턴스(Tele Existence)

> 우주선 외부나 화성에 로봇팔을 설치, 우주선 내에서 작업




VR 다양한 응용분야


국방 / 의료 / 전자상거래 / 교육(CBT) / 데이터 시각화 /디자인 & 인체공학 / 문화체험 / 건설, 인테리어

(www.vr.co.kr)


기존 VR 실패이유


무엇을 만들까 (Content)를 고민하지 않고...

기술 구현도만 고민함!!

"와 진짜 리얼해"를 넘어

Feel과 Value...가치를 줄 수 있는것을 고민해야함



VR의 한계


인지 부조화

> 시각과 정전기관 후각 촉각등의 부조화


피해 의식

> 사용자 안보임 절단의식

> 이동 불가 피해 의식


후유증

> 폭력 성향

> 시각 장애

> 플래시 장애

> 구토 멀미 어지러움 등



'가상현실[ VR] 이해와 활용' 카테고리의 다른 글

AR이란, AR의 역사 및 특징  (0) 2018.03.10
VR 가상현실 활용과 개념  (0) 2018.03.10

VR

Virtual 가상의

Reality  현실


실제가 아닌 부분들로 현실의 세상을 구현하는 것.

인간의 감각을 바탕으로 상상 속에서 현장감을 느끼게 해주는 공간


가상현실은 컴퓨터 등을 사용한 인공저긴 기술로 만들어낸 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 혹은 기술.



이론기술

가상현실 이론

- 스테레오 스코피

- 인간이 원근을 느끼는 원리는 양 눈의 시각차에서 온다.

- 실제적으로 평면을 바라보지만 양눈의 정보 조합으로 입체를 인지한다.

- 양눈의 시각 정보 조각과 양쪽 귀의 청각 정보 조각을 통해 인간은 입체 공간을 느낄 수 있다.










이론적용

VR 기술 종류


- 적청안경기술

- 편광필터차단

- 셔터안경기술(3D TV에 적용, 왼쪽 눈과 오른쪽 눈에 다른 프레임을 빠른 속도로 Projection 하는 방식)

- 매직아이기술

- 시차방벽기술(필터에 셔터를 적용 - 전기를 사용, 비쌈)

- 렌즈굴절기술(렌즈의 굴곡을 바꿈)




VR 역사

- 1938 프랑스의 극작가 앙토넹 아르토의 잔혹 연극론 :

무대가 관객을 몰입시키는 가상현실의 공간 (La realite virtuelle)이 되어야 된다고 무대 장치등의 개념 묘사


- 2차 세계대전 신무기와 신훈련 기술에 대한 공모전 :

가상현실을 통한 이미지 트레이닝 기술에 대한 개념 마련


- 가상현실기기

센소라마(Sensorama)

1957년 모턴 하일리그(Morton Heilig)에 의해 처음 양눈에 다른 영사물을 비춰 입체감을 느끼게 한 센소라마 시뮬레이터 개발


- 근대의 Mount Display 기기

> 1968년 유타대 이반 서덜랜드(Ivan Sutherland)와 밥스프롤(Bob Sproull)

> 최초의 머리에 쓰는 가상 기기 개발

> CRT 소형 모니터로 눈에 비춰 전자적영상을 제공

> 대형장비로 천장에 붙여서 사용

> 위치 이동이 어려운 단점


-최초의 HMD 기기

> 1986년 NASA에서 개발

> 우주인 훈련용 HMD 시스템인 바이브드

(VIVED, Virtual Visual Environment Display)


- 최초의 VHMD 기기

> NASA 가상환경 워크스테이션

> The Virtual Interface Environment Worstation



가상현실의 발전

- 군사용 발전

- 게임용 발전

- 닌텐도 1995 버추얼 보이(Virtual Boy)

> 인지 부조화 현상등이 보고 실패

> 일체감만있지 몰입감 없음


가상현실 기술의 발달

- 그래픽 엔진발달

> 리얼리티 엔진(Reality Engine)


- 기기발달

> LCD -> LED -> OLED

> HMD(Head Mounted Visual Display)


- 모델링의 발달
> 가상현실 저작도구(3D Modeling and World-build Software)


- 3차원 입력장치(3D Input Device) 발달

> 모캡

> 3차원 디자인

'가상현실[ VR] 이해와 활용' 카테고리의 다른 글

AR이란, AR의 역사 및 특징  (0) 2018.03.10
VR 유형 및 응용분야, 한계  (0) 2018.03.10

1) 함수 function 이용하기

 

#!/bin/bash
function sum_x_y
{
echo "sum_$1_${2}"
  for (( i=$1, sum=0 ; i<=$2; i++ ))
     do
        (( sum += i ))
     done
  echo "sum_x_y: sum: $sum"
  return $sum
}


echo
rst=$(sum_x_y 1 10)
echo "result of sum_1_10:  $rst"
echo
rst=$(sum_x_y 1 100)
echo "result of sum_1_100:  $rst"

 

=> $?은 1byte 255이상을 넘어갈 수 없다. 따라서 위와 같이 rst 변수에 저장해서 함수로 넘겨준다



 

 


 

 


2) Daily Backup 만들기

 

#!/bin/bash
# Daily File Backup example

echo
echo "======== File Daily Backup =============="
echo

CONF_FILE=backupfiles
DEST_DIR=./backup
DATE=$(date +%y%m%d)
FILE_NAME=$DATE.tar.gz
DEST_FILE=$DEST_DIR/$FILE_NAME

#Check if BACKUP_FILES exist
if [ -f $CONF_FILE ]
then
 echo $CONF_FILE exist!!!
 echo
else
 echo $CONF_FILE does not exist!!!
 exit 1
fi

#Check Backup Directory exist

if [ -f $DEST_DIR ]
then
 echo $DEST_DIR is regular file!!!
 exit 2
else
 if [ -e $DEST_DIR ] && [ -d $DEST_DIR ]
 then
  ls -ld $DEST_DIR
 else
  mkdir $DEST_DIR
  ls -ld $DEST_DIR
 fi
fi

#Make backup file name list

file_no=1
exec < $CONF_FILE
read filename
echo
echo "======== $filename ============"

while [ $? -eq 0 ]
do
 if [ -f $filename ] || [ -d $filename ]
 then
  filelist="$filelist $filename"
 else
  echo $filename does not exist!!!
  echo "continue to build backup list"
 fi
 fine_no=$[ $file_no + 1 ]
 read filename
done
echo
echo "Backup file list : $filelist"
echo

#Makeup backup file and compress it using tar
echo "------ Start archiving backup files ---------"
echo
tar -czf $DEST_FILE $filelist 2> /dev/null

echo "Archiving completed!!!"
echo
echo "Resulting Archiving file : $DEST_FILE"
echo

ls -l $DEST_FILE


 


 

 


 

 


주의 : 쉘은 특별한 경우가 아니라면 항상 서브쉘에서 돌려야 한다...

기존 환경변수를 건드리면 안되기 때문에...

sh test.sh

source test.sh

. test.sh

는 되도록이면 쓰지 않는다!!

 

 


 

 


 

Shell에서 쌍따옴표(")나 따옴표(') 는 동일하다. String으로 인식한다.

 

1) 특정 Directory의 실행 파일만 모두 출력:

 

#!/bin/bash

for file in /home/aiadm/lab/chat01/*
    do
       if [ -d $file ]
            then
                echo $file is directory
       elif [ -f  $file ]
            then
                echo $file is regular file
       else
            echo nothing
       fi
    done

 


 

 


 

 


 

2) File Path를 입력받고 실행가능한 파일 리스트 출력

 

#!/bin/bash

read -p "input directory : " dir

for file in $dir/*
  do
     if [ -x $file ]
        then
        echo $file is executable
        echo $file >> execfiles
     else
        echo nothing
     fi
 done


 

 


 

 


 

3) For Loop을 돌려서 Sum을 출력

 

#!/bin/bash

for (( i=1, sum=0; i<11; i++))
    do
       echo "loop_$i is running"
       sum=$[$sum+$i] #아님 $(($sum+ $i))
    done
echo $sum


 

 


 

 


4) 반복문으로 구구단 

 

#!/bin/bash

read -p "Input num1 : "  num1
read -p "input num2 : "  num2


for (( i=1; i<=num1; i++ ))
   do
     for (( j=1; j<=num2; j++))
        do
           echo "$i단  i:$i *  j:$j = $(($i*$j))"
        done
        echo
    done

 

+ Recent posts