반도체는 여러 소자와 물질들을 Wafer위에 쌓아서 만든다.

P-MOS와 N-MOS를 배웠다면, 두가지 모두 P-Substrate(P-type Wafer)위에 만든다는 사실을 알고 있을 것이다.

 

N-MOS의 경우, n+ 도핑을 할 것이기 때문에 P-Substrate위에 만드는게 타당해 보인다. 그러나 P-MOS의 경우 n-well을 만들어 준 뒤, 그 위에 p+ 도핑을 한다. 웬지 번거로워 보여서 왜 그런것인지 의문이 생긴다.

 

 

에칭된 웨이퍼(wafer)_사진출처[위키백과]

사실, Wafer는 P-type과 N-type 두가지가 모두 존재한다. (+ 성장방법에 따라 100 110 111으로도 나뉜다) 

그렇다면, 왜 양산공정에서는 주로 P-Substrate만 사용하는 것일까? 

 

결론부터 말하자면, 전자와 양공의 이동속도 차이 때문이다. (전자의 이동속도는 양공의 2.7배정도다.)

P-MOS와 N-MOS의 경우, P-N 접합이 존재하지만 반도체로서 MOSFET에 기대하는 역할은 P-N 접합사이의 전류의 흐름이 아니라 

Source와 Drain 사이의 전류 흐름이다.

P-N 접합에서 전류가 흐르지 않게 하려면, 상대적으로 속도가 느린 양공을 다수캐리어로 갖는 P-type Substrate 를 사용하는 것이 유리하다. (이 때 소수캐리어는 전자)

 

전자와 양공의 속도 차이는 CMOS Transistor 에서 P-MOS와 N-MOS의 다수 캐리어 이동속도를 맞추기 위해

P-MOS가 N-MOS의 2.5~2.7배로 만들어지는 이유도 설명할 수 있다.  

   

 

 

반도체가 어떻게 설계되는지 그 흐름을 간단히 알아보자.

설계에서 가장 중요한 것은 simulation이다! , 웨이퍼로 설계한것을 만들었을 때 문제가 없을지 미리 검증하는 것

회로설계의 Flow다. 하나의 칩(반도체)가 개발되서 양산되는데 까지는 1년반 이상이 걸린다.

Design Flow

1. Architecture design (큰 그림을 그리는 과정 - 건축물로 보면 어떤 건축물을 지을지 구상) 

2. Block Specification define

(1과 2는 구상단계라고 볼 수 있다, spec확인)

 

3. Hand calculation simulation

CAD를 이용해 회로를 그린다.

 

4. Simulation

simulation을 할 때 중요한 것은 corner조건으로 simulation하는 것이다.

공정의 에칭,도핑등을 거치게 되면 조건을 일정하게 유지하기가 어렵다. 

플라즈마 가스의 상태, 온도, 도핑 농도의 차이 등을 조합해서 corner조건을 설정한다.

 

5, Layout (실제 도면- 평면도) - 트랜지스터마다 크기가 다른 것을 고려한다. 

웨이퍼를 위에서 보는 것처럼 그림을 그린다.

 

6. Post layout simulation 

 -- layout을 가지고 simulation하는 것

 -- 4번 simulation 단계는 transistor끼리 연결하는 connector 라인의 특성을 고려하지 않음 

 -- layout을 그리면 physical적인 차이가 생기는데 그것을 고려한 simulation을 한다.

 -- 이 단계 뒤에 어떤식으로 개발을 했는지 발표하는 Design Review를 한다. (Design Review는 공정 업무에서도 한다_일종의 품평회)

 

7. ESD(Electric static discharge) 검증 

- 정전기는 반도체의 기능을 못하게 만든다.

- 정전기로부터 반도체를 보호해야함 (보호하도록 설계)

 

8. Testability 검증

- Test할 조건을 잘 설정하는 것이 중요하다

- 회로가 타당한지 체크

 

9, Fabrication 

