flask async response

python 2017. 1. 4. 12:05

Gevent monkey patch makes requests to react asynchronous.

Environment: mac OS 10.11.5, python 3.5.2, gevent==1.1.2, requests==2.12.4

Example:

from flask import Flask

from gevent.pywsgi import WSGIServer
from gevent import monkey

import requests
# need to patch sockets to make requests async
monkey.patch_all()

app = Flask(__name__) # pylint: disable=invalid-name
app.debug = True


@app.route('/test')
def test(requests_counter=[0]): # pylint: disable=dangerous-default-value
"""Asynchronous non-blocking streaming of relatively large (14.5MB) JPG
of Seattle from wikimedia commons.
"""
requests_counter[0] += 1
request_num = requests_counter[0]
url = 'http://www.google.com'
app.logger.debug('started %d', request_num)
rsp = requests.get(url)
app.logger.debug('finish %d', request_num)

return rsp.text


def main():
http = WSGIServer(('', 5000), app.wsgi_app)
http.serve_forever()


if __name__ == '__main__':
main()

Result:

started 1

started 2

started 3

started 4

started 5

started 6

finish 4

finish 5

finish 3

finish 6

finish 1

finish 2

'python' 카테고리의 다른 글

websocket with gunicorn  (0) 2017.03.03
gunicorn vs uwsgi  (0) 2017.01.20
functools.wraps에 대해  (0) 2015.04.15
Apple Push Notification Service(APNs) python modules  (0) 2015.04.07
Getting specific timezone timestamp from time string  (0) 2015.01.20
블로그 이미지

시간을 거스르는자

,

[펌] http://www.nexpert.net/353

글 싣는 순서

1. Secure IP Telephony의 개요 
2. 암호화 (Encryption)와 인증 (Authentication)
3. 전자서명 (Digital Signature)
4. PKI의 이해
5. Cisco Secure IP Telephony의 이해 
6. TLS & SRTP


Encryption(암호화)와 Hash(해쉬)의 차이
암호화는 암호화 알고리즘을 이용하고, 인증은 해쉬함수를 이용하여 Verification Data를 만들어 원문에 태그(Tag)를 붙여서 전송하므로 해쉬함수를 이용합니다. 암호화 알고리즘과 해쉬 함수의 동작 방식을 이해하면, 암호화와 인증의 차이를 이해할 수 있습니다. . 

위의 왼쪽 그림은 암호화 알고리즘의 동작방식을 설명한 것이며, 암호화는 기본적으로 양방향 통신을 전제로 하므로 암호화와 복호화가 가능해야 합니다. 복호화되지 않는 암호화는 의미가 없는 것입니다. 위의 오른쪽 그림은 헤쉬함수의 동작 방식을 설명한 것이며, 헤쉬는 메세지를 고정된 길의의 문자열로 변환합니다. 헤슁을 통해 생성된 Message Digest는 복호화될 필요가 없습니다. 헤쉬는 메세지마다 다른 내용의 Message Digest를 만들기 때문에 메세지의 지문(fingerprint)으로 볼 수 있습니다. 

정리하면, 암호화는 복호화를 전제로 양방향 통신을 위한 것이며, 헤쉬는 고정된 길이의 문자열을 생성하고 복호화를 할 수 없습니다. 


해쉬의 이해
해쉬는 가변길이의 데이타를 고정된 길이의 문자열로 변환하는 역할을 하며, 복화화가 되지 않으므로 원문을 알수 없습니다.  대표적인 해쉬 알고리즘은 MD5 (Message Digest)와 SHA (Secure Hash Algorism)가 있습니다. 

아래그림의 왼쪽 그림은 일반적인 해쉬 과정입니다. 

일반적으로 헤쉬는 보안상의 문제가 있습니다. 원문을 헤슁하여 Varification Data를 붙여서 전송하는 것이 일반적인데 전송 과정에서 누군가가 원문을 변환한 후에 Varification Data를 붙여서 수신자에게 보낸다면 수신자는 메세지의 변경 여부를 알지 못합니다. 

그래서, 위의 오른쪽 그림과 Secret Key를 추가하여 Verification Data를 생성하는 것입니다. 원문메세지에 보안키를 추가하여 Verification Data를 생성합니다. 이를 MAC (Message Authentication Code)라고 합니다. 전송과정에서 보안키를 모르는 제 삼자가 메세지를 변경하게되면 수신자는 이를 검출할 수 있습니다. MAC은 인증과 무결성을 동시에 제공할 수 있으며, 암호화에 비해 연산이 빠르다는 장점이 있습니다.  MAC은 생성 방식에 따라 다양하게 나눌 수 있는 데 IP Telephony에서는 HMAC (Hash-based MAC)을 주로 사용합니다. 

