Docker

ⓘⓣ/Docker 2017. 12. 15. 13:30
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

컨테이너 생성

 
Hongui-MacBook-Pro:~ hongkun$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
50aff78429b1: Pull complete 
f6d82e297bce: Pull complete 
275abb2c8a6f: Pull complete 
9f15a39356d6: Pull complete 
fc0342a94c89: Pull complete 
Digest: sha256:6873122c772dd72e52d9b282a9e8ac0ce33a99659df31b1881552a4f9957f527
Status: Downloaded newer image for ubuntu:latest
Hongui-MacBook-Pro:~ hongkun$




컨테이너 실행

Hongui-MacBook-Pro:~ hongkun$ docker run -i -t ubuntu

root@76c594c427e0:/# 


-i 옵션 : 컨터이너와 상호 입출력을 가능

-t 옵션 : tty 활성화 해서 bash 셸을 사용하도록 컨테이너 설정



도커 공식 이미지 저장소에서 centos 이미지 다운로드 (docker pull)


Hongui-MacBook-Pro:~ hongkun$ docker pull centos

Using default tag: latest

latest: Pulling from library/centos

85432449fd0f: Pull complete 

Digest: sha256:3b1a65e9a05f0a77b5e8a698d3359459904c2a354dc3b25ae2e2f5c95f0b3667

Status: Downloaded newer image for centos:lates



도커 컨테이너 이미지 확인

 
Hongui-MacBook-Pro:~ hongkun$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
ubuntu                   latest              00fd29ccc6f1        7 hours ago         111MB
centos                   latest              3fa822599e10        2 weeks ago         204MB
hello-world              latest              725dcfab7d63        5 weeks ago         1.84kB
continuumio/miniconda3   latest              f700f7f570c7        6 weeks ago         571MB
Hongui-MacBook-Pro:~ hongkun$




도커 컨테이너 생성

 
Hongui-MacBook-Pro:~ hongkun$ docker create -i -t --name mycentos centos:7
Unable to find image 'centos:7' locally
7: Pulling from library/centos
Digest: sha256:3b1a65e9a05f0a77b5e8a698d3359459904c2a354dc3b25ae2e2f5c95f0b3667
Status: Downloaded newer image for centos:7
599b21b6c726da6184ae13438683a6ba849c88141968210fe2e95594b4841e32
Hongui-MacBook-Pro:~ hongkun$ docker start mycentos
mycentos
Hongui-MacBook-Pro:~ hongkun$ docker attach mycentos
[root@599b21b6c726 /]# 



create 명령어는 컨테이너를 생성만 할 뿐 컨테이너로 들어가지 않습니다.

docker start 명령어로 컨테이너를 시작하고 내부로 들어 갑니다.

attach 는 컨테이너의 내부로 들어가는 명령어 있니다.


exit는 컨테이너를 빠져 나오면서 정지를 시키고

Ctrl + P, Q 는 단순히 셸에서만 빠져나옵니다.



컨테이너 종료 없이 빠져나온 다음에 ps 로 목록 확인


Hongui-MacBook-Pro:~ hongkun$ docker run -i -t ubuntu

root@761173a1be96:/# Hongui-MacBook-Pro:~ hongkun$ 

Hongui-MacBook-Pro:~ hongkun$ 

Hongui-MacBook-Pro:~ hongkun$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

761173a1be96        ubuntu              "/bin/bash"         23 seconds ago      Up 24 seconds                           trusting_goodall

Hongui-MacBook-Pro:~ hongkun$


모든 목록 확인

Hongui-MacBook-Pro:~ hongkun$ docker ps -a

CONTAINER ID        IMAGE                    COMMAND                  CREATED              STATUS                      PORTS               NAMES

761173a1be96        ubuntu                   "/bin/bash"              About a minute ago   Up About a minute                               trusting_goodall

599b21b6c726        centos:7                 "/bin/bash"              9 minutes ago        Exited (0) 4 minutes ago                        mycentos

76c594c427e0        ubuntu                   "/bin/bash"              17 minutes ago       Exited (0) 14 minutes ago                       jovial_mccarthy

ab221316ced8        continuumio/miniconda3   "/usr/bin/tini -- ..."   4 weeks ago          Exited (0) 4 weeks ago                          sleepy_hoover

bd8e3fabd8d5        continuumio/miniconda3   "/usr/bin/tini -- ..."   4 weeks ago          Exited (137) 4 weeks ago                        amazing_hoover

dcccfbf01020        hello-world              "/hello"                 4 weeks ago          Exited (0) 4 weeks ago                          elastic_jones