- 우리나라의 반도체 대기업은 웨이퍼를 직접 만들지는 않는다. (구입해서 사용)

- 반도체 만드는 공정 진행

 

10. Packaging & Package test

- QA(품질)

 

11. ESD(Electric static discharge) 및 신뢰성 검증

- 실제로 높은 전압을 흘려서 반도체가 버티는지 확인

 

12. Mass production 

- 양산이다!

 

요즘 공정 트렌드는 미세공정

7nm -> 4nm -> 3nm 도전중..! 

= channel의 길이가 짧아지고 트랜지스터의 크기가 줄어드는 중이다.

 

점점 metal이 얇아지면서 높은 전압을 가하면 line이 끊어지는 문제가 발생

크기를 줄이면서도 강한 transistor를 만들 수 있는 방법을 계속 찾아내야 할것이다.

 

 

MOSFET 모스펫 참 많이들 말한다. 반도체 산업에서 일하고 싶다면, 이것의 구조와 동작을 필수적으로 알아야한다.

그렇다면 왜 알아야하는가? 그 이유에 대해 알아보도록 하자.

왜 알아야 되는가

우리나라가 현재 주력하고 있는 반도체는 메모리반도체다.

메모리소자의 주목적은 메모리를 저장하는 것이다. 메모리인 DRAM과 NAND FLASH에서저장을 할지 안할지를 1과 0의 신호로 결정하게 되는데,

신호를 ON OFF하는 스위치 역할을 MOSFET이 한다. 

 

반도체에는 몇백만개의 트랜지스터가 집적되어있고, MOSFET이 반도체 안에 수십만개 들어가 있다. 

그리고 MOSFET의 구조를 살펴보면, 모두 P-N접합 구조를 가지고 있다. 그래서 P-N접합과 그 효과 역시 알아야 한다.

서론이 길었다.

 

MOSFET은 금속산화막반도체 전계효과트랜지스터의 약자로, 결과적으로 말하면, 트랜지스터의 한 종류다.

앞의 MOS는 구조를 설명하고 FET은 작동 원리를 설명한다. (전계 = 전기장(전하로 인한 전기력이 미치는 공간))이다.

 

MOSFET의 구조 (MOS 트랜지스터)

N형과 P형이 있다. NMOS와 PMOS라고 한다. 

- Source Gate Drain으로 이루어져있다. + Base

- Drain : 소스에서 공급된 캐리어가 채널 영역을 지나 소자 밖으로 방출되는 단자

- Source: 전류를 운반하는 캐리어를 공급 (캐리어는 전자나 양공(정공)인데 NMOS의 캐리어는 전자, PMOS의 캐리어는 양공이다)

- Gate : 전압이 가해지는 곳 (소스와 드레인 사이의 전류흐름을 제어하는 역할)

 

NMOS와 PMOS의 기호는 여러방식으로 그려지만, 규칙이 있다.

규칙

1. NMOS는 Base의 화살표가 들어가는 방향으로 그린다.

2. PMOS는 Gate에 원표시를 해준다. Base는 화살표가 나가는 방향으로 그린다.

2. D와 S의 위아래는 상관없다.(전류방향만 잘 표시해줄것)

 

MOSFET의 작동 원리

NMOS를 가지고 설명하겠다. 트랜지스터가 작동한다는 것은 Source와 Drain이 서로 연결된다는 것이다.

이것을 Channel이 형성된다고 표현한다. 

 

Channel은 어떻게 형성될 것인가?

- 모든 것은 Gate에 전압이 가해지면서 시작된다. 

- NMOS는 P기판 위에 만들어지고,  S와 D에 n형 도핑이 되어있다.

- 이 때 Gate에 +전압을 걸어주면 P기판의 전자가 위로 끌어올려진다. 올라간 전자는 S와 D를 이어주면서 Channel을 형성한다.

 

