manage.py 를 사용하여 Django의 Application에 사용자 고유의 action을 등록할 수 있다. 여기서는 저번 tutorial 에서 만들었던 polls app을 위한 커스텀 명령어 closepoll 을 만들어볼 것이다. 이를 위해 management/commands 를 어플리케이션 디렉토리에 추가한다. 그러면 장고는 그 명령어들을 폴더 내의 각각의 모듈에 알아서 등록해준다.

즉 polls 앱은 아래와 같은 구조를 가질 것이다.

polls/
    __init__.py
    models.py
    management/
        __init__.py
        commands/
            __init__.py
            _private.py
            closepoll.py
    tests.py
    views.py

이렇게 하면, closepoll 명령어는 polls 어플리게이션을 포함하는 어떤 프로젝트에서도 사용가능하게 만들어질 것이다.

_private.py 모듈은 명령어 커맨드를 관리하는 역할으로서, 명령어 자체로는 사용할수 없다.
closepoll.py 모듈을 사용하기 위해 하나의 요구조건이 있는데, BaseCommand 또는 그의 sub클래스를 상속받는 Command 클래스를 재정의해야한다는 것이다.

커맨드를 구현하기 위해, polls/management/commands/closepoll.py 를 다음과 같이 편집한다.

from django.core.management.base import BaseCommand, CommandError
from polls.models import Poll

class Command(BaseCommand):
    args = ''
    help = 'Closes the specified poll for voting'

    def handle(self, *args, **options):
        for poll_id in args:
            try:
                poll = Poll.objects.get(pk=int(poll_id))
            except Poll.DoesNotExist:
                raise CommandError('Poll "%s" does not exist' % poll_id)

            poll.opened = False
            poll.save()

            self.stdout.write('Successfully closed poll "%s"' % poll_id)


  • 커맨드를 관리하면서 콘솔 결과창(디버그를 위해서든) 보기 위해, 당신은 

    stdout 와 stderr 대신에 self.stdout 와 self.stderr를 써야합니다.
    또한 ending 파라미터를 쓰지 않는 한, 개행문자가 자동으로 붙기 때문에 개행문자로 메시지를 끝낼 필요가 없습니다.

    self.stdout.write("Unterminated line", ending='')

이제 python manage.py closepoll <poll_id> 를 써서 새로운 custom command를 사용할 수 있다.

handle() 매서드는 poll_ids에 해당하는 각각의 poll.opened 들을 모두 False 로 바꿔준다.
만약 유저가 존재하지 않는 polls 에 접근한다면 CommandError 가 일어날 것이다. 다만poll.opened attribute 는 tutorial에는 존재하지 않고, polls.models.Poll이 이 예제를 위해 추가된 것이다.

주어진 poll을 닫는 것 대신 지우고 싶을 때는 굳이 추가적인 command 등록 없이 closepoll 을 변경하면 된다. 이런 커스텀 option은 반드시 option_list 에 다음처럼 추가되어야한다.

from optparse import make_option

class Command(BaseCommand):
    option_list = BaseCommand.option_list + (
        make_option('--delete',
            action='store_true',
            dest='delete',
            default=False,
            help='Delete poll instead of closing it'),
        )

    def handle(self, *args, **options):
        # ...
        if options['delete']:
            poll.delete()
        # ...

위 예제의 delete옵션은 또한 dictionary로도 접근가능하다. ex ) option['delete']
optparse 파이썬 문서로 가면 make_option 사용법에 대해 알 수 있을 것이다.

추가하자면, 모든 management commands 는 다음과 같은 default option을 받을 수도 있다.
--verbosity
--traceback.

아래는 번역 중

'SW > Django' 카테고리의 다른 글

Django model field crash 해결책  (0) 2013.08.08
Posted by 융잡
,
왜 새로운 기술공학시대에 인문학이 필요한가?


이진우 석좌교수, POSTECH 인문사회학부장

재편집 : Kyle

 

1. 서론

학문과 cafe. 둘 사이의 연관관계는 무엇일까.

학문을 폭넓게 바라보고 싶다고그럼 cafe에 가라연구실이 아닌 cafe는 동일한 전공이 아닌 다양한 사람을 만날 수 있는 장이다. Think different는 여러 사람과 만나며 다르게 생각해보는 관점에서부터 시작된다.

인문학은 사회를 문제덩어리의 시선으로 바라본다답이 없다고 가정을 하고 사회의 여러 현상을 파악하려든다하지만 공학은 다르다답이 있다고 가정하고 그 해결책을 내놓아 삶에 이바지한다.