Hongui-MacBook-Pro:~ hongkun$ 




- STATUS : 컨테이너의 상태, 실행은 UP, 종료는 Exited, 일시 중시는 Pause

- PORTS : 컨테이너가 개방한 포트와 호스트에 연결한 포트를 나열, 앞에서 컨테이너를 생성할 때는 외부에 노출하도록 설정하지 않았으므로 PORTS 항목에는 아무것도 출력되지 않음

- NAME : 컨테이너의 고유한 이름. 컨테이너를 생성할 때 --name 옵션으로 이름을 설정하지 안으면 도커 엔진이 임의로 형용사와 명사를 무작위로 조합한 이름을 설정, 이름 변경 가능 (아래 참고)


Hongui-MacBook-Pro:~ hongkun$ docker rename jovial_mccarthy my_ubuntu

Hongui-MacBook-Pro:~ hongkun$ docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Image}}"
CONTAINER ID        STATUS              IMAGE
761173a1be96        Up 2 hours          ubuntu



docker ID 전체 확인

Hongui-MacBook-Pro:~ hongkun$ docker inspect mycentos | grep Id

        "Id": "599b21b6c726da6184ae13438683a6ba849c88141968210fe2e95594b4841e32",



컨테이너 삭제


Hongui-MacBook-Pro:~ hongkun$ docker rm mycentos
mycentos
Hongui-MacBook-Pro:~ hongkun$ docker rm my_ubuntu
my_ubuntu
Hongui-MacBook-Pro:~ hongkun$ docker rm sleepy_hoover
sleepy_hoover
Hongui-MacBook-Pro:~ hongkun$ docker rm amazing_hoover
amazing_hoover
Hongui-MacBook-Pro:~ hongkun$ docker rm elastic_jones
elastic_jones
Hongui-MacBook-Pro:~ hongkun$ docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Image}}"
CONTAINER ID        STATUS              IMAGE
761173a1be96        Up 2 hours          ubuntu
Hongui-MacBook-Pro:~ hongkun$ 



- 실행 중 컨테이너 삭제 : docker rm -rf {이름}

- 모든 컨테이너 삭제 : docker container prune


docker ps -a -q

-a : 컨테이너 상태와 관계 없이 모든 컨테이너 삭제

-q : 컨테이너 ID 출력


- 모든 컨테이너 정지 : docker stop $(docker ps -a -q)

- 모든 컨테이너 삭제 : docker rm $(docker ps -a -q)