-트랜지스터는 Gate에 문턱전압(보통 0.7V)이상의 전압이 가해지면 1(ON)->0(OFF) 이 되거나 0(OFF) ->1(ON) 이 된다. (상태가 바뀐다)

 

 

 

 

 

 

 

 

 

 

BIOS (Basic Input Output System)

- 컴퓨터의 기본 입/출력장치나 메모리 등 하드웨어 작동에 필요한 명령을 모아 놓은 프로그램이다.

- ROM에 저장되어 있어 ROM-BIOS라고 한다.

- 바이오스의 CMOS를 셋업할 때 설정된 내용은 CMOS RAM에 기억되며, 메인보드의 백업 배터리에 의해 내용이 유지된다.

- 하드웨어와 소프트웨어의 중간 형태인 펌웨어(Firmware)다.

- 전원이 켜지면 POST(Power on Self Test)를 통해 컴퓨터를 점검한 후 사용가능한 장치들을 초기화한다.

 

 

CMOS에서 설정가능한 항목은

시스템 날짜와 시간, 하드디스크 타입, 부팅순서, 칩셋 설정, 전원 관리, PnP설정, 시스템 암호 설정, Anti-Virus 기능 등이 있다.

 

cf) PnP(Plug and Play) : 새로운 하드웨어를 설치할 때 자동으로 감지하여 하드웨어 장치를 연결하기 위한 드라이버를 설치 (자동으로 하드웨어장치 연결)

개발 완전 초보의 도커 시작하기

 

도커는 내 컴퓨터 위에 새로운 컴퓨터를 하나 만드는 것과 같다.

아무것도 없는 A4용지에 내 입맛에 맞는 개발환경을 설정하는 것이라고 생각하면 된다.

 

1. 도커를 설치하자 www.docker.com 

docker version
docker

도커 설치 확인

docker라고 치면 docker 명령어 목록과 설명이 나온다. 

 

Enterprise Application Container Platform | Docker

Build, Ship, and Run Any App, Anywhere. Learn about the only enterprise-ready container platform to cost-effectively build and manage your application portfolio.

www.docker.com

 

2. 도커 Hub에 들어가고 가입도 하자 https://hub.docker.com/

도커 Hub은 도커 라이브러리 같은 곳이다.

도커의 이미지들이 public 하게 올라와 있고 이곳에서 이번에 사용할 django와 PostgreSQL을 가져올 수 있다.

django를 검색하고 제일 위에 나오는 페이지로 들어가면 django 이미지 사용 설명이 있다.

 

3. 장고 image 가져오기 (명령어: pull) 

이미지는 컨테이너를 만들 수 있는 설계도이다.

나만 사용할 수도 있고[private] 모두에게 공유할 수도 있다 [public ex) hub].

이미지에는 컨테이너 실행에 필요한 모든 것들이 설정되어 있고, 하나의 이미지로 여러 개의 컨테이너들을 만들 수 있다. 

docker pull django:latest

:latest는 최신버전으로 가져오라는 것이다 (docker pull django 까지만 해도 됨 default tag가 :latest일 것이다)

명령어를 실행하면 이렇게 나온다.

latest: Pulling from library/django
75a822cd7888: Pull complete
e4665cede9d1: Pull complete
202a45aa091c: Pull complete
7799136eb561: Pull complete
7a7f9ca3fd40: Pull complete
412f2d081014: Pull complete
Digest: sha256:5bfd3f442952463f5bc97188b7f43cfcd6c2f631a017ee2a6fca3cb8992501e8
Status: Downloaded newer image for django:latest

 

4. docker에 올릴 django application을 만든다.

자신이 접근하기 편한 폴더에 django app을 만든다. 

저는 Documents에 docker-django 폴더를 만들고 그 안에 django app을 만들었습니다.

user@user-ui-MacBook-Pro:~/Documents$ mkdir docker-django
user@user-ui-MacBook-Pro:~/Documents$ cd docker-django
user@user-ui-MacBook-Pro:~/Documents/docker-django$ django-admin startproject testapp