이 두 가지 학문을 융합하는 새로운 길은 바로 상상(Imagination)이다.

 

2. 인문학이 중요한 이유

(1) 고민으로 시작하는 인문학

미래(post)를 어떻게 구상하느냐에 따라 미래의 권력이 결정된다예전에는 정보를 지배하는 자가 세계를 지배한다고 했지만 이제 post를 지배하는 자가 곧 세계를 지배하게 된다미래사회에 대한 고민성찰을 깊게 하는 공학자가 되자.

(2) 시대적 요구

애플의 전 CEO, 철학을 전공한 스티브잡스의 한 마디에 융합의 붐이 일기 시작했다융합의 바람은 우리나라의 자아적내부적 성찰에 의해 나아가야했지만 그러지 못했다하지만 결코 늦은 것은 아니다우리 모두 우리만의 자기 철학을 가져야한다.

(3) 3대 키워드

소통통섭융합

(4) 인문기술과 기술인문학

인문기술은 인간능력을 향상시키는 기술이고기술인문학은 과학 기술에 관한 인문학적 고찰이다요즘 인문학이 공학을 바라보는 시각은 다음과 같다.

과학이 발전하면 인간도 변화한다.

① Humanism : 인간이 기술을 통제한다.

② Post Humanism : 기술이 인간을 만든다.

③ Trans Humanism : 기술로 인간이 된다.