컨테이너를 외부에 노출



 
root@f7a8a6f2838b:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:02  
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:828 (828.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
블로그 이미지

뚱땡이 우주인

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


인터랙션 디자인에 좋은 메타포를 도입하기 위해서는 닮지 않은 두 사물 간의 기능적 유사성을 발견할 수 있어야 한다. 닮지 않은 둘 혹은 그 이상의 사물들 사이에 기능적 유사성이나 내적 연관성을 발견하는 것을 유추라고 한다.



접근할 수 없는 세계를 비추는 유추의 힘을 가장 잘 증명한 사람이 헬렌 켈러이다. 헬렌 켈러는 태어난지 1년 8개월만에 뇌막염을 앓아 시력과 청력을 읽었다. 그녀는 보고 들을 수 없었던 것과 맛 냄새, 느낌으로 알았던 것들 사이에 수많은 연상과 유사성을 이끌어내어 자신이 보고 들을 수 없는 세계를 이해하고자 노력하였다.


세계의 안과 밖 사이에는 영원히 마르지 않는, 닮은 것들로 가득 찬 바다가 있지 않은가.......

내 가 손에 들고 있는 꽃의 신선함은 내가 맛본 갓 딴 사과의 신선함과 닮았다. 나는 이런 유사성을 이용해서 색에 대한 개념을 확장한다. 내가 표면과 떨림과 맛과 냄새들의 특질에서 이끌어낸 유사성을 보고 듣고 만져서 찾아낸 유사성과 같은 것이다.


우리를 자유롭게 하는 것은 감각이 아니라 유추를 통해 미지의 것들을 조명할 수 있는 우리의 능력이다.





카드 소팅에서 노란색 카드를 묶어서 파란색 카드를 만들고, 다시 파란색 카드를 묶어서 빨간색 카드를 만드는 과정이 추상화 과정이다.



추상화는 구체적인 실재부터 출발해서 눈에 보이지 않는 문제의 구조를 찾아내는 것을 도와주는 생각 도구 이다.


뭔가 실체가 있는 것에서 출발해야만 나중에 실재의 흔적들을 제거해 나갈 수 있다. 그리고 그런다 해도 큰 위험은 없다. 왜냐하면 그 오브제가 표방하는 이념을 아무리 지운다 해도 지워지지 않는 표시를 남길 테니까.


카드 소팅에서 노란색 카드로부터 출발해서 파란색 카드를 거쳐 빨간색 카드에 도달하는 과정이 구체적인 실재로부터 출발해서 표면적인 것의 배후에 숨어 있는 특성과 관계를 찾아내는 과정이다.


갈래를 나누고 종류별로 구분하라. 그렇게 해야 무질서 속에 질서가 드러난다. 안 보인던 것이 보이기 시작한다. 그런 다음 묶어서 생각하고 미루어 확장하라. 그저 그러려니 해서는 안된다. 보이지 않는 질서를 찾아내야 한다. 계통을 확립해야 한다. 산만해서는 안 되고 집중해야 한다. 흩어져서는 안 되고 집약해야 한다.



인터랙션 디자이너가 인지 심리학 이론을 알아야 하는 이유




인지심리학은 쉽게 풀어 설명하면 사람이 사물을 대할 때 느끼는 다양한 감정을 분석하는 학문 입니다.


인지 심리학이란 사람이 사물을 보거나, 만지거나, 듣거나 지각 행위를 할 때 생각하고 기억하는 등의 정신 활동이 진행되는 동안의 심리 과정을 탐구하는 학문으로 사람은 정해진 규칙 혹은 근거 없이 어떤 것에 대한 특정 반응을 보이는데 그것은 사용자도 모르는 패턴이 만들어지고 있기 때문입니다. 인지 심리학을 활용해 사용자 패턴을 추출하고 분석한 후 어떤 방향으로 접근(개선)해야 하는지 좋은 단서를 얻을 수 있습니다.


먼저 사용자 리서치 단계에서 관찰조사나 인터뷰를 진행하면서 사용자의 행태, 감정, 반응을 통해 사용자 개개인의 패턴을 추출해 낼 수 있습니다.


특히 인지심리학 기법은 관찰조사 수행 시 많은 유용한 단서를 제공해 주는데 대표적으로 사용성 테스트를 통해 제품을 이용하거나 소프트웨어를 사용하는 과정에서 나오는 패턴을 얻기도 합니다.


사용자는 처음 보는 제품을 사용할 때 사용법을 예측하고, 새롭게 학습한 사용법을 기억하려고 애쓴다. 초기 학습 단계 이후에 사용자는 학습한 사용법을 회상하며 제품을 사용하게 되고, 많은 시간 제품을 사용한 후에는 사용법을 대부분 기억하게 될 것이다. 이러한 초기 학습과 제품의 사용 과정에서 사용자가 어떤 사용법을 쉽게 예측하는지, 어떤 것을 쉽게 기억하고 나중에 쉽게 회상하는지는 사람의 인지적 특성과 밀접한 관련이 있다. 따라서 예측하기 쉽고, 기억하기 쉬운 인터랙션을 디지인 하기 위해서는 반드시 인지심리학 이론을 알아야 한다.




사용자가  장기기억에 저장된 의미를 활용해서 단기기억에서 한 단위로 묶을 수 있게 인터랙션을 설계해야 한다. 사용자가 처음 보는 제품을 사용할 때 사용자의 장기기억에 저장된 의미를 활용해서 제품의 사용법에 의미를 부여하고 해석할 수 있도록 인터랙션을 설계해야 한다. 

즉 사용자는 제품의 사용법을 그대로 암기하는 것이 아니라 이전에 사용했던 유사 앱의 사용법을 동원해서 새로운 앱의 사용법을 예측하므로 이러한 사용자의 기대와 잘 맞도록 인터랙션을 설계 해야 한다. 또한 사용자의 스키마와 잘 일치하는 제품은 배우지 않아도 사용법을 예측할 수 있어서 사용하기 편리하지만, 그렇지 않은 제품은 사용법을 예측하기 어렵고 배워도 오래 기억하기 어렵다. 따라서 인터랙션을 디자인할 때 대부분의 사용자에게 익숙한 스키마가 무엇인지 잘 파악하여 디자인에 적용하여야 한다.



모든 태스크 수행 절차는 일관되어야 한다. (일관성)

일관성(Consistency)과 연관된 인지 심리학 이론은 스키마 이다.

스키마는 한 카테고리에 속한 여러 개체들의 공통적으로 가지는 속성을 뜻한다. 우리는 한 카테고리에 속한 여러 기능ㄷㄹ이 동일한 방식으로 수행되도록 설계되었을 때 일관성이 있다고 이야기 한다. 예를들어 문자메시지 삭제하기, 연락처 삭제하기, 음악 재생목록 삭제하기는 어떤 대상을 삭제한다는 점에서 한 스키마에 속하므로 삭제하는 방식이 동일하게 설계되어야 한다.





행동 경제학


수치 통계 및 데이터 중심의 일렬 된 현상을 체계화한 것이 경제학이라면 수치 통계 및 데이터 중심이 아닌 사람의 심리적 판단 및 행동을 통해 발생하는 사고를 체계화한 것을 행동 경제학이라고 합니다.


사람은 확률 이론에 따라 논리적으로 판단을 하기 보다는 간단히 주먹구구식 방법, 즉 *휴리스틱한 방식으로 판단을 합니다. 그런데 사람은 합리적으로 의사 결정을 하려고 하나 제한적인 인지 능력 때문에 비합리적으로 의사 결정을 하는 경우가 많고 이러한 사례를 체계적으로 수립한 것이 행동 경제학 입니다.


* 휴리스틱 : 수치상으로 확인할 수 있는 기준점이 없는 경우에 임의로 기준점을 만드는 것

블로그 이미지

뚱땡이 우주인

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

닐슨의 UI 사용성(Usability) 척도 다섯가지


UNCOVERING NEGATIVE USABILITY PATTERNS

TO DO THIS WE BEGIN BY DETERMINING WHAT MAKES A HOLOLENS EXPERIENCES USABLE, EMPLOYING THE NIELSEN NORMAN GROUP STANDARDS OF USABILITY AS OUR BENCHMARK


  1. 학습성 : 초보자가 제품을 학습하는데 걸리는 시간
  2. 기억 용이성 : 학습한 내용이 얼마나 기억하기 쉬운가를 평가
  3. 효율성 : 사용자가 제품에 친숙해진 다음에, 제품이 사용자의 과제 수행을 어느 정도 지지하는지 평가하는 기준
  4. 에러율 : 사용자 대표 그룹을 선발하여 과제를 수행하도록 한 뒤, 사용자가 범하는 에러의 수와 종류를 기록함으로써 측정 가능
  5. 만족도 : 마케팅 관점에서 가장 중요한 주관적 측정치

위 다섯 가지 측면에서 좋으면 좋은 UI인가? 아니다. 단지 사용성이 좋은 UI 일뿐이다.


좋은 UI는 사용자의 다섯 가지 욕구를 군형 있게 잘 만족시킨 것이라고 생각한다. 이를 위해서는 각 욕구 단계와 관련된 UI 설계 원칙을 잘 지켜야 한다. 특히 여러 설계원칙들을 한데 묶을 수 있는 세가지의 중요한 원칙으로 직관성(Intuitiveness), 일관성 (Consistency), 그리고 효율성(Effectiveness)을 꼽을 수 있다. 


"처음 사용할 시에도 사용방법이 직관적이고 그것이 여러 부분에 걸쳐 일관적이라면 학습하기가 용이하다. 익숙해진 다음에 더 효율적으로 사용 할 수 있다면 가장 좋다"


사용자 요구의 계층 구조(리드웰, 2003)와 관련 설계 원칙




MAYA (Most Advanced, Yet Acceptable) 원칙

아무리 새로운 것도 사용자가 받아들이지 않으면 실패한다

일반적으로 참신하고 새로운 제품일수록 사람들의 선호도는 높다. 하지만 사람들이 받아들이지 못할 정도로 새로우면 선호도는 오히려 떨어진다. 



기술발전의 패러독스를 명심하라

시간이 자님에 따라 기술은 발전하고, 기술이 발전함에 따라 그 기술을 사용한 새로운 UX/UI가 등장한다. 경쟁사가 새로운 기술을 채용한 제품을 시장에 선보이면 다른 회사들도 해당 기술을 채용하므로 기술 진화가 급진적으로 이루어지는데 가끔 이러한 기술 경쟁이 사용자의 실제 요구사항과는 무관하게 기술 우위성 확보와 기술 과시에 목적으로 사용자에게 유익함을 가져다주기보다는 오히려 제품의 사용의 복잡성을 가중시킨다. 이것이 기술 발전의 패러독스이다.


결국 기술발전으로 제품이 복잡해지면 사용자들은 본연의 기능에 충실한, 사용이 편리한 제품을 원하게 되므로(이를 디버전스 divergence라 부름) 제품은 다시 복잡성은 줄어들고 사용성은 커지는 방향으로 진화한다.




블로그 이미지

뚱땡이 우주인

,