그러면 평소에 하던데로 장고 앱이 생기고 그걸 편집기로 열겠죠

도커에 올릴 장고 앱이 있으면 4번을 생략하고 그 장고 앱에 바로 도커 파일과 requirement.txt를 만들면 됩니다. 

 

5. django app에 도커파일 만들기

만든 장고앱에 Dockerfile이라는 이름의 파일을 만들고 다음과 같이 쓴다.

ARG PROJECT_DIR이 중요합니다.

이것은 도커의 directory를 만드는 것이고, 나중 단계인 내 컴퓨터의 directory와 docker 컨테이너의 directory를 정확하게 연결하는 과정에 쓰입니다. (testapp이라는 이름 대신 다른 directory를 만들어도 당연히 됩니다. "/자신이정한이름" )

 

6. requirements.txt 만들기

도커는 새로 컴퓨터를 만드는 것 같다고 위에 설명했는데 docker에는 django가 없으니 설치를 해주어야 합니다.

그러므로 django를 requirements.txt의 목록에 넣어줍니다.

 

7. 도커의 3가지 단계

도커를 돌리는 것은 3가지 단계로 나눌 수 있다.

    1) 내가 만든 app을 이미지로 만드는 단계 (명령어: build)

docker build -t kyuran-django .

-t는 --tag의 줄임말로 이미지에 이름을 붙여주는 것이다.

 

cf) 명령어 맨 뒤는 언제나 위치를 나타낸다. 

 .은 현재 폴더에 있는 도커 파일을 이미지로 만들겠다는 의미다. (나의 현재 위치는 ~/Documents/docker-django)

 ..이면 상위 폴더

 

...더보기

docker build 실행 결과

 

    2) 이미지를 컨테이너로 만드는 단계 (명령어: run)

 

컨테이너는 이미지가 실행된 상태라고 볼 수 있다.

컨테이너는 내 local에만 있는 것으로 공유할 수 없다.

docker run -it -p 8000:8000 --volume $(PWD):/testapp --name django1 kyuran-django

-it는 interaction으로 서버의 log를 확인하고 싶을 때 쓴다.

log를 확인하지 않아도 될 때는 -d를 쓴다. (detach)

 

-p는 --port의 줄임말이다. 컴퓨터(local)의 port와 docker의 port를 맞춰줘야 한다.

장고의 기본 port는 8000이다. 

앞의 8000이 local의 port

: (콜론)은 연결의 의미

뒤의 8000은 docker의 port다.

 

--volume은 가장 중요한 부분이다!

local 파일에서 수정한 내용이 docker에 적용이 되게 하기 위해서는

local의 디렉토리를 docker 컨테이너 내부의 디렉터리와 정확히 연결해야 하고

그 역할을 하는 것이 --volume이다.

$(PWD)는 현재 경로(local)

:는 연결

/testapp은 앞에 Dockerfile에서 만든 ARG PROJECT_DIR의 이름

--name은 컨테이너의 이름을 붙여주는 것 

django1 이라고 이름을 지었다.

 

마지막으로 어떤 이미지를 컨테이너로 만들 것인지 지정해 주어야 한다.

마지막에 kyuran-django는 이미지의 이름이다.

 

 

...더보기

docker run 실행 결과

migrate를 안했다고 나오는데 다른 terminal을 열어서 

docker exec -it django1 bash

bash로 들어가서 migrate를 해준다. 

root@9c749b72c39f:/testapp# 

이런 식으로 나올 것이다.

python manage.py migrate

 

cf) exec : docker 컨테이너에 접근

bash 상태에서 admin user를 만들 수 있다.

root@9c749b72c39f:/testapp# python manage.py createsuperuser

 

 

    3) 컨테이너를 켜고 끄기 (명령어: start, stop)

 

docker start -i django1

-i 는 log를 확인하고 싶을 때 사용한다. 

docker stop django1

 

컨테이너를 켜고 localhost:8000으로 들어가면 장고가 도커에서 잘 돌아가고 있는 것을 확인할 수 있다.