여기서 대표적인 해쉬 알고리즘인 MD5와 SHA-1에 대해 초 간단하게 살펴보겠습니다. 

  • MD5(Message Digest)
    Rivers가 개발한 메세지 요약 알고리즘으로 큰 메세지를 압축해야 하는 전자서명 응용프로그램을 위해 개발되었으며, 최대 128 bit의 고정길이로 요약 가능합니다. 이름에서 보듯이 MD 5는 다섯번째를 의미하며, MD2는 8bit 컴퓨터를 위해 MD4와 MD5는 32bit 컴퓨터용으로 개발되었습니다. 

    MD5는 과거에 라우터의 IOS에서 패스워드를 헤슁할 때 많이 쓰던 방식입니다. 보안이 취약하여 이제는 거의 쓰지 않습니다. 


  •  SHA (Secure Hasj Algorism)
    미국 국가 안전 보장국 (NSA)에서 개발하였습니다. 1993년에 최초 개발된 함수는 SHA-0로, 후에 SHA-0를 변형한 함수는 SHA-1으로, 그 후에 발표된 SHA-224, SHA-256, SHA-384, SHA-512를 묶어서 SHA-2 라고 합니다.  이 중  SHA-1이 가장 많이 쓰이며, TLS 및 SSL, IPSec에서 사용합니다.  

    SHA-0과 SHA-1는 최대 160bit의 고정길이로 요약하고, SHA-2는 사용 함수의 뒤 숫자 만큼 가능합니다. SHA는 MD5보다는 느리지만, 강화된 보안을 제공하므로 많이 사용합니다. 

헤쉬된 Verification Data 또는 MAC은 복호화가 되지 않으므로 수신자는 원문을 같은 방법으로 헤쉬합니다. 그래서 헤쉬된 값을 비교하여 결과를 확인합니다. 


암호화의 이해
암호화는 크게 암호화와 복호화에 같은 키를 사용하는 대칭 암호화 (Symmetirx Encryption)과 서로 다른 키를 사용하는 비대칭 암호화(Asymmetirc Encryption)로 나누어집니다. 대칭 암호화의 대표적인 알고리즘은 DES, 3DES, AES과 있으며, 비대칭 암호화의 대표적인 알고리즘은 RSA입니다. 

대칭 암호화 알고리즘은 빠르다는 장점이 있지만, 송신자와 수신자가 같은 키를 사용해야만 하고, 기기마다 다른키를 가지고 있으며, 자주 키를 바꾸어야 하기 때문에 관리가 어렵다는 단점이 있습니다. 대칭 암호화 알고리즘은 Email,SRTP, HTTPS 등의 어플리케이션에서 많은 양의 데이타를 처리하기 위해 사용합니다.  대표적인 대칭 알고리즘인 DES와 AES에 대해 초 간단하게 살펴보겠습니다.

  • DES (Data Encryption Standard)
    미국 NIST (미 표준 기술 연구소)에서 정한 암호이며, 키 길이가 56비트로 너무 짧고 특히나 슈퍼키가 존재할 수 있다는 의심을 받고 있습니다. 3 DES는 DES를 세번 반복하는 것입니다. DES는 이제 역사속으로 사라지는 암호화 알고리즘 입니다. 


  • AES (Advanced Encryption Standard)
    미국 NIST에서 정한 암호이며, 32배수의 키 길이를 사용하나 128bit의 키 길이가 대세입니다. AES는 특히 무료로 공개되었기에 대부분의 보안 장비에서 사용하고 있습니다. AES는 Secure IP Telephony에서 가장 중요한 알고리즘으로 SRTP 및 Signaling 등에서 사용합니다. 




비대칭 암호화 알고리즘은 너무 느린다는 단점은 있지만, 매우 안전하며, 키 관리가 단순하다는 장점이 있습니다. 따라서 적은 양의 데이타를 처리하는 데 주로 사용됩니다. 대표적인 비대칭 암호화 알고리즘인 RSA에 대해 초간단하게 살펴보겠습니다. 

  • RSA 
    RSA는 Rivest, Shamir, Adleman라는 세명이 과학자에 의해 개발되었으며, 세 사람의 앞글자를 따서 이름을 만들었습니다. RSA의 키길이는 1024 또는 2048bit를 이용합니다. RSA는 소인수 분해를 기초로 만들어 졌습니다.  소인수분해는 하나의 숫자를 작은 소수의 곱으로 나누는 것입니다. 소인수 분해가 획기적으로 빠르게 할 수 있는 양자컴퓨터가 반들어지기 전까지는 대세 프로토콜입니다. 
     
    일반적인 공개키(Public Key) 알고리즘은 송신자가 수신자의 공개키로 암호화하여 전송하고, 수신자는 자신의 개인키(Private Key)로 복호화하므로 개인키를 가진 한 사람만이 암호화된 내용을 확인할 수 있습니다. 그러나, RSA는 개인키로 암호화하여 공개키로 복호화할 수 있습니다.개인키로 암호화는 단 한명 만이 할 수 있고, 공개키를 가진 누구든지 볼 수 있으므로 전자서명에 활용됩니다. 



암호화에 대해 정리하게습니다. 단순하게 대칭 암호화 알고리즘인 AES는 대용량 데이타를 처리하기 위해 사용하고, 비대칭 암호화 알고리즘인 RSA는 소용량 데이타를 처리하기 위해 사용한다.

====