- Great Ideas change the world. (MIT 인문학부 표어인간은 바로 기술과 함께 진화한다.

(5) 융합의 단계

① 융합 level 1 : 기술 내부적 융합

텔레매틱스메카트로닉스

기술적 상상력

② 융합 level 2 : 기술과 사회의 융합

역동적인 체계의 복잡성

사회학적 상상력

③ 융합 level 3 : 인문 기술의 융합

사악한 복잡성 (wicked complexity)

문화적 상상력

(6) 기술의 정의

기술은 자연지배가 아니라 자연과 인류의 관계(relation)에 대한 지배이다. relation을 조정하는 것에서부터 시작되는 것이다.

 

3. 인문학이란 무엇인가

(1) 비교

인문학 인간 본성에 대한 인식과 성찰

과학/기술 인간 본성의 실현 (실현의 도구)

인간존재(Humanbeing)의 의미를 밝히고자 하는 사람들이 인문학자.

(2) 고갱의 그림

- Do we come from? what are we? where are we going?

이런 질문을 던질 수 있는 사람이 바로 인문학자이다막연한 거부감은 갖지말자.

- ‘의미에 대해 성찰할 수 있는 공학자가 되어야한다.

(3) 인문학의 분류

① 문학

상상력을 얻을 수 있다소설을 통해 많이 읽고 상상함으로서 story-telling 능력을 키울 수 있다소설을 많이 읽자융합과 창의력의 원천인 상상력을 얻게 된다.

② 역사

판단력을 얻을 수 있다수많은 역사에 대한 사례들로 앞으로 진행될 방향에 대한 혜안과 올바른 판단력을 얻게 된다.

③ 철학

성찰력을 얻을 수 있다내가 하고 있는 것의 의미를 비로소 찾을 수 있게 된다. Think different 는 무조건 반대하는 것에서 나오는 것이 아니다. Context(맥락)에서 사유할 줄 알아야한다는 것이다그 자체가 생각할만한 의미를 가지는 것이 인문학이다.

(4) 인문학을 어떻게 활용할 것인가

① 비판적 사고 (Critical thinking)

② 의사소통능력 (Communication)

③ 창의성 (Creativity)

비판적 사고를 통한 의사소통그리고 그 소통을 통해서만 사람은 창의적이 된다.

 

4. 21세기 패러다임의 변화

(1) 대학의 패러다임

- Intervarsity : 학문과 학문을 서로(inter) 연결하는 것.

(2) 지식의 패러다임

- Relation : 관계의 지식.

- 21세기의 첨단 지식은 인간의 상상력에 기반한 학제간의 소통과 융합이다이를 위해 고민성찰하는 것이 그 시작이다.

(3) Communication을 위한 3요소

① conversation - Changing our mind 우리들의 마인드를 바꾸기 위해선 대화와 소통이 필수이다.

② consideration - Think our being 존재자체에 대한 의미를 항상 고찰하자.

③ cooperation - Searching for the good(공동선)

 

5. 정리

우리는 우리 이후의(post) 사회에 대한 고민을 하면서 인문학적 성찰사유를 할 필요가 있다.

새로운 인간가치를 창조하라!

한번 disorient하고 다시 reorient하는 것이 인문학의 역할이다너무 연구실에서 연구에 골몰하기 보다는 한번쯤 나와서 생각해보는 것에서 의미를 찾아라.

마지막으로 man of success가 되기보단 man of value가 되려고 애쓰는 공학자가 되길 바란다.

 

6. 추가 질문

Q. 포항공대의 지리적 단점을 극복하기 위한 방법

A. Cafe가 있어야한다.(웃음좀 더 많은 인문학 관련 사람들이 학교 내에 있어야하고 활발히 대화할 수 있는 conversation의 장이 필요하다거기서 나오는 학생들의 자발적인 consideration이 매우 중요하다.

 

Q. 깨어있는 교수님이 좀 더 학생들의 유도하고 자극해주신다면 훨씬 더 학교에 새바람이 불 것이다.

A. 절대 그렇지 않다누구더러 유도하라고 시키는 것은 결국 하지 않겠다는 말과 같다학생 시절세미나에 참석했었는데 질문시간에 아무도 질문하지 않았다나와 다른 친구 2명이 함께 세미나 전에 강사에게 미리 내용을 얻어 일부러 질문할 거리 3가지를 준비했다.

역시나 질문시간에 아무도 질문하는 사람이 없었다나와 나의 친구가 미리 준비된 2번의 질문을 하고 다른 친구가 질문을 하려던 찰나에 놀라운 일이 있어났다여러 명의 학생들이 손을 들기 시작한 것이다.

누구더러 유도를 바라지마라중요한건 여러분 자신이다앞의 이야기처럼 학생 본인들이 스스로 시작의 불꽃을 당겨주길 바란다여러분 스스로 한명 한명의 목소리가 깨어난다면 분명 학교에 새로운 바람이 불 수 있다.

 

Q. 기술공학적 측면 말고 교수님이 생각하는 삶의 목표를 알고 싶다.

A. 잠시 한눈팔아도 되는 사회를 만들고 싶다잠시 다른 일을 하더라도다시 돌아와 그 능력을 제대로 발휘할 수 있는 사회이다요즘 사회는 한눈팔지 말라고 강요한다다른 일을 하는 것 자체를 경계하고용기를 내어 다른 일을 가더라도 다시 돌아올 수 없는 큰 산을 사회가 만들어버렸다한눈팔 여유조차 없는 사회가 된 것이다.

이런 여유를 찾기 위해 끊임없이 consideration하고 많은 사람들과 conversation하려고 노력한다바로 cafe에서! (웃음)

이 문제는 다음 달에 출시될 본인의 책을 읽어보면 더 자세한 답을 구할 수 있을 것이다.(웃음)

'IT > Blog' 카테고리의 다른 글

AhnLab CEO 김홍선 대표 세미나  (0) 2013.08.08
Posted by 융잡
,

전자전기공학과 세미나
안철수 연구소 CEO 김홍선

 세상의 변화 속도는 너무 빨라서 10년 후를 예측할 수가 없다. 1990년 개인에게 전화기가 하나씩 생길 것이라고는 결코 생각치 않았으나, 2000년 휴대폰이 보급이 되었다.
 시기별 여객선의 크기가 1950년대를 기점으로 크게 하락했으나 현재 큰 폭으로 상승하고 있다. 먼저 하락한 원인은 비행기의 등장이다. 하지만 현재 큰 폭으로 상승하고 있는 요인은 크루즈선의 등장이다.
 분명 탈 것의 수단으로 쓰이는 배는 점차 쇠퇴하였지만, 관광 레저의 수단으로 배가 사용되면서 크기가 증가하였다.
 IT도 마찬가지이다. 꼭 해당 용도로 개발하지 않았더라도 나중에 재주목을 받을 수 있는 요소가 충분히 있다. 그러므로 거시적 변화를 읽을 수 있는 시야를 가져야겠다.

 IT의 전환점에는 크게 3가지가 있다.
1. 인터넷 혁명 : 이로 인해 개방적인 정보 접근이 가능해졌다.
2. 통신 혁명 : 천리안에서 브로드밴드로의 혁명.
3. 디지털 혁명 : 정보검색, 분석, 빠른 전파속도, 지능화, 스마트화

 지금까지는 기계를 놓고 인간이 기계화가 되어 개발하는 시대였지만, 앞으로는 달라질 것이다. 아니 이미 달라지고 있는 중이다. 바로 스마트폰 혁명을 통해.
 사람들은 이제 스마트폰을 어려운 기계로 생각하지 않는다. 사람과 소통하는 수단으로 생각하며 이는 인간 중심으로 기계를 끌어온다는 이야기이다. 앞으로의 초점은 어떻게 사람과 호흡하는 컴퓨터(디바이스)를 만드는가 이다.

 IT 구조는 이제 재구성되어가고 있다. 하드웨어도 중요하겠지만, 소프트웨어 관점에서 먼저 통일성을 가져야한다. 멀티플랫폼 시대이다. 다양한 플랫폼 사이에서도 공유하는 소프트웨어 계층이 견고해야한다. 

 융합을 잘 하기 위해서는 세상이 어떻게 돌아가는지 바라보는 눈을 가져야한다. 세계에는 굉장히 넓은 territory가 있기때문에 거기에 맞는 넓은 시야를 가져야하는 것이다.
 또한 내가 자기 스스로의 정체성과 차별성을 가질 수 있어야한다.
 지금은 people power의 시대이다. 각 개인들의 정부기관보다 더 빨리, 많은 정보를 수집할 수 있는 시대가 온 것이다. 따라서 기존의 권위주의 정치, 틀을 바꾸지 않으면 안된다.
 
 이제 앞으로 이 세상에 안정적인 일은 없다. 안정적인 일을 하는 자는 그 회사를 나오면 경쟁력이 바닥에 떨어진다.
 자기가 즐거워할 수 있는 일을 찾는 것이 가장 중요하다. 자기 자신을 찾아가는 기회를 주는 삶을 살자. (안철수 교수)
 부모님 말을 무조건 따르려고 하지마라. 20, 30년전 사고방식으로 살아오신 분들이다. 요즘은 변화의 속도가 매우 빠르기 때문에 무엇보다도 자기 자신의 역량과 리더십이 중요하다.

 기업에 공헌하는 인간의 능력에는 열정(35%), 창의성(25%), 추진력(20%), 지성(15%), 근면복종(나머지..) 가 있다.
 열정, 창의성, 추진력 만으로 80프로를 채우는 인재가 되기위해 노력해라.

 돈을 많이 버는 일을 하겠다? 정말 소비적인 생각이다. 일에서 즐거움을 찾지못하면 반쪽짜리 삶을 살게 된다.

 시대의 변화는 이학, 공학에서부터 시작했다. 바로 여러분들이 변화의 중심에 있다. 자부심을 가져라.
 항상 job보다 career 를 먼저 생각하라. 스스로의 value를 높여가기 바란다. 인간의 수명은 100세가 넘을 것이다. 신의 직장? 은퇴 후에 경쟁력이 없다. 젊었을 때 여러 분야를 겪지 않고는 본인의 가치가 높아지지않는다.
 또한 communication skill 을 갖추기 위해 노력하라. 앞으로는 다양성이 중요하다. 다양한 사람과 의사소통할 수 있는 능력이 중요하다. 내가 알고 있는 것을 쉽게 설명하는 것이 바로 실력이고 내공이다.

 우리나라에는 소프트웨어를 개발한다고 하면 30, 40대 프로그래머로서 은퇴를 하고 관리직을 흔히 한다. 하지만 나는 절대 그렇게 생각하지 않는다.
 프로그래밍 툴은 바뀐다. 하지면 중요한 것은 결국 무엇을 표현할지, 무엇을 실현할지에 대한 아이디어다. 편하게 살지 말고 항상 생각하라! 엔지니어의 손끝은 항상 살아있어야한다.
 50대 그 이후의 삶에서도 계속 할 수 있다. (외국의 경우 흔히 있음)
 

 나는 사업을 하면서 2번의 실패를 맛보았다. 실패를 했을 때 경험은 상상을 초월한다. 책으로는 절대 배울 수 없는 것이다. 나는 왜 30대가 넘어 실패를 하였는지 안타까워한다.
 젊었을때 많이 실패해보라! 젊어서 훈련된 사람은 빨리 회복된다. 구글에서는 오히려 nice하게 실패하는 것을 장려한다. 보다 많은 도전과 실패를 아끼지마라!

 

 자신감을 갖고 도전을 해서, 더 큰 열매를 맺어라. 


'IT > Blog' 카테고리의 다른 글

왜 새로운 기술공학시대에 인문학이 필요한가?  (0) 2013.08.08
Posted by 융잡
,