이제 장고앱을 계속 만들면 된다.

 

cf) image 없애기 (명령어: rm)

# rm 뒤에 없앨 이미지의 이름 입력
docker rm django1

이미지의 이름을 만들어주지 않으면 4edea98cd0d0 이런 식으로 이름이 만들어지는데,

docker images나 docker ps -a 명령어로 이름을 찾아야 한다.

 

cf) docker ps와 docker ps -a

docker ps를 하면 지금 실행되고 있는 이미지가 나오고 뒤에 -a를 붙이면 모든 이미지가 나온다.

(아래 결과 사진의 hello-world 이미지는 처음에 가져와본 이미지이고 postgreSQL은 아직 가져오지 않았으니 신경 쓰지 말자..)

user@user-ui-MacBook-Pro:~$ docker ps

 

user@user-ui-MacBook-Pro:~$ docker ps -a

 

도커를 왜 사용하는가?

 

개발을 하면서 필요한 library들을 local에 계속 설치하면 복잡해진다.

그래서 프로젝트마다 필요한 library만 설치하기 위해 가상의 환경을 사용하게 된다.

 파이썬을 할 때는 virtualenv를 루비는 rbenv를 사용해 보았을 것이다.

내가 만든 앱을 local에서만 잘 customize해서 사용할 때는 괜찮지만

나의 django app을 다른 사람의 컴퓨터에서 돌려보려면 복잡해진다.

그 사람의 컴퓨터에 virtualenv를 깔아야하고, 그 위에 pip install로 필요한 라이브러리를 깔고..

 

그러나 docker로 image를 만들면 한 번에 개발환경 세팅을 해결해 주기 때문에 간편하다.

즉 어떤 컴퓨터를 사용해도 동일한 환경에서 서버를 돌릴 수 있게 되는 것이다.

도커 만세!

 

 

Topological analysis of vector fields

The idea of this technique is to investigate critical points of a vector field, based on the eigenvalues of the Jacobian J at these critical points. A critical point is defined as an isolated point where the vector field vanishes, i.e., where u = 0. The following cases can be identified, based on the eigenvalues λ1 and λ2 of the Jacobian: 

 



 Trace[J] = a + d ( a, d are components of matrix J)

 (Trace[J])^2 = 4 det[𝐽] is parabola 


Attracting node: The eigenvalues are real and negative, corresponding to a sink. 

(Trace[J])^2 − 4 det[𝐽] = 0, 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑦 𝑝𝑎𝑟𝑡 = 0,  Trace[J]<0, det[J]>0


Repelling node: The eigenvalues are real and positive, corresponding to a source.

(Trace[J])^2 − 4 det[𝐽] = 0, 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑦 𝑝𝑎𝑟𝑡 = 0,  Trace[J]>0, det[J]>0


Saddle pointThe eigenvalues are real and have opposite sign.

(Trace[J])^2 − 4 det[𝐽] = 0, 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑦 𝑝𝑎𝑟𝑡 = 0, det[J]<0  Trace[J]<0 or  Trace[J]<0 (i.e a+d는 무관)


Repelling focus: Both eigenvalues are complex conjugate and their real part is positive. 

(Trace[J])7 − 4 det[𝐽] ≠ 0, 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑦 𝑝𝑎𝑟𝑡 ≠ 0, Trace[J]>0 det[J]>0


Attracting focusBoth eigenvalues are complex conjugate and their real part is negative. 

(Trace[J])7 − 4 det[𝐽] ≠ 0, 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑦 𝑝𝑎𝑟𝑡 ≠ 0, Trace[J]<0 ,det[J]>0






Parameter set 1


    critical point (0, 0)

    Jacobian

   


    Det |J-λI| = 0, λ1=1, λ2=-1

    The eigenvalues are real and have opposite sign.

ð  Saddle point.

 

Parameter set 2


    critical point (0, 0)        

    Jacobian

        