서버쪽에선 보통 기본 패킷 인코드/디코드에서 비교적 빠른 AES를 쓰고, 로그인 인증에 SHA해시를 사용한다.

'서버 교양' 카테고리의 다른 글

python 3.5 flask gevent async requests test  (0) 2017.04.07
Logstash install  (0) 2017.03.17
Docker overview  (0) 2015.06.13
SSL 인증서 발급  (0) 2015.03.04
글로벌 푸시 시스템 구성하기  (0) 2015.01.16
블로그 이미지

시간을 거스르는자

,

when you are comparing string from DB and Excel or CSV or .. file,

then, Just try to change file encode type to UTF-8.

or

try to match encoding type between two strings.

블로그 이미지

시간을 거스르는자

,

JIT vs Interpreter

분류없음 2016. 10. 25. 19:33

http://www.differencebetween.net/technology/difference-between-jit-and-interpreter/

JIT방식은 그 코드 block이 사용(호출)될때 machine code로 변환해서 사용하고 이미 한번 machine code로 변환한것은 캐싱해두었다가 변환하는 과정없이 실행한다.

Script언어의 Interpreter방식은 미리 컴파일된 함수들을 가지고 있고, code를 line by line으로 해석해서 이 함수들에게 던져준다. 

'분류없음' 카테고리의 다른 글

[cpp] std::move는 단지 캐스팅일 뿐이라고?  (0) 2017.02.08
Same string but different length  (0) 2016.10.28
git pushed merge cancel  (0) 2015.04.13
[encoding] javascript write to csv  (0) 2015.04.11
APNS python failure and feedback  (0) 2015.04.06
블로그 이미지

시간을 거스르는자

,

zscore list copy

redis 2016. 10. 12. 17:48

#zscore, zrevrange

https://stackoverflow.com/questions/9282822/is-it-possible-to-duplicate-a-redis-sorted-set#

http://redis.io/commands/zunionstore

zadd foo 1 a
zadd foo 2 b
zunionstore bar 1 foo
zrange bar 0 -1
1) "a" 
2) "b"


'redis' 카테고리의 다른 글

redis sentinel  (0) 2015.11.30
[Redis] HSET vs SET  (0) 2015.01.09
블로그 이미지

시간을 거스르는자

,

mssql deadlock

카테고리 없음 2016. 8. 11. 17:30

Stored procedure 에서 transaction을 걸때 isolation level을 잘못 쓰면 select 할때도 락을걸어 다른 프로시져에서 기다리게 만든다.

Isolation level:
https://support.microsoft.com/ko-kr/kb/601430

위 상황이 확률이 높고.. 여러개의 procedure들간 테이블 업데이트 순서가 달라도 발생가능성이 있다고 한다.

데드락인 상황을 그려보면,

SP1
Begin tran
Update A
Update B

SP2
Begin tran
Update B
Update A

이 두 프로시져가 다수 호출되는 서비스라면 서로 우연찮게 같은 row를 고치려고 할때 각각의 프로시져가 커밋될때까지 기다리는 데드락 상황이 올수있다.
이와같은 업데이트가 아니더라도 isolation level을 잘못 셋팅하면 셀렉트도 발생시키는 원인이 될수 있다.





블로그 이미지

시간을 거스르는자

,

원문: http://oyc.yale.edu/philosophy/phil-176#sessions

Lecture 5 - Arguments for the Existence of the Soul, Part III: Free Will and Near-Death Experiences [January 30, 2007] 


Chapter 1. The Dualist's Stance on Free Will and the Soul's Existence [00:00:00]

 physicalist의 관점에서, 우리는 그냥 미화된 로봇의 일종이다. 대부분의 공상과학 영화에서 나오는 여러가지 것들을 할수 있는 그런. 또한 우리는 그냥 미화된 physical object라고 볼 수도있다. 좀 더 넓게 말하자면, 그들은 결정론에 의존할 것이다. 그저 자연의 법칙을 따르는 physical object, 정해져있는 형태를 따라서 어떻게 말하자면 정해져있는 시스템을 따라서 처음 시작부터 같은 흐름으로 자연에 법칙에 따라서 흘러가는 것이라고. 그래서 마치 테이프를 되돌려서 들으면 똑같은 소리가 나오듯, 시간에 따라서 그저 정해진 환경에 따라서 움직이고 변화하는 것이라고.

직관적으로 볼때, 사람이 자유의지를 가지지 않고 이미 정해져 있는 법칙을 따른다는 것이 꽤 타당성이 있어 보일 수 있다. 왜냐하면, 사람은 같은 장소, 같은 시간, 같은 상황에 처했을때 다른 선택을 하지 못한다는 것이다. 정해져있는 법칙을 따른다는 것과 자유의지를 가졌다는 것은 공존할 수 없다. 모든 physical object는 결정론을 따른다. 사람은 정말로 자유의지를 가졌는가?

지난 강의에서 마지막에 얘기했던 논의거리를 보자. 4번의 결론을 얻기 위해서는 3개의 전제가 필요했다. 근데 우리가 자유의지를 가졌다는 것이 설득력 있어 보이지 않는다. 그래서 우리는 순수 physical object가 아니라는 결론을 얻기 힘들다.

하지만 아직 각각의 전제들은 그럴싸한 논의 거리다.


Chapter 2. Determinism and Free Will Cannot Coexist – Inspecting Incompatibility [00:04:57]

"1. 우리는 자유의지를 가졌다. 이 첫번째 전제는 우리가 영혼을 가졌다라는 것을 증명할 수 있는 것이다. 우리는 지난시간 우리가 정말 자유의지를 가졌는가?에 대해서 이야기했다. 이번에는 자유의지에 대해서 다시 얘기해 본다.

몇몇 철학자들은 우리가 자유의지를 가졌다고 믿는것은 환상일 뿐이라고 말한다. 실제로는 그렇지 않다고. 왜 그럴까? 그들은 아마도 이렇게 말할 것이다. 

“음 글쎄, 우린 그냥 물질적인 존재이고, 결정론이 우리에게 진실이니까. 결정론을 따르는 object는 자유의지를 가질수 없기 때문에 우리는 자유의지를 갖지 않았어. 우리는 그저 자유의지를 가졌다는 환상속에서 움직이는 물질적인 존재에 불과해. 생각해봐, 너는 자유의지를 볼 수도 없고 너의 마음을 자세히 들여다 볼수도 없고, 네가 자유의지를 가졌다는 것도 볼수 없자나. 그래 우리는 다르게 행동할 수 있을것 같지만 그것은 환상일거야.” 

이런식으로 생각하는 철학자들이 있고, 자유의지를 가졌다는 것을 부정하고 그렇게 결론짓는다면, 우리는 더이상 영혼의 존재를 증명하기 위해서 이 논의(전제1에 대한)를 들고 있을 필요가 없다. 이것은 이 논의를 피하기 위한 방법이다. 그렇지만, 나(교수)는 첫번째 전제가 사실이라고 생각한다. 

아직 2개의 전제가 남아있다. 3번 전제를 보자. “모든 순수 물질적인 시스템은 결정론을 따른다.”
자유의지와 결정론을 양립할 수 없다는 말이다. 하지만 만약 자유의지와 결정론이 양립할 수 있다면? 자유의지와 함께 결정론을 따른다면? 3번 전제역시 rejected될 수 있다.

사실 고백하자면, 3번 전제는 실증적 과학에 대한 주장이다(17세기). 그러나, 양자 역학(19세기)의 표준해석에 따르면 물리학의 기본법칙들은 사실 결정론을 따르지 않는다고 한다.

이것이 무슨말일까? 우리가 방사성 물질을 가지고 있다고 해보자. 그리고 이 물질은 다음 24시간 안에 반감할 가능성이 80%라고 하자. 이 말은, 20%는 반감이 안될 수 있다는 말이다.          

하지만, 결정론을 따른다면, 일정한 주기나 법칙에 의해서 정확하게 결정된 데로 동작해야 한다. 그러나 방사성 물질은 이렇게 반감하지 않는다. 
기초 물리학 레벨에서는 결정론을 따르지 않고 확률론을 따른다. 그리고 이것이 사실이라면 3번 전제는 거짓이 된다. 모든 물질적 존재가 결정론을 따르는 것이 아니기 때문에 이것이 우리가 순수 물질적 존재라는 가능성을 배제해주진 않는다. 따라서 결정론과 자유의지를 함께 가질순 없지만, 순수 물질적존재이며, 자유의지를 가질수도 있다는 말이다.

2번째 전제를 보자, “결정론을 따르지 않는 것은 자유의지를 갖는다” 그러나, 몇몇 철학자들은, 자유의지와 결정론. 둘은 양립할 수도 있다라고 생각한다. 따라서, 우리가 결정론을 따른다고 해서 우리가 자유의지를 가졌다는 것을 배제할 수 없다는 것이다. 즉, 결정론과 자유의지는 양립할 수 있다는 주장이다.

이 주장을 따른다면, 즉, 우리는 결정론을 따르며 자유의지를 갖고 또한 여전히 순수 물리적 존재일 수 있다는 것이다. 오늘, 여러분이 이 양립가능성을 믿게 하기 위해서 나(교수)는 아무말도 하지 않았고, 앞으로도 하지 않을 것이다. 

하지만 요점은, 우리가 자유의지를 가졌다는것을 설명하기 위해서 영혼이 존재한다고 성급하게 믿지 말아야 한다는 것이다. 영혼의 존재를 결론짓기 위해서는 많은 전제들을 필요로 한다. 그리고 각각의 전제들은 난해할 수 있다. 각각의 전제들에 대해서 많은 철학적 견해와 과학적 근거가 있을 수 있다. 앞으로 영혼의 존재를 증명해 나가는 것은 여러분의 몫이다.


Chapter 3. Positing the Soul's Existence for Near-Death Experiences [00:15:22]

...


블로그 이미지

시간을 거스르는자

,

Lecture 4 - Introduction to Plato's Phaedo; Arguments for the Existence of the Soul, Part II [January 25, 2007] 