Det |J-λI| = 0, λ=1

    The eigenvalue is real and positive

ð  Repelling node.

 

Parameter set 3


    critical point (0, 0)

    Jacobian

       


Det |J-λI| = 0, λ=-1

    The eigenvalue is real and negative.

ð  Attracting node.

 

Parameter set 4


    critical point (0, 0)

    Jacobian


Det |J-λI| = 0, (-2-λ)^2+1=0 , λ^2+4 λ+5=0 , ,

    Both eigenvalues are complex conjugate and their real part is negative.

ð  Attracting focus.



The source of the problem is Professor Filip Sadlo in University of Heidelberg



벡터 필드의 벡터 v가 computational space에 정의되어 있다고 가정했을 때 유리한 점 (physical space와 비교하여)


Computational space는 기본적으로 Cartesian grid를 사용한다. Physical space는 가장 간단한 변환인 polar grid(극 좌표)부터 spherical coordinate(구면 좌표) curvilinear grid 등 어떤것이든(whatever) 될 수 있고 이것은 Cartesian grid보다 복잡하다. 


i.e. Computational space를 base로 하면 상대적으로 이상한 physical space에 비해 간단한 cartesian grid를 사용하여 interpolate(보간)도 쉽게 할 수 있고, 점의 위치도 쉽게 결정 할 수 있다. 



computational space에 있는 vector vJacobian을 이용해서 physical space에 있는 vector u 계산하기



벡터 필드는 곡선 그리드에 극좌표로 표현되고 주어진 Φ는 coordinate function(c->p 변환 함수)이다. [A vector field is given on a curvilinear grid by polar coordinates with the coordinate function] 



     

     


이 계산문제는 그닥 좋은 문제는 아니었다.

문제의 결과인 u는 cartesian grid가 된다. 즉 우리는 curvilinear한 C space에서 cartesian P space로 transfer 한 것이다. 그러나 C space는 보통 cartesian grid이므로 좀.. 이상한 문제가 된다.


핵심 개념은 rotation 파이와 Jacobian을 이용해서 r in c space -> p space , v in c space -> u in p space 하는 것이다. 



물리적 추론은 computational space에서 해야 할까 physical space에서 해야할까? 

[Should physical reasoning be done in computational space or physical space and why? ]

결론: physical space에서 해야한다.

이유: computational space는 physical space를 단지 추상화(abstraction), 단순화(simplification한 관점이기 때문에, 우리가 실제 공간을 단순화시키면 우리는 물리적 현상의 중요한 특징을 놓칠 수 있다.


Because computational space is just a term of abstraction and simplification of physical space, you might miss an important feature.



What are possible problems for r = 0?


    r = 0 is (0, 0) in cartesian coordinate. But If you express r = 0 in polar coordinates, you get an infinite number of cases. (0, pi), (0, pi/2).. and so on.     Therefore, we cannot know the direction of the vector.


Show whether Φ can be inverted at (r = 0, φ = 0). What are possible implications if this is not the case? 



Φ 는 Jacobian이다.

It is impossible for the denominator to be zero. (분모가 0이 되는 것은 불가능)

We can go to physical space by Jacobian but inverse Jacobian is impossible so we can't transfer to computational space. (P space로 갈 수 있지만 C space로 갈 수 없음)



The source of the problem is Professor Filip Sadlo in University of Heidelberg


2018년 2학기 Heidelberg 대학 Informatik(컴퓨터학과)의 SV(Scientific Visualization) 수업을 듣고 공부한 것을 정리한 글입니다.

학기는 2019년 2월 9일에 끝날 예정이라 기말 시험(Oral Test)을 준비하며 배운 내용, 과제 정리 글을 올립니다.


에이 이런거 한국에서는 딱히 안궁금해 할꺼야 엉엉...



Chapter 0 : Preliminary Discussion


# Scientific Visualization은 무엇? 배울 내용

과학적 현상이나 데이터를 그래프, 2D그림, 3D그림으로 시각화 하는 것. CT나 MRI, DNA구조, 각종 지도들 사진들이 이에 해당합니다. (볼 수 없는 것을 보게 해줌)

Visualization하는 과정(process), Interpolation과 filtering, Mapping 하는 법, Scalar field를 visualization 하는 법, Vector field, Tensor field Visualization하는 법

수학적 지식을 필요로 합니다. (Vector와 선형대수)


컴퓨터를 과목(알고리즘, 컴퓨터 그래픽, 기하학적 모델링 및 에니메이션) 이 선행되어 있으면 좋다고 하지만 

저는 뭐.. 안들었죠.  선행과목 없이도 들을 수 있지만 어렵네요! C++과 python을 사용합니다.



Chapter 1 : Introduction


SV에서 하는 것 : data를 변형(transformation)하고 특징(features)들을 뽑아내기(extraction)

내가 생각하는 시각화의 필요성은 결과가 그림으로 직관적으로 나오기 때문에 

전문가가 아니더라도 보는 사람이 쉽게 이해할 수 있게 만들어준다는 것


Examples: 

CT (Computed Tomography) 컴퓨터 단층 촬영기

CTA (Computed Tomography angiography) 혈관 조영술

Protein 구조, 자동차 3차원 모형, 토네이도 

멋있는 것들 매우 많은데 exercise는 일단 데이터 plot부터 시작


Bad Examples: 

1단원에서는 구술 시험에 아마 이 부분이 나오지 않을까 싶다.


1) Inconsistency of visual and data dimensions (시각화 된 것과 데이터의 차원의 불일치) - scaling by diameter