Chapter 1. Introduction to Plato's Phaedo [00:00:00] 

 이건 좀 듣기 어려움. 아무튼 대충 내용은 플라톤의 파이돈을 다음주까지 읽어와야 토의를 진행할 수 있다는 말과 함께 어떤 개념이 플라톤이 말한것이건 소크라테스가 말한 것이건 각각의 view가 무엇이 있는지가 중요하지 그 개념이 어디서 왔는지는 이 수업에서는 중요하지 않다고 함. 

Phaedon(파이돈)의 주제는 소크라테스의 마지막 날에 맞춰져 있다.  대화의 끝에서  그는 독약을 먹고 죽지만 아마도 죽기직전까지 그가 친구들과 토의했던 것은 영혼의 불멸성일 것이다. 그는 놀랍게도 그의 죽음에 대해서 불안해하지도 걱정하지도 않았었다. 그는 그의 영혼의 불멸성을 믿었기 때문에 그의 죽음을 기꺼이 받아들였다. 

Chapter 2. Creativity and Reason in Machines [00:08:27]

 우리는 어떻게 영혼의 존재를 논의할 수 있을까? 저번에 우리는 몇가지 얘기를 했었다. 사람은 단지 기계가 이나라고, 왜냐하면 기계는 추론할 수 없고 생각할 수 없기 때문에. 하지만 이건 주목할 만한 주장은 아닌것 같다. 채스 게임을 하는 컴퓨터는 추론을 할 수 있는것 처럼 보인다. 그들은 목적에 대한 열망을 가졌고 그것을 이루려고 노력한다. 그리고 유저를 패배시키기위해 추론한다.

여기서 우리는 컴퓨터가 무엇인지 적어도 베스트 채스 플레잉 컴퓨터가 못하는 것이 무엇인지 알 필요가 있다. 여러분은 아마도 컴퓨터는 그냥 모든 게임에 대해 모든 가능한 수를 계산해서 움직인다고 생각할 수 있다. 하지만 채스 플레잉 프로그램은 이렇게 작동하지 않는다. 모든 가능한 채ㅡ 게임의 수는 너무 많이 때문이다. 이걸 다 계산하려면 너무 오래 걸린다. 

그렇다면 채스 플레잉 게임 프로그램은 어떻게 동작할까?. 그것들은 당신이 하는것과 똑같은 방버으로 동작한다. 어떤 것을 움직이는것이 좋을까에 대한 몇몇 가능한 수를 가지고 성공적인 수를 선택한다. 만약 당신이 채스 게임에서 진다면 다음엔 좀더 다른 시도를 할 것이다. 컴퓨터도 당신과 같이 작동한다. 만약 당신이 이 채스 프로그램과 채스 게임을 한다면, 프로그램이 어떻게 움직일지 생각하고 두지 않을 것이다. 이 프로그램을 디자인 하는 사람들 또한 “내가 이렇게 프로그램 했으니 저렇게 움직일꺼야” 하고 두지 않는다. 왜냐하면 채스 게임 프로그램은 지속적으로 상황에 맞게 전략을 바꾸기 때문이다. 따라서, 그냥 실력있는 채스 플레이어로 간주하고 채스를 둘 것이다. 현재 채스 프로그램은 사람 채스 챔피언을 이겼다. 지금은 누구도 채스 프로그램을 이기지 못한다. 

Chapter 3. Feelings in Machines, from Marvin to Hal [00:13:43]

“기계는 추론할 수 있는가?”에 대한 질문은 몇몇 영역에서는 “그렇다" 이다. 따라서 추론능력으로 사람이 영혼이 있다고 말하는 것은 타당하지 않은것 같다. 하지만 영혼이 있다고 믿는 사람들은 이렇게 주장할 수 있다. 느낌, 사랑, 두려움, 기분등은 어떤가? 세상에 어떤 기계도 감정을 가질 수 없기 때문에 사람은 단지 physical object가 아니다.

그렇다면, “혹시 무언가를 느낄수 있고 어떤 감정을 가질 수 있는 기계가 있는가?”를 질문해보자. 예전의 TV show중에 어떤 위험상황이 닥치면 위험하다고 계속 외치는 로봇이 있었다. 이것은 로봇이 걱정을 하는것 처럼 보인다.

또 다른 예로, 2001년 A Space Odyssey라는 영화에서는 어떤 행성을 조사하기 위해서 우주비행사들을 파견하는데, 이때 우주선에는 이 중요한 미션을 도와줄 컴퓨터 프로그램 Hal이 함께 탑재되어있었다. 그런데 이 Hal은 사람이 이 중요한 미션을 망친다는 것을 감지하여 사람들을 모조리 죽이고 미션을 수행하려고 한다. 이를 알아챈 우주비행사 Dave가 Hal을 정지시키려고 하는데, Hal이 이것을 감지하고 Dave를 막으려 한다. 영화내용중 Hal은 Dave한테 말한다. 나는 죽는게 두렵다고. 

물론 이건 픽션이지만, “컴퓨터가 말하고 두려워하다니 말도 안돼!”라고 말하는건 편견이라고 본다. 컴퓨터 프로그램이 감정을 느끼는 것은 자연현상이라고 본다. 하지만 컴퓨터는 단지 기계일 뿐이니까 그 안에 회로 이상의것은 없다는 주장이다. 만약에 이것이 맞다면 우리가 감정을 느끼는 것이 영혼의 존재로 설명할 필요가 없다는 것이다.

(실제로 있지 않는 픽션으로 이끌어내는 결론이 좀 맘에 안들긴 하는데, 고도의 지능에 국한된 기능으로 본다면 그럴수 도 있다고 생각한다.) 

 Chapter 4. Qualia in Emotion and Consciousness: The Dualist's Defense and Its Weakness [00:20:34]

 Dualist의 입장에서 생각해보면, 감정과 느낌은 각각 두가지 관점으로 나눌수 있다. 하나는 행동적인 측면이다. 어떤 환경적 변화나 위험을 감지하고 어떠한 행동을 하는 것. 사람과 로봇 둘다 할 수 있는것이 있는 측면이 있고, 또 다른 하나는 경험의 질적인 측면인데, 행동적인 측면과 동시에 일어나는 내면의 느낌이다. 어떤 행동을 하는것이 아닌 내면에 느껴지는 것. 로봇은 이것이 없다는 주장이다.

만약에 빨간색을 본다면, 사람과 로봇 모두 그것을 보고 빨간색이라고 할 수 있다. 하지만 로봇은 이 경험의 질적인 측면을 가질 수 없다. 만약 태어날 때 부터 장님이 사람이 있다면, 그는 빨간색을 알 수 있을까? 만약 그가 과학자라서 어떤 결과로 부터 그것이 빨간색임을 알아낼 수는 있지만 그는 빨간색을 본것이 아니고 상상할 수도 없다. 따라서 이 질적인 경험을 가질 수 없다. 또한 우리의 삶은 이런 측면들로 채워져있다. 색깔, 소리, 냄새등. 이런것엔 경험의 질적인 측면이 있다.

우리는 우리자신에게 물어볼 수 있다. “빨간색을 보면 어떤 기분이 들까?, 커피나 파인애플을 먹으면 어떤기분이 들까?” 컴퓨터는 이런 질적 경험을 모르기때문에 우리는 로봇과 다르다고 주장할 수 있다.

그렇다면 이에 대해서 Physicalist는 어떤 생각일까? 기계한테 의식을 넣을 수 있는 방법이 있다면, 기계또한 내면의 질적 경험을 가질 수 있다. 하지만 지금시점에서, 우리는 어떻게 의식을 넣을 수 있는지 모른다. 만약 이 의식을 우리의 정신적 삶의 질적 측면이라고 한다면, phisical term으로는 설명할 수 없다. 바로 이것이 dualist가 "이것을 설명하기 위한건 soul뿐이야” 라고 말하는 것을 그냥 무시할 수 없는 것이다. 하지만 이것이 soul을 믿는다는 것은 아니다. 아직 우리가 의식에 대해서 물리적으로 설명할 수 없을 뿐이라는 것이다.

14세기에 인간의 삶에 대해서 물리적으로 설명할 수 있었을까? 지금은? 완벽히는 아니지만 14세기에 보다는 좀더 삶에대해서 잘 이해할 수 있는 위치에 있을 것이다. 의식도 마찬가지로 아직 그 영역에 대해서 모를뿐이라는 것이다. dualist들에게 그럼 의식은 어떻게 동작하냐고 물어보면 그들도 그것에 대해서 설명할 수 없다. 만약 soul의 구조와 동작원리에 대해서 누군가가 설명할 수있다면 나는 그 주장을 받아들이겠다. 하지만 설명할 수 없다면 이것은 better explanation이 아니다.

감정말고 창의성(Creativity)에 대해서 생각해 보자. 우리는 음악을 만들 수 있고, 시를 지을 수 있다. 기계는 못하지 않는가? 아니다. 기계도 창의적인 행동을 할 수 있다. 채스 챔피온을 이긴 컴퓨터가 한 행동은 세상 그 누구도 하지 않았던 독창적인 행동이다. 그리고 사람이 들었을때 멜로디를 느낄 수 있는 랜덤이 아닌 세상에 없던 음악을 만드는 기계도 있다. 따라서 이것은 soul을 설명하기에 적합하지 않다.

Chapter 5. Free Will as a Defense of the Soul and Conclusion [00:42:20]

 창의성은 적합하지 않다. 하지만 창의적인 컴퓨터 프로그램은 그냥 일련의 코드를 실행할 뿐이다. 로봇은 그냥 자동으로, 필요에의해서, 기계적으로 프로그램을 따른다. 바로 자유의지를 가지고 있지 않다. 

이건 soul에 대한 새로운 논의 거리다.
1. 우리는 자유의지를 가졌다
2. 결정론을 따르지 않는 것들은 자유의지를 가졌다. (컴퓨터 처럼 state와 코드 라인에 따라서 결과가 결정되는 것들을 결정론을 따르는 것이라고 봄)
3. 모든 순수히 물질적인 시스템은 결정론을 따른다.