If we choose diameter as a scale, it's hard to compare how much the change value is. (But the information is reliable.)


Inconsistency of visual and data dimensions



[Source: S. Few, http://www.perceptualedge.com/example18.php, taken from J.P. Morgan] 

Solution : bar graph를 쓰는 것 


[Source: http://www.journalism.org/node/1472S, referenced by Few, http://www.perceptualedge.com/example14.php]



2) Non-zero baseline , No continuous depiction of time



Non-zero baseline , No continuous depiction of time

Because of no zero baseline, the figure of 2005 looks like 

almost 5 times difference, but actually figure is less than 

2 times difference.

Solution : Improved re-design


 점선은 추정 값이다.(1983년 부터 2003년의 값이 비어있기 때문이다. 실제 값이 있다면 실제 그래프는 추정선과 다를 수 있다.) 



3) Rubber band scales 



 Rubber band scales 

의사와 다른 전문직의 수입 비교 그래프 ( Rubber band scales가 정확히 뭔지는 모르겠지만.. 불명확한 모양의 값 표현 방식인듯)



Solution : linear time scale

Doctor's income: 1939부터 exponentially 증가

Other professionals' income: linearly하게 증가



4) missing context


 

Missing context ( 문맥이 없음 = 값 2개로는 규칙성을 찾을 수 없음)

only two values -> can't find a tendency


Solution : add context


 



수업을 정리하면서 수업자료를 얼마만큼 그대로 써도 괜찮을지 고민이 많다. 

구글에 키워드 검색하면 수업자료랑 똑같은 ppt들 여러개가 통째로 돌아다니던데 흠.. 자료에 있는 사진들 써도 괜찮을 것도 같고,,

사진이 없으면 설명하기 어려운 과목이니까;


Introduction은 무난하고 더 덧붙이면 사족이 될 것 같다. 그러나 과제와 수업은 다른 차원인듯하다.



Visualization Tool (+ 무료)

gnuplot을 설치하면 txt형태로 된 data의 graph를 그릴 수 있다. 마치 엑셀 그래프처럼 나온다. 복잡한 함수의 3차원 그래프도 그릴 수 있음.


gnuplot(graph plotting) : www.gnuplot.info



Filip Sadlo 교수님의 Scientific Visualization, WS 2018/19 수업의 pdf를 참고




+ Recent posts