4. 위 3개의 전제로부터 결론은 우리는 순수 물질적인 시스템이 아니라는 것이다.


블로그 이미지

시간을 거스르는자

,

원문: http://oyc.yale.edu/philosophy/phil-176#sessions

Lecture 3 - Arguments for the Existence of the Soul, Part I [January 23, 2007] 

Chapter 1. Introduction: The P-Functioning Body [00:00:00] 

Physicalist의 관점에서 바라볼때 사람은 분필이나 종이컵같은 object들과는 달리 여러가지 행동들을 할수있는 body라고 봤었다. 이때 이 여러가지 행동들을 P abilities라고 본다면, 이 행동을 하는 것을 P-functioning이라고 할 수 있고 결국 사람을 P-functioning body라고 정의할 수 있다.

Chapter 2. The Mind According to Physicalists and Dualists [00:03:02]

 먼저 Physicalist 관점에서 mind는 그냥 body가 생각하고 대화하고 계획하고 시를쓰고 사랑에 빠질 수 있다는 사실을 설명하는 하나의 방법이라고 본다. 여기서는 계속 "mind = 설명하는 방법"이다 라고만 나오고 다른말은 안하는데, 오역일지는 모르겠지만 개인적인 느낌으로는 결국 mind는 이러한 P function들을 하기위한 수단, 기능이라고 할수 있을 것 같다. 

"mind는 그냥 이런 기능을 하기위한 수단이야 다른건 없어

The mind is just a way of talking about the fact that our body can think, can communicate, can plan, can deliberate, can be creative, can write poetry, can fall in love. Talk of all of those things is what we mean by the mind, but there's no extra thing, the mind, above and beyond the body.

 다음으로, dualist의 관점으로 볼때, mind는 body와 분리되어있는 soul이라고 본다. immaterial object.


Chapter 3. Inferences to the Best Explanation to Prove the Soul's Existence [00:12:17]

 이 두가지 관점중 우리는 무엇을 믿을 것인가? 다시말해 우리는 soul의 존재를 믿어야 하는가? 보통 우리가 무언가가 존재한다는 것을 믿을때, 예를들어, 의자가 있다는것, 나무가 있다는것, 새들이 있다는것은 우리가 볼수 있고 만질수 있기 때문이다. 그런데 soul은 immaterial object이기 때문에 우리가 가지고있는 오감을 통해 느낄수 없기때문에 이러한 방법으로는 존재한다는 것을 믿을 수 없다. 

보통 이럴때 사용하는 방법이 있는데, 예를들어 우리는 원자가 존재하는것을 믿지만 원자 역시 너무 작기때문에 눈에 보이지 않는다. 그럼 원자의 존재를 어떻게 믿는가? 원자 이론에 의해서 설명할 수 있는것들이 있기 때문이다. 원자들이 모여서 결국 이런저런 물질을 이루게되는것과 결국 physical world의 구성을 설명할수 있는것 등. 우리는 우리가 볼 수 없는 무언가가 존재한다는 것을 추론할 수 있다. 그 무언가의 존재가 다른것으로는 설명할 수 없는 어떤것을 설명할 수 있는 근거가 된다면. 우리는 이러한 패턴을 inferences to the best explanation이라고 한다. 

이러한 패턴의 예로, 왜 우리는 눈에 보이지 않는 세균이 존재한다고 당연히 믿는가? 이것은 사람들이 병에 걸리는 이유를 설명해 주기 때문이다. (세균은 장비를 통해서 눈에 보이지 않나? 뭔가 슬슬 어거지가 느껴지지만 일단 여기서 말하는 바가 이럼)

병에 걸리는 또다른 의견이 있다. 왜 사람이 병에 걸리고 죽는가? 바로 악령이 씌워서이다. 이것 또한 한가지 explanation이다. 하지만 왜 사람이 병에 걸리는가에 대한 best explanation은 세균 감염에 의한 주장이다. 왜냐하면 누가 어떤 종류의 질병에 걸렸는지, 어떻게 질병이 퍼졌는지, 어떻게 치료되었는지, 언제 누가 죽었는지에 대해 더 잘 설명할 수 있는 것이 전자이기 때문이다.


Chapter 4. Can Only the Soul Justify Feature F? [00:19:55]

그렇다면, physicalist는 설명할 수 없는, soul이 존재한다고 가정해야지만 설명이 가능한 어떤 특징들이 존재하는가? 

일단, 이러한 특징이 하나 존재한다고 가정해보자. 이 특징(feature)을 F라고 하자. F는 이런것이 될 수 있을 것이다.

만약 Love를 physicalist perspective로 봤을때 설명이 불가능하고, soul로만 설명이 가능하다면. 이것은 inference to the best explanation의 예가 될 수 있다.

이렇게 physicalist는 설명할 수 없거나 설명할 수 있더라도 dualist view의 설명보다 좋은 설명이 못되는 케이스의 F가 존재한다면, 우리에게 soul이 있다고 믿을 수 있는 근거가 생길 수 있다.


Chapter 5. Abilities, Desires, Emotions – Candidates for Feature F [00:35:07]

 Abilities: to think, to reason

 Belief, Desire 

 Emotions: Love, afraid, hope 

 로봇은 외부로부터 주입되어 프로그램 되어있는 명령이 아닌 그 이상의 것을 하지 못한다. 위 세가지 영역은 사람만이 할 수 있지만 이것은 physicalist view로는 설명이 힘든 부분이다. 



블로그 이미지

시간을 거스르는자

,

*Lecture 1은 그냥 introduce다. 뭐 대학교 수강신청 기간이라고 보면될듯? 그래서 렉쳐 2부터 시작하고..

현재는 렉쳐5를 쓰다가 말았는데.. 흠 아무튼. 이 강의 내용은 죽음과 죽음 이후에 대한 강의이다. 죽음이후라면 영혼의 존재 유무를 논할 것이다.

원문: http://oyc.yale.edu/philosophy/phil-176#sessions


Lecture 2. The Nature of persons: Dualism vs Physicalism

(Yale University Philosophy class)

(Dualism => 영혼+육체, Physicalism => 육체)

Chapter 1. "Is There Life After Death?" Asking the Right Question [00:00:00]

Is there life after death? 는 death가 end of life를 뜻하기 때문에 영화끝난후에 영화가 있냐? 라는 질문과 같이 앞뒤가 맞지 않는 질문이다. 질문은 Might I still exist after the death of my body?로 부터 시작해야 한다.

Chapter 2. Ways to Conceptualize Self-Identity [00:13:25] 

이 질문에 앞서 우리는 먼저 What am I? What kind of an entity am I? What am I made of? What kind of a thing is a person? 나 자신이 무엇인지, 어떻게 만들어 졌는지, What is a person을 이해할 필요가 있다. What is a person을 두 가지 뷰로 바라본다면,

첫째로, A person is a combination of a body and something else (a soul). 우리몸은 뼈와 살 덩어리, 그리고 이와는 확연히 구분되는 분자와 원자로 이루어져있지 않은 영혼이란 것이 있다.(nonphysical terms, nonmaterial terms) 우리는 이 뷰를 Dualist View라고 부르겠다.

또 다른 뷰는 monist view 다. A person is just a certain kind of material object. 
사람은 그냥 반응하고 관계를 맺을수 있고, 서로 대화하고, 계획하고, 사랑하고, 시를 쓰고 등등의 행위를 할수 있는 body일 뿐이다. 영혼은 없다는 관점.

Chapter 3. Dualists: The Body-Soul Perspective [00:21:18]

 soul은 mind라고 본다. soul는 body를 움직이며 또한 반대로 body가 어떤 반응을 받으면(무언가에 부딪치거나) soul이 고통을 느낀다. soul과 body간에 two-way interaction이 있다고 본다. 

때때로 soul은 우리몸 특정위치 부근에 있다고 여겨지기도 한다. 어쨌거나 중요한 포인트는 body의 생이 끝났을때(물질적으로 썪어 없어져서 완전히 끝났을때) soul은 물질적인 것이 아니기 때문에 계속해서 존재할 수도 있다는 것이다. 이것이 dualist view이다. 

죽음은 무엇인가? 만약 body와 soul이 강하게 연결되어있다면, 죽음은 이 연결을 끊는 것이라고 볼 수 있을 것이다. 이렇게되면 더이상 body는 soul에게 body의 input을 전달하지 못하게 되고, soul또한 body를 더이상 컨트롤 할 수 없게된다. 그리고 soul은 계속해서 존재할지도 모른다. 

만약 사람을 soul과 body의 조합으로 본다면, death로 인해 이 연결이 끊어져서 soul만 남았을때 이것을 사람으로 볼 수 없을 것이다. 하지만 죽음이후의 삶이 있다고 믿고 싶다면, soul자체를 사람으로 보고, body는 하나의 집처럼 생각할 수 있다. 따라서 body가 죽은이후에도 soul은 계속해서 존재할 수 있다. 

우리는 이 관점을 바라보면서 3가지 질문을 던질 수 있다. 첫째로, 정말 soul이 존재하는가? 정말로 body와 soul이 구별되어있는가? 둘째, 만약 soul이 있다면, body가 죽은 후에도 계속 존재할 수 있는가? 마지막으로, body가 생겨나고 끝나는 B1~Bn의 process가 있는것에 비해, Soul도 S1~Sn의 process가 있는가? 있다면 그 기간이 얼마인가? 영원한가?  


Chapter 4. The Physicalists: The Body Is a Body and Conclusion [00:39:00] 

The physicalist view, materialist view. 사람은 그냥 물체다. 분필 또한 물체다. 하지만 분필은 스스로 할 수 있는것이 없다. 스마트폰 또한 물체다 하지만 분필보다는 여러가지 스스로 할수있는 일이 많다. 이 관점에 따르면 사람은 생각할 수 있고, 계획할 수 있고, 추론할 수 있고, 느낄 수 있고, 두려워할 수있고 창조할 수 있고, 꿈꿀수 있고 등등 좀 더 많은 것을 할 수있는 물체일 뿐이다.


블로그 이미지

시간을 거스르는자

,